diff --git a/decidim-accountability/config/locales/ar.yml b/decidim-accountability/config/locales/ar.yml
index 268fc12f947c9..ec6813fff1481 100644
--- a/decidim-accountability/config/locales/ar.yml
+++ b/decidim-accountability/config/locales/ar.yml
@@ -228,7 +228,6 @@ ar:
global:
clear_all: إمسح الكل
comments_enabled: تم تمكين التعليقات
- comments_max_length: الحد الأقصى لطول التعليقات (اترك ال0 للقيمة الافتراضية)
define_taxonomy_filters: الرجاء تحديد بعض عوامل التصفية لهذه المساحة التشاركية قبل استخدام هذا الإعداد.
display_progress_enabled: عرض التقدم
geocoding_enabled: تم تمكين الخرائط
diff --git a/decidim-accountability/config/locales/bg.yml b/decidim-accountability/config/locales/bg.yml
index 4ad075d25d71d..71e9cb20d8216 100644
--- a/decidim-accountability/config/locales/bg.yml
+++ b/decidim-accountability/config/locales/bg.yml
@@ -162,7 +162,6 @@ bg:
settings:
global:
comments_enabled: Коментарите са разрешени
- comments_max_length: Максимална дължина на коментарите (Оставете 0 за стойност по подразбиране)
display_progress_enabled: Показвай развитието
intro: Въведение
step:
diff --git a/decidim-accountability/config/locales/ca-IT.yml b/decidim-accountability/config/locales/ca-IT.yml
index 013e39ecfbfeb..7b0fde2dea781 100644
--- a/decidim-accountability/config/locales/ca-IT.yml
+++ b/decidim-accountability/config/locales/ca-IT.yml
@@ -302,7 +302,7 @@ ca-IT:
global:
clear_all: Netejar-ho tot
comments_enabled: Comentaris habilitats
- comments_max_length: Longitud màxima dels comentaris (deixa 0 si vols mantenir la configuració per defecte)
+ comments_max_length: Caràcters màxims per comentari (deixar a 0 el valor predeterminat)
default_taxonomy: Taxonomia predeterminada
default_taxonomy_help: Selecciona quina taxonomia vols mostrar per defecte. Si no se selecciona cap taxonomia, els resultats es mostraran en un format de llista.
define_taxonomy_filters: Si us plau, defineix algunes filtres per aquest espai de participació abans de fer servir aquesta configuració.
diff --git a/decidim-accountability/config/locales/ca.yml b/decidim-accountability/config/locales/ca.yml
index 72af9173ff0e1..938f18dafaf5b 100644
--- a/decidim-accountability/config/locales/ca.yml
+++ b/decidim-accountability/config/locales/ca.yml
@@ -302,7 +302,7 @@ ca:
global:
clear_all: Netejar-ho tot
comments_enabled: Comentaris habilitats
- comments_max_length: Longitud màxima dels comentaris (deixa 0 si vols mantenir la configuració per defecte)
+ comments_max_length: Caràcters màxims per comentari (deixar a 0 el valor predeterminat)
default_taxonomy: Taxonomia predeterminada
default_taxonomy_help: Selecciona quina taxonomia vols mostrar per defecte. Si no se selecciona cap taxonomia, els resultats es mostraran en un format de llista.
define_taxonomy_filters: Si us plau, defineix algunes filtres per aquest espai de participació abans de fer servir aquesta configuració.
diff --git a/decidim-accountability/config/locales/cs.yml b/decidim-accountability/config/locales/cs.yml
index 4fd1783312d51..7193e8d506042 100644
--- a/decidim-accountability/config/locales/cs.yml
+++ b/decidim-accountability/config/locales/cs.yml
@@ -315,7 +315,7 @@ cs:
global:
clear_all: Vymazat vše
comments_enabled: Komentáře povoleny
- comments_max_length: Maximální délka komentáře (ponechte 0 pro výchozí hodnotu)
+ comments_max_length: Maximální počet znaků na komentář (ponechte 0 pro výchozí hodnotu)
default_taxonomy: Výchozí taxonomie
default_taxonomy_help: Vyberte taxonomii, která se má zobrazovat jako výchozí. Pokud není vybrána žádná taxonomie, výsledky se zobrazí ve formátu seznamu.
define_taxonomy_filters: Před použitím tohoto nastavení prosím definujte některé filtry pro tento participační prostor.
diff --git a/decidim-accountability/config/locales/da.yml b/decidim-accountability/config/locales/da.yml
index a405209eea8a5..831a4ab0bb108 100644
--- a/decidim-accountability/config/locales/da.yml
+++ b/decidim-accountability/config/locales/da.yml
@@ -111,7 +111,6 @@ da:
settings:
global:
comments_enabled: Kommentarer aktiveret
- comments_max_length: Kommentarer maks. længde (Leave 0 for standardværdi)
display_progress_enabled: Vis fremskridt
intro: Intro
resource_links:
diff --git a/decidim-accountability/config/locales/de.yml b/decidim-accountability/config/locales/de.yml
index 736884236b53c..2c3a317d2db88 100644
--- a/decidim-accountability/config/locales/de.yml
+++ b/decidim-accountability/config/locales/de.yml
@@ -301,7 +301,6 @@ de:
global:
clear_all: Alles löschen
comments_enabled: Kommentare aktiviert
- comments_max_length: Maximale Länge der Kommentare (0 für Standardwert)
default_taxonomy: Standard Klassifizierung
default_taxonomy_help: Wählen Sie, welche Klassifizierung standardmäßig angezeigt werden soll. Wenn keine Taxonomie ausgewählt ist, werden die Ergebnisse in einem Listenformat angezeigt.
define_taxonomy_filters: Bitte definieren Sie einige Filter für diesen partizipativen Bereich, bevor Sie diese Einstellung verwenden.
diff --git a/decidim-accountability/config/locales/el.yml b/decidim-accountability/config/locales/el.yml
index 422fd3d66c2a9..94aa4de8aa8a2 100644
--- a/decidim-accountability/config/locales/el.yml
+++ b/decidim-accountability/config/locales/el.yml
@@ -292,7 +292,6 @@ el:
global:
clear_all: Εκκαθάριση όλων
comments_enabled: Τα σχόλια ενεργοποιήθηκαν
- comments_max_length: Μέγιστο μέγεθος σχολίων (Αφήστε το 0 για το προκαθορισμένο μέγεθος)
define_taxonomy_filters: Παρακαλώ καθορίστε μερικά φίλτρα για αυτόν τον συμμετοχικό χώρο πριν χρησιμοποιήσετε αυτή τη ρύθμιση.
display_progress_enabled: Εμφάνιση προόδου
geocoding_enabled: Χάρτες ενεργοποιημένοι
diff --git a/decidim-accountability/config/locales/en.yml b/decidim-accountability/config/locales/en.yml
index 6e794e4e3465c..4b944a2cce429 100644
--- a/decidim-accountability/config/locales/en.yml
+++ b/decidim-accountability/config/locales/en.yml
@@ -303,7 +303,7 @@ en:
global:
clear_all: Clear all
comments_enabled: Comments enabled
- comments_max_length: Comments max length (Leave 0 for default value)
+ comments_max_length: Max characters per comment (Leave 0 for default value)
default_taxonomy: Default taxonomy
default_taxonomy_help: Select which taxonomy you want to show by default. If no taxonomy is selected, the results will be shown in a list format.
define_taxonomy_filters: Please define some filters for this participatory space before using this setting.
diff --git a/decidim-accountability/config/locales/es-MX.yml b/decidim-accountability/config/locales/es-MX.yml
index ef1137b27cf72..37a041d36d390 100644
--- a/decidim-accountability/config/locales/es-MX.yml
+++ b/decidim-accountability/config/locales/es-MX.yml
@@ -95,7 +95,7 @@ es-MX:
Haz los cambios en local. Sólo puedes modificar las siguientes columnas del CSV (el resto será ignorado):
taxonomies/ids: IDs para la taxonomia (si hay más de una, sepárelas con una coma)
-
parent/id: ID para el padre (para resultados relacionados).
+
parent/id: ID para el padre (para resultados relacionados).
Opcional
title/I18N: título en el idioma X
description/I18N: descripción en el idioma X
@@ -302,7 +302,7 @@ es-MX:
global:
clear_all: Limpiar todo
comments_enabled: Comentarios habilitados
- comments_max_length: Longitud máxima de los comentarios (deja 0 si quieres mantener la configuración por defecto)
+ comments_max_length: Caracteres máximos por comentario (dejar 0 para el valor predeterminado)
default_taxonomy: Taxonomía predeterminada
default_taxonomy_help: Selecciona qué taxonomía quieres mostrar por defecto. Si no se selecciona alguna taxonomía, los resultados se mostrarán en un formato de lista.
define_taxonomy_filters: Por favor, define algunos filtros para este espacio de participación antes de utilizar esta configuración.
diff --git a/decidim-accountability/config/locales/es-PY.yml b/decidim-accountability/config/locales/es-PY.yml
index aa3549b668311..8f378c91e6a90 100644
--- a/decidim-accountability/config/locales/es-PY.yml
+++ b/decidim-accountability/config/locales/es-PY.yml
@@ -95,7 +95,7 @@ es-PY:
Haz los cambios en local. Sólo puedes modificar las siguientes columnas del CSV (el resto será ignorado):
taxonomies/ids: IDs para la taxonomia (si hay más de una, sepárelas con una coma)
-
parent/id: ID para el padre (para resultados relacionados).
+
parent/id: ID para el padre (para resultados relacionados).
Opcional
title/I18N: título en el idioma X
description/I18N: descripción en el idioma X
@@ -302,7 +302,7 @@ es-PY:
global:
clear_all: Limpiar todo
comments_enabled: Comentarios habilitados
- comments_max_length: Longitud máxima de los comentarios (deja 0 si quieres mantener la configuración por defecto)
+ comments_max_length: Caracteres máximos por comentario (dejar 0 para el valor predeterminado)
default_taxonomy: Taxonomía predeterminada
default_taxonomy_help: Selecciona qué taxonomía quieres mostrar por defecto. Si no se selecciona alguna taxonomía, los resultados se mostrarán en un formato de lista.
define_taxonomy_filters: Por favor, define algunos filtros para este espacio de participación antes de utilizar esta configuración.
diff --git a/decidim-accountability/config/locales/es.yml b/decidim-accountability/config/locales/es.yml
index 7e4404011fbc9..5b4d19aa61c23 100644
--- a/decidim-accountability/config/locales/es.yml
+++ b/decidim-accountability/config/locales/es.yml
@@ -302,7 +302,7 @@ es:
global:
clear_all: Limpiar todo
comments_enabled: Comentarios habilitados
- comments_max_length: Longitud máxima de los comentarios (deja 0 si quieres mantener la configuración por defecto)
+ comments_max_length: Caracteres máximos por comentario (dejar 0 para el valor predeterminado)
default_taxonomy: Taxonomía predeterminada
default_taxonomy_help: Selecciona qué taxonomía quieres mostrar por defecto. Si no se selecciona alguna taxonomía, los resultados se mostrarán en un formato de lista.
define_taxonomy_filters: Por favor, define algunos filtros para este espacio de participación antes de utilizar esta configuración.
diff --git a/decidim-accountability/config/locales/eu.yml b/decidim-accountability/config/locales/eu.yml
index df63c4cc353b3..ad388eac4fd44 100644
--- a/decidim-accountability/config/locales/eu.yml
+++ b/decidim-accountability/config/locales/eu.yml
@@ -106,7 +106,7 @@ eu:
- title: Inportatu emaitzak CSV fitxategitik
+ title: Emaitzak CSV fitxategitik inportartu
imports:
create:
invalid: Arazo bat egon da emaitzak inportatzean.
@@ -212,7 +212,7 @@ eu:
update: "%{user_name} parte-hartzaileak %{resource_name} emaitza eguneratu du %{space_name} espazioan"
status:
create: "%{user_name} parte-hartzaileak %{resource_name} egoera sortu du"
- delete: "%{user_name} erabiltzaileak %{resource_name} egoera ezabatu du"
+ delete: "%{user_name} parte-hartzaileak %{resource_name} egoera ezabatu du"
update: "%{user_name} parte-hartzaileak %{resource_name} egoera eguneratu du"
value_types:
parent_presenter:
@@ -277,7 +277,7 @@ eu:
title: Mugarriak
no_results: Ez dago proiekturik
root_taxonomies:
- title: 'Ikusi honela:'
+ title: 'Honen bidez bistaratu:'
search:
search: Bilatu ekintzak
show:
@@ -301,7 +301,7 @@ eu:
global:
clear_all: Garbitu dena
comments_enabled: Iruzkinak gaituta
- comments_max_length: Iruzkinen gehieneko luzera (utzi 0 hasierako konfigurazioari eusteko)
+ comments_max_length: Iruzkin bakoitzeko gehieneko karaktereak (utzi 0 aurrez zehaztutako baliorako)
default_taxonomy: Taxonomia akatsa
default_taxonomy_help: Aukeratu zein taxonomia erakutsi nahi duzun akatsez. Taxonomiarik aukeratzen ez bada, emaitzak zerrenda formatuan agertuko dira.
define_taxonomy_filters: Mesedez, eszenatoki hau erabili aurretik, zehaztu iragazki batzuk partaidetza-espazio honetarako.
diff --git a/decidim-accountability/config/locales/fr-CA.yml b/decidim-accountability/config/locales/fr-CA.yml
index eac77d8857265..0485ab0b2edfd 100644
--- a/decidim-accountability/config/locales/fr-CA.yml
+++ b/decidim-accountability/config/locales/fr-CA.yml
@@ -302,7 +302,7 @@ fr-CA:
global:
clear_all: Tout supprimer
comments_enabled: Activer le module de commentaire
- comments_max_length: Longueur max des commentaires (laisser 0 pour la valeur par défaut)
+ comments_max_length: Nombre maximum de caractères par commentaire (Laisser 0 pour la valeur par défaut)
default_taxonomy: Taxonomie par défaut
default_taxonomy_help: Sélectionnez la taxonomie que vous voulez afficher par défaut. Si aucune taxonomie n'est sélectionnée, les résultats seront affichés dans un format de liste.
define_taxonomy_filters: Pour utiliser ce paramètre, des filtres doivent être définis dans cet espace participatif.
diff --git a/decidim-accountability/config/locales/fr.yml b/decidim-accountability/config/locales/fr.yml
index 58493a21eb60a..a0aac76d02f4f 100644
--- a/decidim-accountability/config/locales/fr.yml
+++ b/decidim-accountability/config/locales/fr.yml
@@ -302,7 +302,7 @@ fr:
global:
clear_all: Tout supprimer
comments_enabled: Activer le module de commentaire
- comments_max_length: Longueur max des commentaires (laisser 0 pour la valeur par défaut)
+ comments_max_length: Nombre maximum de caractères par commentaire (Laisser 0 pour la valeur par défaut)
default_taxonomy: Taxonomie par défaut
default_taxonomy_help: Sélectionnez la taxonomie que vous voulez afficher par défaut. Si aucune taxonomie n'est sélectionnée, les résultats seront affichés dans un format de liste.
define_taxonomy_filters: Pour utiliser ce paramètre, des filtres doivent être définis dans cet espace participatif.
diff --git a/decidim-accountability/config/locales/gl.yml b/decidim-accountability/config/locales/gl.yml
index c474184d5a688..7932fa8f8224a 100644
--- a/decidim-accountability/config/locales/gl.yml
+++ b/decidim-accountability/config/locales/gl.yml
@@ -124,7 +124,6 @@ gl:
settings:
global:
comments_enabled: Comentarios habilitados
- comments_max_length: Lonxitude máxima dos comentarios (0 para valor predefinido)
display_progress_enabled: Mostrar o progreso
intro: Intro
step:
diff --git a/decidim-accountability/config/locales/he-IL.yml b/decidim-accountability/config/locales/he-IL.yml
index 846620afc4c44..93a5addbd1605 100644
--- a/decidim-accountability/config/locales/he-IL.yml
+++ b/decidim-accountability/config/locales/he-IL.yml
@@ -34,7 +34,6 @@ he:
decidim/accountability/result:
one: תוצאה
two: תוצאות
- many: תוצאות
other: תוצאות
decidim:
accountability:
@@ -158,7 +157,6 @@ he:
added_projects:
one: תוצאה אחת יובאה מפרויקטים.
two: "שתי תוצאות יובאו מפרויקטים."
- many: "%{count} תוצאות יובאו מפרויקטים."
other: "%{count} תוצאות יובאו מפרויקטים."
subject: ייבוא מוצלח של תוצאות
success: פרויקטים מיובאים בהצלחה לתוצאות ברכיב %{component_name}. ניתן לעיין בתוצאות בממשק הניהול.
@@ -185,7 +183,6 @@ he:
results_count:
one: תוצאה אחת
two: "שתי תוצאות"
- many: "%{count} תוצאות"
other: "%{count} תוצאות"
home_header:
global_status: סטטוס ביצוע גלובלי
@@ -211,7 +208,6 @@ he:
global:
clear_all: נקה הכל
comments_enabled: תגובות אפשריות
- comments_max_length: אורך מקסימלי להערות (השאירו 0 לערך ברירת המחדל)
display_progress_enabled: הצגת התקדמות
intro: הקדמה
step:
diff --git a/decidim-accountability/config/locales/hu.yml b/decidim-accountability/config/locales/hu.yml
index 6a3f59e35dc3f..c302b1239f805 100644
--- a/decidim-accountability/config/locales/hu.yml
+++ b/decidim-accountability/config/locales/hu.yml
@@ -167,7 +167,6 @@ hu:
settings:
global:
comments_enabled: Megjegyzések engedélyezve
- comments_max_length: Kommentek maximális hossza (Hagyjon 0 -t az alapértékhez)
display_progress_enabled: Állapot megjelenítése
intro: Intro
step:
diff --git a/decidim-accountability/config/locales/it.yml b/decidim-accountability/config/locales/it.yml
index adf4bb14825dd..51fad32d3987c 100644
--- a/decidim-accountability/config/locales/it.yml
+++ b/decidim-accountability/config/locales/it.yml
@@ -281,7 +281,6 @@ it:
global:
clear_all: Cancella tutto
comments_enabled: Commenti abilitati
- comments_max_length: Lunghezza massima dei commenti (Lasciare 0 per il valore predefinito)
default_taxonomy: Tassonomia di default
default_taxonomy_help: Seleziona quale tassonomia vuoi mostrare di default. Se nessuna tassonomia è selezionata, i risultati saranno mostrati in formato elenco.
define_taxonomy_filters: Si prega di definire alcuni filtri per questo spazio partecipativo prima di utilizzare questa impostazione.
diff --git a/decidim-accountability/config/locales/ja.yml b/decidim-accountability/config/locales/ja.yml
index b10dceb2c9250..df0fd4ec2111d 100644
--- a/decidim-accountability/config/locales/ja.yml
+++ b/decidim-accountability/config/locales/ja.yml
@@ -294,7 +294,7 @@ ja:
global:
clear_all: すべてクリア
comments_enabled: コメントを有効にする
- comments_max_length: コメント最大長 (デフォルト値は 0 のまま)
+ comments_max_length: 各コメントの最大文字数 (0はデフォルト値のまま)
default_taxonomy: デフォルトのタクソノミー
default_taxonomy_help: デフォルトで表示するタクソノミーを選択します。タクソノミーが選択されていない場合、結果はリスト形式で表示されます。
define_taxonomy_filters: この設定を使用する前に、参加型スペースのフィルターをいくつか定義してください。
diff --git a/decidim-accountability/config/locales/ko.yml b/decidim-accountability/config/locales/ko.yml
index daebb79673eb3..22f78a79bc98c 100644
--- a/decidim-accountability/config/locales/ko.yml
+++ b/decidim-accountability/config/locales/ko.yml
@@ -154,7 +154,6 @@ ko:
settings:
global:
comments_enabled: 댓글 활성화됨
- comments_max_length: 댓글 최대 길이(기본값은 0으로 남김)
display_progress_enabled: 진행사항 보기
intro: 소개
step:
diff --git a/decidim-accountability/config/locales/lb.yml b/decidim-accountability/config/locales/lb.yml
index 87e27cc061426..5cf150c410e94 100644
--- a/decidim-accountability/config/locales/lb.yml
+++ b/decidim-accountability/config/locales/lb.yml
@@ -124,7 +124,6 @@ lb:
settings:
global:
comments_enabled: Kommentare aktiviert
- comments_max_length: Maximale Länge der Kommentare (0 für Standardwert)
display_progress_enabled: Fortschritt anzeigen
intro: Einführung
step:
diff --git a/decidim-accountability/config/locales/lt.yml b/decidim-accountability/config/locales/lt.yml
index 3da14b29a3e29..72b1b792e8bcf 100644
--- a/decidim-accountability/config/locales/lt.yml
+++ b/decidim-accountability/config/locales/lt.yml
@@ -163,7 +163,6 @@ lt:
settings:
global:
comments_enabled: Įjungti komentarai
- comments_max_length: Maksimalus komentaro ilgis (įrašyti 0 įprastam ilgiui)
display_progress_enabled: Rodyti progresą
intro: Įžanga
step:
diff --git a/decidim-accountability/config/locales/nl.yml b/decidim-accountability/config/locales/nl.yml
index 845ce8ba3af84..d89160eb82dfa 100644
--- a/decidim-accountability/config/locales/nl.yml
+++ b/decidim-accountability/config/locales/nl.yml
@@ -128,7 +128,6 @@ nl:
settings:
global:
comments_enabled: Reacties ingeschakeld
- comments_max_length: Commentaar maximale lengte (laat 0 voor standaard waarde)
display_progress_enabled: Geef de voortgang weer
intro: Inleiding
step:
diff --git a/decidim-accountability/config/locales/no.yml b/decidim-accountability/config/locales/no.yml
index 7107d3b7e5b14..85b59cbe2f7fc 100644
--- a/decidim-accountability/config/locales/no.yml
+++ b/decidim-accountability/config/locales/no.yml
@@ -128,7 +128,6 @@
settings:
global:
comments_enabled: Kommentarer aktivert
- comments_max_length: Maks lengde på kommentarer (Sett 0 for standardverdi)
display_progress_enabled: Vis fremgang
intro: Introduksjon
step:
diff --git a/decidim-accountability/config/locales/pl.yml b/decidim-accountability/config/locales/pl.yml
index a969cb1431009..0bc8435871f89 100644
--- a/decidim-accountability/config/locales/pl.yml
+++ b/decidim-accountability/config/locales/pl.yml
@@ -2,6 +2,9 @@
pl:
activemodel:
attributes:
+ milestone:
+ description: Opis
+ entry_date: Data
result:
decidim_accountability_status_id: Status
decidim_category_id: Kategoria
@@ -169,7 +172,6 @@ pl:
settings:
global:
comments_enabled: Komentarze włączone
- comments_max_length: Maksymalna długość komentarzy (Pozostaw 0 dla wartości domyślnej)
display_progress_enabled: Wyświetl postęp
intro: Wprowadzenie
step:
diff --git a/decidim-accountability/config/locales/pt-BR.yml b/decidim-accountability/config/locales/pt-BR.yml
index b7f18e1f976ca..e4e188e1c924f 100644
--- a/decidim-accountability/config/locales/pt-BR.yml
+++ b/decidim-accountability/config/locales/pt-BR.yml
@@ -300,7 +300,6 @@ pt-BR:
global:
clear_all: Apagar tudo
comments_enabled: Comentários ativados
- comments_max_length: Tamanho máximo de comentários (deixe 0 para o valor padrão)
default_taxonomy: Taxonomia padrão
default_taxonomy_help: Selecione qual taxonomia você deseja mostrar por padrão. Se nenhuma taxonomia for selecionada, os resultados serão exibidos em um formato de lista.
define_taxonomy_filters: Por favor, defina alguns filtros para este espaço participativo antes de usar esta configuração.
diff --git a/decidim-accountability/config/locales/pt.yml b/decidim-accountability/config/locales/pt.yml
index ef780cc810755..2652c56821a9e 100644
--- a/decidim-accountability/config/locales/pt.yml
+++ b/decidim-accountability/config/locales/pt.yml
@@ -144,7 +144,6 @@ pt:
global:
clear_all: Apagar tudo
comments_enabled: Comentários ativados
- comments_max_length: Comprimento máximo dos comentários (Deixar 0 para o valor predefinido)
define_taxonomy_filters: Para usar esta definição, filtros devem estar definidos neste espaço participativo.
display_progress_enabled: Mostrar progresso
intro: Introdução
diff --git a/decidim-accountability/config/locales/ro-RO.yml b/decidim-accountability/config/locales/ro-RO.yml
index 9ed0e9741da52..790070ba969f0 100644
--- a/decidim-accountability/config/locales/ro-RO.yml
+++ b/decidim-accountability/config/locales/ro-RO.yml
@@ -308,7 +308,6 @@ ro:
global:
clear_all: Eliminați tot
comments_enabled: Comentarii activate
- comments_max_length: Lungimea maximă a comentariilor (Lăsați 0 pentru valoarea implicită)
default_taxonomy: Taxonomie implicită
default_taxonomy_help: Selectați ce taxonomie doriți să afișați implicit. Dacă nu este selectată nicio taxonomie, rezultatele vor fi afișate într-un format de listă.
define_taxonomy_filters: Vă rugăm să definiți niște filtre pentru acest spațiu participativ înainte de a utiliza această setare.
diff --git a/decidim-accountability/config/locales/ru.yml b/decidim-accountability/config/locales/ru.yml
index 9839843ac6003..4144e695b4816 100644
--- a/decidim-accountability/config/locales/ru.yml
+++ b/decidim-accountability/config/locales/ru.yml
@@ -2,6 +2,10 @@
ru:
activemodel:
attributes:
+ milestone:
+ description: Описание
+ entry_date: Дата
+ title: Название
result:
decidim_accountability_status_id: Состояние
decidim_category_id: Категория
@@ -10,6 +14,7 @@ ru:
end_date: Дата окончания
progress: Продвижение
start_date: Дата начала
+ subresults: Подрезультаты
title: Заголовок
updated_at: 'Обновлено:'
status:
@@ -22,6 +27,14 @@ ru:
decidim/accountability/result_progress_updated_event: Прогресс результатов обновлен
activerecord:
models:
+ decidim:
+ accountability:
+ result:
+ budget_text: Этот результат %{link} был включен
+ meetings_ids: 'Что обсуждалось на этой встрече: %{link}'
+ project_ids: 'Что было включено в этот проект: %{link}'
+ proposal_ids: 'Что было включено в это предложение: %{link}'
+ text: 'Что было включено в этот результат: %{link}'
decidim/accountability/result:
one: Итог
few: Итога
@@ -30,35 +43,144 @@ ru:
decidim:
accountability:
actions:
+ add_milestone: Добавить этап
+ add_result: Добавить результат
+ confirm_delete_result: Вы уверены, что хотите удалить этот результат?
confirm_destroy: Вы действительно хотите удалить %{name}?
+ deleted_results_info: Удаленные результаты могут быть восстановлены из корзины.
destroy: Удалить
edit: Редактировать
+ import: Импорт результатов из другого компонента
+ import_csv: Импорт результатов из CSV файла
+ new_milestone: Новый этап
+ new_result: Новый результат
+ new_status: Новый статус
preview: Предварительный просмотр
title: Действия
+ view_deleted_results: Просмотр удаленных результатов
admin:
exports:
+ result_comments: Комментарии
results: Итоги
import_components:
+ create:
+ invalid: Возникла проблема при импорте результатов. Пожалуйста, тщательно следуйте инструкциям и убедитесь, что вы выбрали проекты для реализации.
+ filters:
+ proposal_state: Статус предложения
+ select_state: Выберите статус
form:
+ create: Импорт
no_components:
+ origin_component_id: Исходный компонент
+ select_component: Выберите компонент
+ new:
+ title: Импорт резуотатов из другого компонента
+ import_results:
+ new:
+ download_export: Скачать Экспорт в CSV формате
+ import: Импорт
+ info: |
+
Создайте вручную хотя бы один Результат через эту панель Администратора перед использованием Импорта, чтобы лучше понять формат и что потребуется заполнить.
+
%{link_export_csv}
+
Внесите изменения локально. Вы можете изменять только следующие столбцы CSV (остальные будут проигнорированы):
+
+
taxonomies/ids: идентификаторы таксономий (если более одного — разделите запятой)
+
parent/id: идентификатор родительского элемента (для связанных Результатов). Необязательно
+
title/en: заголовок на английском языке. Зависит от языковой конфигурации вашей платформы.
+
description/en: описание на английском языке. Зависит от языковой конфигурации вашей платформы.
+
start_date: дата начала выполнения результата (формат YYYY-MM-DD)
+
end_date: дата окончания выполнения результата (формат YYYY-MM-DD)
+
status/id: идентификатор Статуса для данного результата
+
progress: процент выполнения (от 0 до 100)
+
proposals_ids: внутренний идентификатор связанных предложений (разделённых запятой). Автоматически преобразуется в proposal_url
+
+
+
+ title: Импорт результатов из CSV файла
+ imports:
+ create:
+ invalid: При попытке импорта этого результата произошла ошибка.
+ success: Начался импорт файла. В ближайшие минуты вы получите письмо с результатом импорта.
+ milestones:
+ create:
+ invalid: При попытке добавить этот этап произошла ошибка.
+ success: Этап успешно создан.
+ destroy:
+ success: Этап успешно удален.
+ edit:
+ title: Редактировать этап
+ update: Обновить этап
+ index:
+ title: Этапы
+ new:
+ create: Создать этап
+ title: Новый этап
+ update:
+ invalid: При попытке обновить этот этап произошла ошибка.
+ success: Этап успешно обнавлен.
models:
result:
name: Итог
status:
name: Состояние
results:
+ bulk_actions:
+ dates_form:
+ change_dates: Изменить дату
+ end_date: Дата окончания
+ start_date: Дата начала
+ dropdown:
+ actions: Действия
+ change_dates: Изменить даты
+ change_status: Изменить статус
+ change_taxonomies: Изменить таксономии
+ status_form:
+ change_status: Изменить статус
+ status: Статус
+ submit_buttons:
+ cancel: Отменить
+ taxonomies_form:
+ change_taxonomies: Изменить таксономии
+ create:
+ invalid: При создании этого результата возникла проблема.
+ success: Результат успешно создан.
edit:
title: Редактировать итог
update: Обновить итог
index:
+ selected: Выбранные
title: Итоги
+ manage_trash:
+ title: Удаленные результаты
new:
create: Создать итог
title: Добавить итог
+ update:
+ invalid: При обновлении этого результата возникла проблема.
+ success: Результат успешно обновлен.
+ update_dates:
+ invalid: При обновлении дат результатов возникла проблема
+ success: Даты результатов успешно обновлены
+ update_status:
+ invalid: При обновлении статуса результатов возникла проблема
+ success: Статус результатов успешно обновлен
+ update_taxonomies:
+ invalid: Не удалось обновить таксономии %{taxonomies} для результатов %{results}
+ select_a_result: Выберите результат
+ select_a_taxonomy: Выберите таксономию
+ success: Успешно обновлены таксономии %{taxonomies} для результатов %{results}
shared:
subnav:
statuses: Состояния
statuses:
+ create:
+ invalid: Возникла проблема при создании этого статуса.
+ success: Статус успешно создан.
+ destroy:
+ success: Статус успешно удален.
edit:
title: Редактировать состояние
update: Обновить состояние
@@ -67,21 +189,62 @@ ru:
new:
create: Создать состояние
title: Добавить состояние
+ update:
+ invalid: При обновлении статуса возникла проблема.
+ success: Статус успешно обновлен.
admin_log:
+ milestones:
+ create: "%{user_name} создал этап %{resource_name}"
+ delete: "%{user_name} удалил этап %{resource_name}"
+ update: "%{user_name} обновил этап %{resource_name}"
result:
create: "%{user_name} создал итог %{resource_name} в %{space_name}"
delete: "%{user_name} удалил итог %{resource_name} в %{space_name}"
+ restore: "%{user_name} восстановил результат %{resource_name} в %{space_name}"
+ soft_delete: "%{user_name} переместил результат %{resource_name} в корзину %{space_name}"
update: "%{user_name} обновил итог %{resource_name} в %{space_name}"
+ status:
+ create: "%{user_name} создал статус %{resource_name}"
+ delete: "%{user_name} удалил статус %{resource_name}"
+ update: "%{user_name} обновил статус %{resource_name}"
value_types:
parent_presenter:
not_found: 'Родительский объект не найден в базе данных (ID: %{id})'
+ content_blocks:
+ highlighted_results:
+ results: Результаты
+ creation:
+ text: Этот результат был создан
+ import_mailer:
+ import:
+ errors: Ошибки
+ errors_present: Произошла ошибка при импорте результатов.
+ row_number: Строка
+ subject: Успешный импорт результатов
+ success: Успешный импорт результатов. Вы можете просмотреть результаты в интерфейсе администрирования.
+ import_projects_mailer:
+ import:
+ subject: Успешный импорт проектов
+ success: Проекты успешно импортированны в результаты в компоненте %{component_name}. Вы можете просмотреть результаты в интерфейсе администрирования.
+ import_proposals_mailer:
+ import:
+ subject: Успешный импорт предложений
+ success: Предложения успешно импортированны в результаты в компоненте %{component_name}. Вы можете просмотреть результаты в интерфейсе администрирования.
+ last_activity:
+ new_result: 'Новый результат:'
models:
+ milestone:
+ fields:
+ entry_date: Дата
+ title: Название
result:
fields:
+ created_at: Создано
end_date: Дата окончания
progress: Продвижение
start_date: Дата начала
status: Состояние
+ taxonomies: Таксономии
title: Заголовок
status:
fields:
@@ -98,21 +261,50 @@ ru:
other: "%{count} итога"
home_header:
global_status: Состояние общего исполнения
+ milestones:
+ title: Этапы
+ no_results: Нет проектов
+ root_taxonomies:
+ title: 'Отображать по:'
search:
search: Поиск действий
show:
stats:
back_to_resource: Вернуться к итогу
+ admin:
+ filters:
+ results:
+ status_id_eq:
+ label: Статус
+ taxonomies_part_of_contains:
+ label: Таксономия
+ tooltips:
+ deleted_results_info: Невозможно удалить этот результат
components:
accountability:
+ actions:
+ comment: Комментарий
name: Отчетность
settings:
global:
+ clear_all: Очистить все
comments_enabled: Комментарии включены
+ default_taxonomy: Таксономия по умолчанию
+ default_taxonomy_help: Выберите, какую таксономию вы хотите показать по умолчанию. Если таксономия не выбрана, результаты будут показаны в виде списка.
+ define_taxonomy_filters: Пожалуйста, определите фильтры для этого партисипативного пространства перед использованием этой настройки.
display_progress_enabled: Показывать ход выполнения
+ geocoding_enabled: Карты включены
intro: Вступление
+ no_taxonomy_filters_found: Фильтры таксономии не найдены.
+ taxonomy_filters: Выберите фильтры для компонента
+ taxonomy_filters_add: Добавить фильтр
step:
comments_blocked: Комментарии отключены
+ visualization: Визуализация
+ download_your_data:
+ show:
+ result_comments: Экспорт комментариев результатов
+ results: Экспорт результатов
events:
accountability:
proposal_linked:
@@ -123,9 +315,50 @@ ru:
result_progress_updated:
email_intro: 'Результат "%{resource_title}", который включает предложение "%{proposal_title}", теперь завершено на %{progress}%. Вы можете увидеть его на этой странице:'
email_outro: Вы получили это уведомление, потому что вы следите за "%{proposal_title}", и это предложение включено в результат "%{resource_title}". Вы можете прекратить получение уведомлений, перейдя по предыдущей ссылке.
+ email_subject: Обновление прогресса %{resource_title}
notification_title: Результат %{resource_title}, который включает предложение %{proposal_title}, теперь %{progress}% завершен.
+ open_data:
+ help:
+ result_comments:
+ alignment: Если этот комментарий был за, против или нейтральный
+ author: Имя участника, который написал этот комментарий
+ body: Сам комментарий
+ commentable_id: Уникальный идентификатор комментария
+ commentable_type: Тип комментируемого элемента (результат, предложение и т.д.)
+ created_at: Дата создания комментария
+ depth: Позиция комментария в цепочке обсуждения (прямой ответ или ответ на ответ)
+ id: Идентификатор этого комментария
+ locale: Язык, при котором участник оставлял этот комментарий
+ root_commentable_url: URL ресурса, который связан с этим комментарием
+ results:
+ address: Адрес результата (если есть)
+ children_count: Количество результатов дочернего процесса
+ comments_count: Количество комментариев к этому результату
+ component: Компонент, к которому относится результат
+ created_at: Дата создания результата
+ description: Описание результата
+ end_date: Дата окончания выполнения результата
+ id: Уникальный идентификатор результата
+ latitude: Географическая широта результата в случае, если он имеет физическое расположение
+ longitude: Географическая долгота результата в случае, если он имеет физическое местоположение
+ parent: Родительский результат (если есть) результата
+ progress: Процент выполнения результата
+ proposal_urls: URL-адреса предложений, которые включены в этот результат
+ reference: Уникальная ссылка на результат
+ start_date: Дата начала выполнения результата
+ status: Текущий статус этого результата
+ taxonomies: Таксономии результата
+ title: Заголовок результата
+ updated_at: Последняя дата обновления результата
+ url: URL-адрес, где можно найти этот результат
+ participatory_spaces:
+ highlighted_results:
+ see_all: Посмотреть все результаты
resource_links:
included_projects:
result_project: Проекты, включенные в эти итоги
included_proposals:
result_proposal: Предложения, включенные в этот итог
+ statistics:
+ results_count: Результаты
+ results_count_tooltip: Количество решений или итогов, выработанных в рамках данного пространства.
diff --git a/decidim-accountability/config/locales/sk.yml b/decidim-accountability/config/locales/sk.yml
index 5065721165308..2810dcb4c7c4a 100644
--- a/decidim-accountability/config/locales/sk.yml
+++ b/decidim-accountability/config/locales/sk.yml
@@ -13,7 +13,7 @@ sk:
description: Popis
end_date: Koniec
progress: Postup
- start_date: Začiatok
+ start_date: Začiatok
subresults: Čiastkové výsledky
title: Názov
updated_at: Aktualizované
@@ -268,7 +268,7 @@ sk:
end_date: Koniec
id: ID
progress: Postup
- start_date: Začiatok
+ start_date: Začiatok
status: Stav
taxonomies: Taxonómie
title: Názov
@@ -315,7 +315,6 @@ sk:
global:
clear_all: Vymazať všetko
comments_enabled: Komentáre povolené
- comments_max_length: Maximálna dĺžka komentárov (Ponechajte 0 pre predvolenú hodnotu)
default_taxonomy: Predvolená taxonómia
default_taxonomy_help: Vyberte, ktorú taxonómiu chcete predvolene zobraziť. Ak nie je vybraná žiadna taxonómia, výsledky sa zobrazia vo formáte zoznamu.
define_taxonomy_filters: Pred použitím tohto nastavenia definujte nejaké filtre pre tento participatívny priestor.
diff --git a/decidim-accountability/config/locales/sq-AL.yml b/decidim-accountability/config/locales/sq-AL.yml
index 76e751f7c074e..4871b3fe797e4 100644
--- a/decidim-accountability/config/locales/sq-AL.yml
+++ b/decidim-accountability/config/locales/sq-AL.yml
@@ -162,7 +162,6 @@ sq:
settings:
global:
comments_enabled: Komentet e aktivizuara
- comments_max_length: Madhësia maks. e komenteve
display_progress_enabled: Shfaq ecurinë
intro: Hyrje
step:
diff --git a/decidim-accountability/config/locales/sv.yml b/decidim-accountability/config/locales/sv.yml
index ef0fbdbcd9c73..cd7937cec716a 100644
--- a/decidim-accountability/config/locales/sv.yml
+++ b/decidim-accountability/config/locales/sv.yml
@@ -33,7 +33,7 @@ sv:
budget_text: Resultatet %{link} har tagits med
meetings_ids: 'Diskuterades på det här mötet: %{link}'
project_ids: 'Lades till i det här projektet: %{link}'
- proposal_ids: 'Lades till i det här förslaget: %{link}'
+ proposal_ids: 'Förslaget som röstades fram: %{link}'
text: 'Lades till i det här resultatet: %{link}'
decidim/accountability/result:
one: Resultat
@@ -302,7 +302,6 @@ sv:
global:
clear_all: Rensa alla
comments_enabled: Aktivera kommentarer
- comments_max_length: Maximal kommentarslängd (ange 0 för att använda standardvärdet)
default_taxonomy: Standardkategori
default_taxonomy_help: Välj vilka kategorier du vill visa som standard. Om ingen kategori är vald, kommer resultatet visas som en lista.
define_taxonomy_filters: Ställ in filter innan du använder den här inställningen.
diff --git a/decidim-accountability/config/locales/th-TH.yml b/decidim-accountability/config/locales/th-TH.yml
index ba4ceb24cb5aa..4c72bfe0088bb 100644
--- a/decidim-accountability/config/locales/th-TH.yml
+++ b/decidim-accountability/config/locales/th-TH.yml
@@ -110,7 +110,6 @@ th:
settings:
global:
comments_enabled: เปิดใช้งานความคิดเห็นแล้ว
- comments_max_length: ความคิดเห็นความยาวสูงสุด (ปล่อยให้ 0 เป็นค่าเริ่มต้น)
display_progress_enabled: แสดงความคืบหน้า
intro: คำแนะนำ
step:
diff --git a/decidim-accountability/config/locales/tr-TR.yml b/decidim-accountability/config/locales/tr-TR.yml
index d967ab9add062..39fe34d8d7a2c 100644
--- a/decidim-accountability/config/locales/tr-TR.yml
+++ b/decidim-accountability/config/locales/tr-TR.yml
@@ -301,7 +301,6 @@ tr:
global:
clear_all: Tümünü sil
comments_enabled: Yorumlar etkin
- comments_max_length: Maksimum yorum uzunluğu (Varsayılan değer için 0 bırakın)
default_taxonomy: Varsayılan sınıflandırma
default_taxonomy_help: Varsayılan olarak hangi sınıflandırmayı göstermek istediğinizi seçin. Eğer herhangi bir sınıflandırma seçilmezse, sonuçlar liste biçiminde gösterilecektir.
define_taxonomy_filters: Bu ayarı kullanmadan önce lütfen bu katılımcı alan için bazı filtreler tanımlayın.
diff --git a/decidim-accountability/config/locales/zh-CN.yml b/decidim-accountability/config/locales/zh-CN.yml
index ea49bc27cabc4..ef0488296af82 100644
--- a/decidim-accountability/config/locales/zh-CN.yml
+++ b/decidim-accountability/config/locales/zh-CN.yml
@@ -109,7 +109,6 @@ zh-CN:
settings:
global:
comments_enabled: 评论已启用
- comments_max_length: 评论最大长度 (默认值留0)
display_progress_enabled: 显示进度
intro: 简介
step:
diff --git a/decidim-accountability/config/locales/zh-TW.yml b/decidim-accountability/config/locales/zh-TW.yml
index 5ea94b37309ba..04bb6c3692bac 100644
--- a/decidim-accountability/config/locales/zh-TW.yml
+++ b/decidim-accountability/config/locales/zh-TW.yml
@@ -153,7 +153,6 @@ zh-TW:
settings:
global:
comments_enabled: 已啟用留言
- comments_max_length: 留言字數上限 (0 表示使用預設)
display_progress_enabled: 顯示進度
intro: 介紹
step:
diff --git a/decidim-accountability/lib/decidim/accountability/component.rb b/decidim-accountability/lib/decidim/accountability/component.rb
index 027802b101c59..3c48d9b8be5d9 100644
--- a/decidim-accountability/lib/decidim/accountability/component.rb
+++ b/decidim-accountability/lib/decidim/accountability/component.rb
@@ -51,7 +51,7 @@
icon_name: "chat-1-line",
tooltip_key: "comments_count",
tag: :comments do |components, _start_at, _end_at|
- Decidim::Accountability::Result.where(component: components).count
+ Decidim::Accountability::Result.where(component: components).sum(:comments_count)
end
component.settings(:step) do |settings|
diff --git a/decidim-accountability/lib/decidim/accountability/version.rb b/decidim-accountability/lib/decidim/accountability/version.rb
index 27c55e8079ab1..2ae5c1e1eff32 100644
--- a/decidim-accountability/lib/decidim/accountability/version.rb
+++ b/decidim-accountability/lib/decidim/accountability/version.rb
@@ -4,7 +4,7 @@ module Decidim
# This holds decidim-accountability version.
module Accountability
def self.version
- "0.31.4"
+ "0.31.7"
end
end
end
diff --git a/decidim-accountability/spec/forms/admin/status_form_spec.rb b/decidim-accountability/spec/forms/admin/status_form_spec.rb
index fbf672487e3aa..a7be1b8be3561 100644
--- a/decidim-accountability/spec/forms/admin/status_form_spec.rb
+++ b/decidim-accountability/spec/forms/admin/status_form_spec.rb
@@ -46,5 +46,29 @@ module Decidim::Accountability
it { is_expected.not_to be_valid }
end
+
+ describe "when progress is negative" do
+ let(:progress) { -12 }
+
+ it { is_expected.not_to be_valid }
+ end
+
+ describe "when progress is greater than 100" do
+ let(:progress) { 999 }
+
+ it { is_expected.not_to be_valid }
+ end
+
+ describe "when progress is between 0 and 100" do
+ let(:progress) { (0..100).to_a.sample }
+
+ it { is_expected.to be_valid }
+ end
+
+ describe "when progress is empty" do
+ let(:progress) { nil }
+
+ it { is_expected.to be_valid }
+ end
end
end
diff --git a/decidim-accountability/spec/lib/decidim/accountability/component_spec.rb b/decidim-accountability/spec/lib/decidim/accountability/component_spec.rb
index bde48b30bc2d3..53b2e8c39869e 100644
--- a/decidim-accountability/spec/lib/decidim/accountability/component_spec.rb
+++ b/decidim-accountability/spec/lib/decidim/accountability/component_spec.rb
@@ -7,6 +7,33 @@
let(:organization) { component.organization }
let!(:current_user) { create(:user, :confirmed, :admin, organization:) }
+ describe "stats" do
+ subject { current_stat[1][:data] }
+
+ let(:raw_stats) do
+ Decidim.component_manifests.map do |component_manifest|
+ component_manifest.stats.filter(name: stats_name).with_context(component).flat_map { |name, data| [component_manifest.name, name, data] }
+ end
+ end
+
+ let(:stats) { raw_stats.select { |stat| stat[0] == :accountability } }
+ let!(:result) { create(:result, component:) }
+ let(:current_stat) { stats.find { |stat| stat[1][:name] == stats_name } }
+
+ describe "comments_count" do
+ let(:stats_name) { :comments_count }
+
+ before do
+ create_list(:comment, 3, commentable: result)
+ end
+
+ it "counts the comments" do
+ expect(Decidim::Comments::Comment.count).to eq 3
+ expect(subject).to eq 3
+ end
+ end
+ end
+
describe "on edit", type: :system do
let(:edit_component_path) do
Decidim::EngineRouter.admin_proxy(component.participatory_space).edit_component_path(component.id)
diff --git a/decidim-accountability/spec/services/decidim/accountability/results_csv_importer_spec.rb b/decidim-accountability/spec/services/decidim/accountability/results_csv_importer_spec.rb
index 795e9f37997fc..d3409fcd3ca43 100644
--- a/decidim-accountability/spec/services/decidim/accountability/results_csv_importer_spec.rb
+++ b/decidim-accountability/spec/services/decidim/accountability/results_csv_importer_spec.rb
@@ -10,7 +10,7 @@
let(:current_user) { create(:user, organization:) }
let(:participatory_process) { create(:participatory_process, organization:) }
let(:current_component) { create(:accountability_component, participatory_space: participatory_process, id: 16) }
- let!(:root_taxonomy) { create(:taxonomy, organization:) }
+ let!(:root_taxonomy) { create(:taxonomy, id: 15, organization:) }
let!(:taxonomy1) { create(:taxonomy, id: 16, parent: root_taxonomy, organization:) }
let!(:taxonomy2) { create(:taxonomy, id: 17, parent: root_taxonomy, organization:) }
let!(:taxonomy3) { create(:taxonomy, id: 18, parent: root_taxonomy, organization:) }
diff --git a/decidim-accountability/spec/shared/manage_results_bulk_actions_examples.rb b/decidim-accountability/spec/shared/manage_results_bulk_actions_examples.rb
index 950236f2ae50d..6f7305720e344 100644
--- a/decidim-accountability/spec/shared/manage_results_bulk_actions_examples.rb
+++ b/decidim-accountability/spec/shared/manage_results_bulk_actions_examples.rb
@@ -37,6 +37,21 @@
expect(page).to have_selector(:link_or_button, "Change status")
expect(page).to have_selector(:link_or_button, "Change dates")
end
+
+ context "when there are no statuses" do
+ before do
+ Decidim::Accountability::Status.where(component: current_component).destroy_all
+ visit current_path
+ page.find_by_id("results_bulk").set(true)
+ click_on "Actions"
+ end
+
+ it "does not show the change status option" do
+ expect(page).to have_selector(:link_or_button, "Change taxonomies")
+ expect(page).to have_no_selector(:link_or_button, "Change status")
+ expect(page).to have_selector(:link_or_button, "Change dates")
+ end
+ end
end
context "when change taxonomies is selected from actions dropdown" do
diff --git a/decidim-accountability/spec/shared/manage_results_examples.rb b/decidim-accountability/spec/shared/manage_results_examples.rb
index e4fead52c5839..b2bb665449e25 100644
--- a/decidim-accountability/spec/shared/manage_results_examples.rb
+++ b/decidim-accountability/spec/shared/manage_results_examples.rb
@@ -9,6 +9,27 @@
it_behaves_like "having a rich text editor", "new_result", "full"
end
+ context "when there are statuses" do
+ before do
+ click_on "New result"
+ end
+
+ it "displays the status select" do
+ expect(page).to have_select "result_decidim_accountability_status_id"
+ end
+ end
+
+ context "when there are no statuses" do
+ before do
+ Decidim::Accountability::Status.where(component: current_component).destroy_all
+ click_on "New result"
+ end
+
+ it "does not display the status select" do
+ expect(page).to have_no_select "result_decidim_accountability_status_id"
+ end
+ end
+
context "when the proposal module is not installed" do
before do
allow(Decidim).to receive(:module_installed?).and_return(false)
diff --git a/decidim-accountability/spec/types/integration_schema_spec.rb b/decidim-accountability/spec/types/integration_schema_spec.rb
index 312da1eeaa58d..725e14629a500 100644
--- a/decidim-accountability/spec/types/integration_schema_spec.rb
+++ b/decidim-accountability/spec/types/integration_schema_spec.rb
@@ -156,7 +156,7 @@
]
},
"url" => Decidim::EngineRouter.main_proxy(current_component).root_url,
- "weight" => 0
+ "weight" => current_component.weight
}
end
let!(:current_component) { create(:accountability_component, participatory_space: participatory_process) }
diff --git a/decidim-admin/app/commands/decidim/admin/create_newsletter.rb b/decidim-admin/app/commands/decidim/admin/create_newsletter.rb
index abd9fd5a4f1b4..66fdc7bec55b0 100644
--- a/decidim-admin/app/commands/decidim/admin/create_newsletter.rb
+++ b/decidim-admin/app/commands/decidim/admin/create_newsletter.rb
@@ -31,7 +31,7 @@ def run_after_hooks
@content_block = content_block
end
on(:invalid) do
- raise "There was a problem persisting the changes to the content block"
+ raise Decidim::Commands::HookError, "There was a problem persisting the changes to the content block"
end
end
end
diff --git a/decidim-admin/app/commands/decidim/admin/create_taxonomy_filter.rb b/decidim-admin/app/commands/decidim/admin/create_taxonomy_filter.rb
index 0e5b373d18d17..d89ac3721d3ca 100644
--- a/decidim-admin/app/commands/decidim/admin/create_taxonomy_filter.rb
+++ b/decidim-admin/app/commands/decidim/admin/create_taxonomy_filter.rb
@@ -5,20 +5,34 @@ module Admin
# A command with all the business logic to create a new taxonomy filter in the
# system.
class CreateTaxonomyFilter < Decidim::Commands::CreateResource
- fetch_form_attributes :root_taxonomy_id, :filter_items, :internal_name, :name, :participatory_space_manifests
+ fetch_form_attributes :root_taxonomy_id, :internal_name, :name, :participatory_space_manifests
protected
def resource_class = Decidim::TaxonomyFilter
+ def run_after_hooks
+ create_filter_items!
+ end
+
def extra_params
{
extra: {
taxonomy_name: form.root_taxonomy.name,
- filter_items_count: form.filter_items.count
+ filter_items_count: selected_taxonomy_item_ids.size
}
}
end
+
+ private
+
+ def create_filter_items!
+ selected_taxonomy_item_ids.each { |taxonomy_item_id| resource.filter_items.create!(taxonomy_item_id:) }
+ end
+
+ def selected_taxonomy_item_ids
+ form.taxonomy_items.map(&:to_i).uniq
+ end
end
end
end
diff --git a/decidim-admin/app/commands/decidim/admin/update_taxonomy_filter.rb b/decidim-admin/app/commands/decidim/admin/update_taxonomy_filter.rb
index 03f8b1f485749..0f34371017192 100644
--- a/decidim-admin/app/commands/decidim/admin/update_taxonomy_filter.rb
+++ b/decidim-admin/app/commands/decidim/admin/update_taxonomy_filter.rb
@@ -2,27 +2,45 @@
module Decidim
module Admin
- # A command with all the business logic to create a new taxonomy filter in the
- # system.
+ # A command with all the business logic to update an existing taxonomy filter
+ # in the system.
class UpdateTaxonomyFilter < Decidim::Commands::UpdateResource
- fetch_form_attributes :filter_items, :internal_name, :name, :participatory_space_manifests
+ fetch_form_attributes :internal_name, :name, :participatory_space_manifests
protected
def resource_class = Decidim::TaxonomyFilter
- def run_before_hooks
- resource.filter_items.destroy_all
+ def run_after_hooks
+ sync_filter_items!
end
def extra_params
{
extra: {
taxonomy_name: resource.root_taxonomy.name,
- filter_items_count: form.filter_items.count
+ filter_items_count: selected_taxonomy_item_ids.size
}
}
end
+
+ private
+
+ def sync_filter_items!
+ removed_ids = current_taxonomy_item_ids - selected_taxonomy_item_ids
+ added_ids = selected_taxonomy_item_ids - current_taxonomy_item_ids
+
+ resource.filter_items.where(taxonomy_item_id: removed_ids).destroy_all if removed_ids.any?
+ added_ids.each { |taxonomy_item_id| resource.filter_items.create!(taxonomy_item_id:) }
+ end
+
+ def current_taxonomy_item_ids
+ resource.filter_items.pluck(:taxonomy_item_id)
+ end
+
+ def selected_taxonomy_item_ids
+ form.taxonomy_items.map(&:to_i).uniq
+ end
end
end
end
diff --git a/decidim-admin/app/controllers/decidim/admin/block_user_controller.rb b/decidim-admin/app/controllers/decidim/admin/block_user_controller.rb
index 4cc2cf264069e..ccb88a7acb4e6 100644
--- a/decidim-admin/app/controllers/decidim/admin/block_user_controller.rb
+++ b/decidim-admin/app/controllers/decidim/admin/block_user_controller.rb
@@ -10,6 +10,8 @@ class BlockUserController < Decidim::Admin::ApplicationController
def new
enforce_permission_to :block, :admin_user
+ return redirect_to(officializations_path, alert: I18n.t("officializations.block.no_user", scope: "decidim.admin")) unless user
+
@form = form(BlockUserForm).from_model(user)
@form.hide = params[:hide] || false
end
diff --git a/decidim-admin/app/controllers/decidim/admin/newsletters_controller.rb b/decidim-admin/app/controllers/decidim/admin/newsletters_controller.rb
index fbdc80e89ff86..a8409768eeb79 100644
--- a/decidim-admin/app/controllers/decidim/admin/newsletters_controller.rb
+++ b/decidim-admin/app/controllers/decidim/admin/newsletters_controller.rb
@@ -55,6 +55,7 @@ def create
on(:invalid) do |newsletter|
@newsletter = newsletter
+ @form.images = content_block.images_container
flash.now[:error] = I18n.t("newsletters.create.error", scope: "decidim.admin")
render action: :new, status: :unprocessable_entity
end
diff --git a/decidim-admin/app/controllers/decidim/admin/officializations_controller.rb b/decidim-admin/app/controllers/decidim/admin/officializations_controller.rb
index 6d80a4ba60bc2..dd9158819296d 100644
--- a/decidim-admin/app/controllers/decidim/admin/officializations_controller.rb
+++ b/decidim-admin/app/controllers/decidim/admin/officializations_controller.rb
@@ -22,6 +22,8 @@ def index
def new
enforce_permission_to :create, :officialization
+ return redirect_to(officializations_path, alert: I18n.t("officializations.create.no_user_found", scope: "decidim.admin")) unless user
+
@form = form(OfficializationForm).from_model(user)
end
diff --git a/decidim-admin/app/forms/decidim/admin/taxonomy_filter_form.rb b/decidim-admin/app/forms/decidim/admin/taxonomy_filter_form.rb
index a0eacb5de4632..54d50dc7a02a5 100644
--- a/decidim-admin/app/forms/decidim/admin/taxonomy_filter_form.rb
+++ b/decidim-admin/app/forms/decidim/admin/taxonomy_filter_form.rb
@@ -43,7 +43,7 @@ def filter_items
def items_collection
return [] unless root_taxonomy
- @items_collection ||= map_items_collection(root_taxonomy)
+ @items_collection ||= build_items_collection
end
def root_taxonomy
@@ -61,22 +61,24 @@ def available_participatory_space_manifests
private
- def map_items_collection(taxonomy)
- taxonomy.children.map do |item|
+ def build_items_collection
+ children_by_parent_id = root_taxonomy.all_children.group_by(&:parent_id)
+ build_subtree(root_taxonomy.id, children_by_parent_id)
+ end
+
+ def build_subtree(parent_id, children_by_parent_id)
+ Array(children_by_parent_id[parent_id]).map do |item|
Item.new(
name: translated_attribute(item.name),
value: item.id,
- children: map_items_collection(item)
+ children: build_subtree(item.id, children_by_parent_id)
)
end
end
def valid_taxonomy_items
- return if taxonomy_items.all? do |item|
- next unless root_taxonomy
-
- root_taxonomy.all_children.map(&:id).include?(item.to_i)
- end
+ valid_ids = root_taxonomy ? root_taxonomy.all_children.pluck(:id).to_set : Set.new
+ return if taxonomy_items.all? { |item| valid_ids.include?(item.to_i) }
errors.add(:taxonomy_items, :invalid)
end
diff --git a/decidim-admin/app/packs/stylesheets/decidim/admin/application.scss b/decidim-admin/app/packs/stylesheets/decidim/admin/application.scss
index 359d6224a1deb..99924a3cac2d6 100755
--- a/decidim-admin/app/packs/stylesheets/decidim/admin/application.scss
+++ b/decidim-admin/app/packs/stylesheets/decidim/admin/application.scss
@@ -24,7 +24,7 @@
@use "stylesheets/decidim/admin/datepicker";
@use "stylesheets/decidim/admin/minimap";
@use "stylesheets/decidim/admin/proposal_status";
-@use "stylesheets/decidim/tribute";
+@use "stylesheets/decidim/editor_suggestions";
:root {
--primary: #e02d2d;
diff --git a/decidim-admin/app/views/decidim/admin/attachment_collections/index.html.erb b/decidim-admin/app/views/decidim/admin/attachment_collections/index.html.erb
index 8a759b079324e..bae1c8c885b68 100644
--- a/decidim-admin/app/views/decidim/admin/attachment_collections/index.html.erb
+++ b/decidim-admin/app/views/decidim/admin/attachment_collections/index.html.erb
@@ -51,7 +51,7 @@
<% end %>
<% else %>
<%= render partial: "layouts/decidim/admin/title_bar_responsive" %>
diff --git a/decidim-admin/config/locales/ar.yml b/decidim-admin/config/locales/ar.yml
index 044a6b3cf7227..19e495ffe47c6 100644
--- a/decidim-admin/config/locales/ar.yml
+++ b/decidim-admin/config/locales/ar.yml
@@ -44,7 +44,6 @@ ar:
alert_color: تنبيه
available_authorizations: التراخيص المتاحة
badges_enabled: تمكين الشارات
- comments_max_length: الحد الأقصى لطول التعليقات (اترك 0 لاستعمال القيمة الافتراضية)
customize_welcome_notification: تخصيص إشعار الترحيب
default_locale: اللغة الافتراضية
description: الوصف
@@ -715,10 +714,6 @@ ar:
'true': 'نعم'
new:
create: إنشاء
- shared:
- gallery:
- add_images: إضافة صور
- edit_images: تعديل الصورة
static_page_topics:
create:
error: كانت هناك مشكلة في إنشاء موضوع جديد.
diff --git a/decidim-admin/config/locales/bg.yml b/decidim-admin/config/locales/bg.yml
index 618b170a02451..7eafd1641890d 100644
--- a/decidim-admin/config/locales/bg.yml
+++ b/decidim-admin/config/locales/bg.yml
@@ -44,7 +44,6 @@ bg:
alert_color: Аларма
available_authorizations: Активни оторизации
badges_enabled: Включи значките
- comments_max_length: Максимална дължина на коментарите (Оставете 0 за стойност по подразбиране)
customize_welcome_notification: Персонализирайте приветствието
default_locale: Език по подразбиране
description: Описание
@@ -850,10 +849,6 @@ bg:
next_title: Следващ елемент
previous: Предишен
previous_title: Предишен елемент
- gallery:
- add_images: Добави изображения
- edit_images: Редактиране на изображения
- gallery_legend: Добавяне на галерия с изображения (незадължително)
static_page_topics:
create:
error: Възникна проблем при създаването на нова тема.
diff --git a/decidim-admin/config/locales/bs-BA.yml b/decidim-admin/config/locales/bs-BA.yml
index ed938f426c378..a4ff486b5759d 100644
--- a/decidim-admin/config/locales/bs-BA.yml
+++ b/decidim-admin/config/locales/bs-BA.yml
@@ -452,10 +452,6 @@ bs:
update: Ažuriraj
new:
create: Stvori
- shared:
- gallery:
- add_images: Dodaj slike
- gallery_legend: Dodaj galeriju slika (opciono)
titles:
area_types: Tipovi oblasti
pages: Stranice
diff --git a/decidim-admin/config/locales/ca-IT.yml b/decidim-admin/config/locales/ca-IT.yml
index 839449804779c..a742503c56f63 100644
--- a/decidim-admin/config/locales/ca-IT.yml
+++ b/decidim-admin/config/locales/ca-IT.yml
@@ -12,6 +12,7 @@ ca-IT:
plural: Plural
attachment:
attachment_collection_id: Carpeta
+ attachments: Fitxers adjunts
description: Descripció
file: Arxiu
title: Nom de l'adjunt o imatge
@@ -45,7 +46,7 @@ ca-IT:
alert_color: Alerta
available_authorizations: Autoritzacions disponibles
badges_enabled: Habilitar les ensenyes
- comments_max_length: Longitud màxima dels comentaris (deixa 0 si vols mantenir la configuració per defecte)
+ comments_max_length: Caràcters màxims per comentari (deixar a 0 el valor predeterminat)
customize_welcome_notification: Personalitza la notificació de benvinguda
default_locale: Idioma per defecte
description: Descripció
@@ -222,7 +223,7 @@ ca-IT:
alert: 'Necessari: revisa les nostres condicions del servei d''administració'
callout: Si us plau, dedica un moment a revisar les condicions del servei d'administració. En cas contrari, no podràs administrar la plataforma.
cta: Revisar-les ara.
- title: Termes i condicions d'ús para administradores
+ title: Termes i condicions d'ús per a administradores
area_types:
create:
error: S'ha produït un error en crear un tipus d'àrea nova.
@@ -834,6 +835,7 @@ ca-IT:
officializations:
block:
error: Hi ha hagut un problema en bloquejar a la participant.
+ no_user: No s'ha trobat cap usuària
success: Participant bloquejada correctament.
bulk_action:
block:
@@ -843,6 +845,7 @@ ca-IT:
invalid: Hi ha hagut un problema en desbloquejar a les participants.
success: Participants desbloquejades correctament.
create:
+ no_user_found: No s'ha trobat aquesta participant.
success: Participant oficialitzada correctament.
destroy:
success: S'ha retirat correctament l'oficialització de la participant.
@@ -867,6 +870,8 @@ ca-IT:
badge: Ensenya d'oficialització
officialize: Oficialitza
title: Oficialitza la participant "%{name}"
+ show_email:
+ no_user: No s'ha trobat cap usuària
show_email_modal:
description: Si necessites contactar a una participant directament pots clicar al botó Mostra per veure la seva adreça de correu electrònic. Aquesta acció es registrarà.
email_address: Adreça de correu electrònic
@@ -882,7 +887,7 @@ ca-IT:
title: Edita organització
update: Actualitzar
form:
- admin_terms_of_service: Termes i condicions d'ús para administradores
+ admin_terms_of_service: Termes i condicions d'ús per a administradores
basic_configuration: Configuració bàsica
colors:
choose_color: Triar un color primari
@@ -900,6 +905,10 @@ ca-IT:
logos:
organization_logos: Logotip de l'organització
preview: Previsualitzar
+ machine_translation_display_priority:
+ options:
+ original: El sistema mostra la informació en l'idioma utilitzat per l'autora. El contingut creat des del tauler d'administració amb traduccions manuals mostrarà els valors traduïts per l'administradora.
+ translation: El sistema mostrarà una traducció si està disponible, en cas contrari es farà servir l'idioma original.
rich_text_editor_in_public_views_help: En algunes àrees de text, les participants podran inserir algunes etiquetes HTML amb l'editor de text enriquit.
social_handlers: Social
twitter: X
@@ -1067,10 +1076,10 @@ ca-IT:
next_title: Següent element
previous: Anterior
previous_title: Element anterior
- gallery:
- add_images: Afegir imatges
- edit_images: Editar imatges
- gallery_legend: Afegir una galeria d'imatges (opcional)
+ attachments:
+ add_attachments: Afegir fitxer(s) adjunt(s)
+ attachment_legend: Afegir una galeria de fitxers adjunts (opcional)
+ edit_attachments: Edita els fitxers adjunts
static_page_topics:
create:
error: S'ha produït un error en crear un tema nou.
@@ -1285,6 +1294,11 @@ ca-IT:
errors:
impersonate_user:
reason: Has d'indicar un motiu per a la gestió d'una participant no gestionada.
+ file_help:
+ attachment:
+ explanation: 'Instruccions per al fitxer:'
+ message_1: S'admeten fitxers CSV, JSON y Excel (.xlsx)
+ message_2: Pels arxius CSV, el separador entre columnes ha de ser un punt i coma (";")
moderations:
actions:
expand: Expandir
diff --git a/decidim-admin/config/locales/ca.yml b/decidim-admin/config/locales/ca.yml
index e9ebf35df3721..456c36066d134 100644
--- a/decidim-admin/config/locales/ca.yml
+++ b/decidim-admin/config/locales/ca.yml
@@ -12,6 +12,7 @@ ca:
plural: Plural
attachment:
attachment_collection_id: Carpeta
+ attachments: Fitxers adjunts
description: Descripció
file: Arxiu
title: Nom de l'adjunt o imatge
@@ -45,7 +46,7 @@ ca:
alert_color: Alerta
available_authorizations: Autoritzacions disponibles
badges_enabled: Habilitar les ensenyes
- comments_max_length: Longitud màxima dels comentaris (deixa 0 si vols mantenir la configuració per defecte)
+ comments_max_length: Caràcters màxims per comentari (deixar a 0 el valor predeterminat)
customize_welcome_notification: Personalitza la notificació de benvinguda
default_locale: Idioma per defecte
description: Descripció
@@ -834,6 +835,7 @@ ca:
officializations:
block:
error: Hi ha hagut un problema en bloquejar a la participant.
+ no_user: No s'ha trobat cap usuària
success: Participant bloquejada correctament.
bulk_action:
block:
@@ -843,6 +845,7 @@ ca:
invalid: Hi ha hagut un problema en desbloquejar a les participants.
success: Participants desbloquejades correctament.
create:
+ no_user_found: No s'ha trobat aquesta participant.
success: Participant oficialitzada correctament.
destroy:
success: S'ha retirat correctament l'oficialització de la participant.
@@ -867,6 +870,8 @@ ca:
badge: Ensenya d'oficialització
officialize: Oficialitza
title: Oficialitza la participant "%{name}"
+ show_email:
+ no_user: No s'ha trobat cap usuària
show_email_modal:
description: Si necessites contactar a una participant directament pots clicar al botó Mostra per veure la seva adreça de correu electrònic. Aquesta acció es registrarà.
email_address: Adreça de correu electrònic
@@ -900,6 +905,10 @@ ca:
logos:
organization_logos: Logotip de l'organització
preview: Previsualitzar
+ machine_translation_display_priority:
+ options:
+ original: El sistema mostra la informació en l'idioma utilitzat per l'autora. El contingut creat des del tauler d'administració amb traduccions manuals mostrarà els valors traduïts per l'administradora.
+ translation: El sistema mostrarà una traducció si està disponible, en cas contrari es farà servir l'idioma original.
rich_text_editor_in_public_views_help: En algunes àrees de text, les participants podran inserir algunes etiquetes HTML amb l'editor de text enriquit.
social_handlers: Social
twitter: X
@@ -1067,10 +1076,10 @@ ca:
next_title: Següent element
previous: Anterior
previous_title: Element anterior
- gallery:
- add_images: Afegir imatges
- edit_images: Editar imatges
- gallery_legend: Afegir una galeria d'imatges (opcional)
+ attachments:
+ add_attachments: Afegir fitxer(s) adjunt(s)
+ attachment_legend: Afegir una galeria de fitxers adjunts (opcional)
+ edit_attachments: Edita els fitxers adjunts
static_page_topics:
create:
error: S'ha produït un error en crear un tema nou.
@@ -1285,6 +1294,11 @@ ca:
errors:
impersonate_user:
reason: Has d'indicar un motiu per a la gestió d'una participant no gestionada.
+ file_help:
+ attachment:
+ explanation: 'Instruccions per al fitxer:'
+ message_1: S'admeten fitxers CSV, JSON y Excel (.xlsx)
+ message_2: Pels arxius CSV, el separador entre columnes ha de ser un punt i coma (";")
moderations:
actions:
expand: Expandir
diff --git a/decidim-admin/config/locales/cs.yml b/decidim-admin/config/locales/cs.yml
index 936e7e1a29cb1..8fa103021dace 100644
--- a/decidim-admin/config/locales/cs.yml
+++ b/decidim-admin/config/locales/cs.yml
@@ -12,6 +12,7 @@ cs:
plural: Množné číslo
attachment:
attachment_collection_id: Složka
+ attachments: Přílohy
description: Popis
file: Soubor
title: Název přílohy nebo obrázku
@@ -45,7 +46,7 @@ cs:
alert_color: Upozornění
available_authorizations: Dostupná oprávnění
badges_enabled: Povolit odznaky
- comments_max_length: Maximální délka komentáře (ponechte 0 pro výchozí hodnotu)
+ comments_max_length: Maximální počet znaků na komentář (ponechte 0 pro výchozí hodnotu)
customize_welcome_notification: Přizpůsobit uvítací oznámení
default_locale: Výchozí jazyk
description: Popis
@@ -768,6 +769,7 @@ cs:
title: Šablony zpravodaje
use_template: Použít tuto šablonu
show:
+ preview: 'Náhled šablony: %{template_name}'
use_template: Použít tuto šablonu
newsletters:
confirm_recipients:
@@ -842,6 +844,7 @@ cs:
officializations:
block:
error: Při blokování účastníka došlo k chybě.
+ no_user: Nebyl nalezen žádný uživatel
success: Účastník byl úspěšně zablokován.
bulk_action:
block:
@@ -851,6 +854,7 @@ cs:
invalid: Při odblokování účastníků došlo k chybě.
success: Účastníci byli úspěšně odblokováni.
create:
+ no_user_found: Uživatel nebyl nalezen.
success: Účastník úspěšně oficiálně zaregistrován.
destroy:
success: Účastník úspěšně zbaven oficiální registrace.
@@ -875,6 +879,8 @@ cs:
badge: Odznak ověření
officialize: Ověřit
title: Oficializovat účastníka "%{name}"
+ show_email:
+ no_user: Nebyl nalezen žádný uživatel
show_email_modal:
description: Pokud potřebujete kontaktovat účastníka, můžete kliknout na tlačítko Zobrazit pro zobrazení e-mailové adresy. Tato akce bude zaznamenána.
email_address: E-mailová adresa
@@ -908,6 +914,10 @@ cs:
logos:
organization_logos: Loga organizace
preview: Náhled
+ machine_translation_display_priority:
+ options:
+ original: Systém zobrazuje informace v jazyce, který použil autor. U obsahu vytvořeného v administraci s ručními překlady se zobrazí hodnoty přeložené v administraci.
+ translation: Systém zobrazí překlad, je-li k dispozici, jinak bude použit originální jazyk.
rich_text_editor_in_public_views_help: V některých textových polích budou účastníci moci vložit některé HTML tagy pomocí textového editoru.
social_handlers: Sociální
twitter: X
@@ -1077,10 +1087,10 @@ cs:
next_title: Další položka
previous: Předchozí
previous_title: Předchozí položka
- gallery:
- add_images: Přidat obrázky
- edit_images: Upravit obrázky
- gallery_legend: Přidat galerii obrázků (volitelné)
+ attachments:
+ add_attachments: Přidat přílohy
+ attachment_legend: Přidat galerii příloh (volitelné)
+ edit_attachments: Upravit přílohy
static_page_topics:
create:
error: Při vytváření nového tématu došlo k chybě.
@@ -1236,6 +1246,7 @@ cs:
none: Žádné
title: Nová položka v %{taxonomy}
titles:
+ admin_log: Záznamy administrátora
area_types: Typy oblastí
areas: Oblasti
authorization_workflows: Metody ověření
@@ -1296,6 +1307,11 @@ cs:
errors:
impersonate_user:
reason: Musíte uvést důvod pro správu neřízeného účastníka.
+ file_help:
+ attachment:
+ explanation: 'Pokyny pro soubor:'
+ message_1: CSV, JSON a Excel (.xlsx) jsou podporovány
+ message_2: V CSV souborech musí být oddělovač mezi sloupci středník (";")
moderations:
actions:
expand: Rozbalit
diff --git a/decidim-admin/config/locales/de.yml b/decidim-admin/config/locales/de.yml
index 2fa35648d4709..5689a3a438e59 100644
--- a/decidim-admin/config/locales/de.yml
+++ b/decidim-admin/config/locales/de.yml
@@ -12,6 +12,7 @@ de:
plural: Plural
attachment:
attachment_collection_id: Ordner
+ attachments: Anhänge
description: Beschreibung
file: Datei
title: Anhang oder Bildname
@@ -45,7 +46,7 @@ de:
alert_color: Benachrichtigung
available_authorizations: Verfügbare Autorisierungen
badges_enabled: Abzeichen aktivieren
- comments_max_length: Maximale Länge der Kommentare (0 für Standardwert)
+ comments_max_length: Maximale Zeichen pro Kommentar (Lassen Sie 0 für den Standardwert)
customize_welcome_notification: Willkommens-Benachrichtigung anpassen
default_locale: Standardgebietsschema
description: Beschreibung
@@ -265,6 +266,8 @@ de:
edit:
title: Ordner bearbeiten
update: Aktualisieren
+ index:
+ attachment_collections_title: Ordner für Anhänge
new:
create: Erstellen
title: Neuer Ordner
@@ -280,6 +283,8 @@ de:
edit:
title: Anhang bearbeiten
update: Aktualisieren
+ index:
+ attachments_title: Anhänge
new:
create: Anhang erstellen
title: Neuer Anhang
@@ -572,6 +577,7 @@ de:
promotions:
new:
explanation: Verwaltete Benutzer können zu Standardbenutzern heraufgestuft werden. Das bedeutet, dass sie zu der Anwendung eingeladen werden und nicht in der Lage sind, sie erneut zu repräsentieren. Der eingeladene Benutzer erhält eine E-Mail, um Ihre Einladung anzunehmen.
+ new_managed_user_promotion: Neue Beförderung einer übernommenen Identität
promote: Fördern
menu:
admin_log: Admin-Aktivitätsprotokoll
@@ -754,6 +760,7 @@ de:
title: Newsletter Vorlagen
use_template: Diese Vorlage verwenden
show:
+ preview: 'Vorschau der Vorlage: %{template_name}'
use_template: Diese Vorlage verwenden
newsletters:
confirm_recipients:
@@ -800,7 +807,7 @@ de:
participants_help: Sendet den Newsletter an alle bestätigten Benutzer, die an den ausgewählten Teilnehmerräumen der Liste teilgenommen haben.
private_members_help: Sendet einen Newsletter an alle bestätigten Teilnehmende, die den ausgewählten privaten Teilnahmebereichen hinzugefügt wurden.
recipients_count: Dieser Newsletter wird an %{count} Teilnehmer gesendet.
- select_assemblies: Gremien auswählen
+ select_assemblies: Versammlungen auswählen
select_conferences: Konferenzen auswählen
select_initiatives: Initiativen auswählen
select_participatory_processes: Beteiligungsprozesse auswählen
@@ -828,6 +835,7 @@ de:
officializations:
block:
error: Bei der Teilnehmendenblockierung ist ein Problem aufgetreten.
+ no_user: Kein Mitglied gefunden
success: Teilnehmer erfolgreich blockiert.
bulk_action:
block:
@@ -837,6 +845,7 @@ de:
invalid: Es gab ein Problem beim Entsperren der Teilnehmenden.
success: Teilnehmende erfolgreich entsperrt.
create:
+ no_user_found: Teilnehmende wurden nicht gefunden.
success: Benutzer wurde offiziell anerkannt.
destroy:
success: Der Benutzer wurde erfolgreich inoffizialisiert.
@@ -861,6 +870,8 @@ de:
badge: Offizielles Abzeichen
officialize: Offizialisieren
title: Benutzer "%{name}" offiziellisieren
+ show_email:
+ no_user: Kein Mitglied gefunden
show_email_modal:
description: Wenn Sie einen Teilnehmer direkt kontaktieren möchten, können Sie auf die Schaltfläche "Anzeigen" klicken, um seine E-Mail-Adresse zu sehen. Diese Aktion wird protokolliert.
email_address: E-Mail-Adresse
@@ -894,6 +905,9 @@ de:
logos:
organization_logos: Organisationslogo
preview: Vorschau
+ machine_translation_display_priority:
+ options:
+ translation: Das System zeigt, falls vorhanden, eine Übersetzung an, andernfalls wird die Originalsprache verwendet.
rich_text_editor_in_public_views_help: In einigen Textbereichen können Teilnehmer mit Hilfe des Rich-Text-Editors HTML-Tags einfügen.
social_handlers: Sozial
twitter: X
@@ -1061,10 +1075,10 @@ de:
next_title: Nächstes Element
previous: Zurück
previous_title: Vorheriges Element
- gallery:
- add_images: Bilder hinzufügen
- edit_images: Bilder bearbeiten
- gallery_legend: Bildergalerie hinzufügen (Optional)
+ attachments:
+ add_attachments: Anhänge hinzufügen
+ attachment_legend: Anhanggalerie hinzufügen (optional)
+ edit_attachments: Anhänge bearbeiten
static_page_topics:
create:
error: Beim Erstellen eines neuen Themas ist ein Fehler aufgetreten.
@@ -1224,6 +1238,7 @@ de:
authorization_workflows: Verifizierungsmethoden
dashboard: Dashboard
edit_external_domains: Liste erlaubter externer Domains
+ impersonatable_users: Verwaltbare Teilnehmende
impersonations: Benutzerverwaltung
menu: Menü
page_topics: Themen
@@ -1270,10 +1285,19 @@ de:
last_week: Letzte Woche
no_users_count_statistics_yet: Es gibt noch keine Statistiken über die Teilnehmenden.
participants: Teilnehmer
+ components:
+ settings:
+ global:
+ taxonomy_filters_unavailable: Die Auswahl von Klassifizierungsfiltern ist möglich, nachdem die Komponente erstellt wurde.
forms:
errors:
impersonate_user:
reason: Sie müssen einen Grund angeben, weshalb Sie sich als nicht-verwaltete Nutzende ausgeben.
+ file_help:
+ attachment:
+ explanation: 'Hinweise für die Datei:'
+ message_1: CSV, JSON und Excel (.xlsx) Dateien werden unterstützt
+ message_2: Bei CSV-Dateien muss das Trennzeichen zwischen den Spalten ein Semikolon sein (";")
moderations:
actions:
expand: Ausklappen
diff --git a/decidim-admin/config/locales/el.yml b/decidim-admin/config/locales/el.yml
index 7d05e3e5128ce..f136854245209 100644
--- a/decidim-admin/config/locales/el.yml
+++ b/decidim-admin/config/locales/el.yml
@@ -45,7 +45,6 @@ el:
alert_color: Ειδοποίηση
available_authorizations: Διαθέσιμες εγκρίσεις
badges_enabled: Ενεργοποίηση εμβλημάτων
- comments_max_length: Μέγιστο μέγεθος σχολίων (Αφήστε το 0 για το προκαθορισμένο μέγεθος)
customize_welcome_notification: Προσαρμογή ειδοποίησης καλωσορίσματος
default_locale: Προεπιλεγμένες τοπικές ρυθμίσεις
description: Περιγραφή
@@ -807,11 +806,6 @@ el:
share_tokens:
actions:
destroy: Διαγραφή
- shared:
- gallery:
- add_images: Προσθήκη εικόνων
- edit_images: Επεξεργασία εικόνας
- gallery_legend: Προσθήκη συλλογής εικόνων (προαιρετικά)
static_page_topics:
create:
error: Υπήρξε ένα πρόβλημα κατά τη δημιουργία ενός νέου θέματος.
diff --git a/decidim-admin/config/locales/en.yml b/decidim-admin/config/locales/en.yml
index 059a4789e88a3..8a655f4d4161a 100644
--- a/decidim-admin/config/locales/en.yml
+++ b/decidim-admin/config/locales/en.yml
@@ -12,6 +12,7 @@ en:
plural: Plural
attachment:
attachment_collection_id: Folder
+ attachments: Attachments
description: Description
file: File
title: Attachment or image name
@@ -45,7 +46,7 @@ en:
alert_color: Alert
available_authorizations: Available authorizations
badges_enabled: Enable badges
- comments_max_length: Comments max length (Leave 0 for default value)
+ comments_max_length: Max characters per comment (Leave 0 for default value)
customize_welcome_notification: Customize welcome notification
default_locale: Default locale
description: Description
@@ -834,6 +835,7 @@ en:
officializations:
block:
error: There was a problem blocking the participant.
+ no_user: No user found
success: Participant successfully blocked.
bulk_action:
block:
@@ -843,6 +845,7 @@ en:
invalid: There was a problem unblocking the participants.
success: Participants successfully unblocked.
create:
+ no_user_found: Participant was not found.
success: Participant successfully officialized.
destroy:
success: Participant successfully unofficialized.
@@ -867,6 +870,8 @@ en:
badge: Officialization badge
officialize: Officialize
title: Officialize participant "%{name}"
+ show_email:
+ no_user: No user found
show_email_modal:
description: If you need to contact a participant directly, you can click on the Show button to see their email address. This action will be logged.
email_address: Email address
@@ -900,6 +905,10 @@ en:
logos:
organization_logos: Organization logos
preview: Preview
+ machine_translation_display_priority:
+ options:
+ original: The system displays the information in the language used by the author. Content created from admin with manual translations, will display the admin translated values.
+ translation: The system will display a translation if available, otherwise original language will be used.
rich_text_editor_in_public_views_help: In some text areas, participants will be able to insert some HTML tags by using the rich text editor.
social_handlers: Social
twitter: X
@@ -1067,10 +1076,10 @@ en:
next_title: Next item
previous: Previous
previous_title: Previous item
- gallery:
- add_images: Add images
- edit_images: Edit images
- gallery_legend: Add an image gallery (Optional)
+ attachments:
+ add_attachments: Add attachments
+ attachment_legend: Add an attachment gallery (Optional)
+ edit_attachments: Edit attachments
static_page_topics:
create:
error: There was a problem creating a new topic.
@@ -1285,6 +1294,11 @@ en:
errors:
impersonate_user:
reason: You need to provide a reason when managing a non-managed participant.
+ file_help:
+ attachment:
+ explanation: 'Guidance for file:'
+ message_1: CSV, JSON and Excel (.xlsx) files are supported
+ message_2: For CSV files, the separator between columns must be a semicolon (";")
moderations:
actions:
expand: Expand
diff --git a/decidim-admin/config/locales/es-MX.yml b/decidim-admin/config/locales/es-MX.yml
index 1d7631b81ffa7..0b16c0dd7c70d 100644
--- a/decidim-admin/config/locales/es-MX.yml
+++ b/decidim-admin/config/locales/es-MX.yml
@@ -12,6 +12,7 @@ es-MX:
plural: Plural
attachment:
attachment_collection_id: Carpeta
+ attachments: Archivos adjuntos
description: Descripción
file: Archivo
title: Nombre del adjunto o imagen
@@ -45,7 +46,7 @@ es-MX:
alert_color: Alerta
available_authorizations: Autorizaciones disponibles
badges_enabled: Habilitar insignias
- comments_max_length: Longitud máxima de los comentarios (deja 0 si quieres mantener la configuración por defecto)
+ comments_max_length: Caracteres máximos por comentario (dejar 0 para el valor predeterminado)
customize_welcome_notification: Personalizar notificación de bienvenida
default_locale: Idioma predeterminado
description: Descripción
@@ -834,6 +835,7 @@ es-MX:
officializations:
block:
error: Se ha producido un error al bloquear a la participante.
+ no_user: No se ha encontrado ninguna usuaria
success: Participante bloqueada correctamente.
bulk_action:
block:
@@ -843,6 +845,7 @@ es-MX:
invalid: Se ha producido un error al desbloquear a las participantes.
success: Participantes desbloqueadas correctamente.
create:
+ no_user_found: No se ha encontrado a esta participante.
success: Participante oficializada correctamente.
destroy:
success: Se ha retirado correctamente la oficialización de la participante.
@@ -867,6 +870,8 @@ es-MX:
badge: Insignia de oficialización
officialize: Oficializar
title: Oficializar el usuario "%{name}"
+ show_email:
+ no_user: No se ha encontrado ninguna usuaria
show_email_modal:
description: Si necesitas contactar directamente con una participante, puedes hacer clic en el botón Mostrar para ver la dirección de correo electrónico. Esta acción se registrará.
email_address: Dirección de correo electrónico
@@ -900,6 +905,10 @@ es-MX:
logos:
organization_logos: Logotipo de la organización
preview: Previsualizar
+ machine_translation_display_priority:
+ options:
+ original: El sistema muestra la información en el idioma utilizado por la autora. El contenido creado desde el tablero de administración con traducciones manuales mostrará los valores traducidos por la administradora.
+ translation: El sistema mostrará una traducción si está disponible, de lo contrario se utilizará el idioma original.
rich_text_editor_in_public_views_help: En algunas áreas de texto, los participantes podrán insertar algunas etiquetas HTML utilizando el editor de texto enriquecido.
social_handlers: Social
twitter: X
@@ -1067,10 +1076,10 @@ es-MX:
next_title: Siguiente elemento
previous: Anterior
previous_title: Elemento anterior
- gallery:
- add_images: Añadir imágenes
- edit_images: Editar imagenes
- gallery_legend: Añadir una galería de imágenes (opccional)
+ attachments:
+ add_attachments: Agregar archivo(s) adjunto(s)
+ attachment_legend: Añadir una galería de archivos adjuntos (opcional)
+ edit_attachments: Editar los archivos adjuntos
static_page_topics:
create:
error: Se ha producido un error al crear un nuevo tema.
@@ -1285,6 +1294,11 @@ es-MX:
errors:
impersonate_user:
reason: Debes indicar un motivo para la gestión de una participante no gestionada.
+ file_help:
+ attachment:
+ explanation: 'Instrucciones para el archivo:'
+ message_1: Se admiten archivos CSV, JSON y Excel (.xlsx)
+ message_2: Para archivos CSV, el separador entre columnas debe ser un punto y coma (";")
moderations:
actions:
expand: Expandir
diff --git a/decidim-admin/config/locales/es-PY.yml b/decidim-admin/config/locales/es-PY.yml
index 5effe61d7725c..c140350a06b9f 100644
--- a/decidim-admin/config/locales/es-PY.yml
+++ b/decidim-admin/config/locales/es-PY.yml
@@ -12,6 +12,7 @@ es-PY:
plural: Plural
attachment:
attachment_collection_id: Carpeta
+ attachments: Archivos adjuntos
description: Descripción
file: Archivo
title: Nombre del adjunto o imagen
@@ -45,7 +46,7 @@ es-PY:
alert_color: Alerta
available_authorizations: Autorizaciones disponibles
badges_enabled: Habilitar insignias
- comments_max_length: Longitud máxima de los comentarios (deja 0 si quieres mantener la configuración por defecto)
+ comments_max_length: Caracteres máximos por comentario (dejar 0 para el valor predeterminado)
customize_welcome_notification: Personalizar notificación de bienvenida
default_locale: Idioma predeterminado
description: Descripción
@@ -834,6 +835,7 @@ es-PY:
officializations:
block:
error: Se ha producido un error al bloquear a la participante.
+ no_user: No se ha encontrado ninguna usuaria
success: Participante bloqueada correctamente.
bulk_action:
block:
@@ -843,6 +845,7 @@ es-PY:
invalid: Se ha producido un error al desbloquear a las participantes.
success: Participantes desbloqueadas correctamente.
create:
+ no_user_found: No se ha encontrado a esta participante.
success: Participante oficializada correctamente.
destroy:
success: Se ha retirado correctamente la oficialización de la participante.
@@ -867,6 +870,8 @@ es-PY:
badge: Insignia de oficialización
officialize: Oficializar
title: Oficializar el usuario "%{name}"
+ show_email:
+ no_user: No se ha encontrado ninguna usuaria
show_email_modal:
description: Si necesitas contactar directamente con una participante, puedes hacer clic en el botón Mostrar para ver la dirección de correo electrónico. Esta acción se registrará.
email_address: Dirección de correo electrónico
@@ -900,6 +905,10 @@ es-PY:
logos:
organization_logos: Logotipo de la organización
preview: Previsualizar
+ machine_translation_display_priority:
+ options:
+ original: El sistema muestra la información en el idioma utilizado por la autora. El contenido creado desde el tablero de administración con traducciones manuales mostrará los valores traducidos por la administradora.
+ translation: El sistema mostrará una traducción si está disponible, de lo contrario se utilizará el idioma original.
rich_text_editor_in_public_views_help: En algunas áreas de texto, los participantes podrán insertar algunas etiquetas HTML utilizando el editor de texto enriquecido.
social_handlers: Social
twitter: X
@@ -1067,10 +1076,10 @@ es-PY:
next_title: Siguiente elemento
previous: Anterior
previous_title: Elemento anterior
- gallery:
- add_images: Añadir imágenes
- edit_images: Editar imagenes
- gallery_legend: Añadir una galería de imágenes (opccional)
+ attachments:
+ add_attachments: Agregar archivo(s) adjunto(s)
+ attachment_legend: Añadir una galería de archivos adjuntos (opcional)
+ edit_attachments: Editar los archivos adjuntos
static_page_topics:
create:
error: Se ha producido un error al crear un nuevo tema.
@@ -1285,6 +1294,11 @@ es-PY:
errors:
impersonate_user:
reason: Debes indicar un motivo para la gestión de una participante no gestionada.
+ file_help:
+ attachment:
+ explanation: 'Instrucciones para el archivo:'
+ message_1: Se admiten archivos CSV, JSON y Excel (.xlsx)
+ message_2: Para archivos CSV, el separador entre columnas debe ser un punto y coma (";")
moderations:
actions:
expand: Expandir
diff --git a/decidim-admin/config/locales/es.yml b/decidim-admin/config/locales/es.yml
index 8046cc4b3fd12..5aff7bf643fe3 100644
--- a/decidim-admin/config/locales/es.yml
+++ b/decidim-admin/config/locales/es.yml
@@ -12,6 +12,7 @@ es:
plural: Plural
attachment:
attachment_collection_id: Carpeta
+ attachments: Archivos adjuntos
description: Descripción
file: Archivo
title: Nombre del adjunto o imagen
@@ -45,7 +46,7 @@ es:
alert_color: Alerta
available_authorizations: Autorizaciones disponibles
badges_enabled: Habilitar insignias
- comments_max_length: Longitud máxima de los comentarios (deja 0 si quieres mantener la configuración por defecto)
+ comments_max_length: Caracteres máximos por comentario (dejar 0 para el valor predeterminado)
customize_welcome_notification: Personalizar notificación de bienvenida
default_locale: Idioma predeterminado
description: Descripción
@@ -834,6 +835,7 @@ es:
officializations:
block:
error: Se ha producido un error al bloquear a la participante.
+ no_user: No se ha encontrado ninguna usuaria
success: Participante bloqueada correctamente.
bulk_action:
block:
@@ -843,6 +845,7 @@ es:
invalid: Se ha producido un error al desbloquear a las participantes.
success: Participantes desbloqueadas correctamente.
create:
+ no_user_found: No se ha encontrado a esta participante.
success: Participante oficializada correctamente.
destroy:
success: Se ha retirado correctamente la oficialización de la participante.
@@ -867,6 +870,8 @@ es:
badge: Insignia de oficialización
officialize: Oficializar
title: Oficializar participante "%{name}"
+ show_email:
+ no_user: No se ha encontrado ninguna usuaria
show_email_modal:
description: Si necesitas contactar directamente con una participante, puedes hacer clic en el botón Mostrar para ver la dirección de correo electrónico. Esta acción se registrará.
email_address: Dirección de correo electrónico
@@ -900,6 +905,10 @@ es:
logos:
organization_logos: Logotipo de la organización
preview: Previsualizar
+ machine_translation_display_priority:
+ options:
+ original: El sistema muestra la información en el idioma utilizado por la autora. El contenido creado desde el tablero de administración con traducciones manuales mostrará los valores traducidos por la administradora.
+ translation: El sistema mostrará una traducción si está disponible, de lo contrario se utilizará el idioma original.
rich_text_editor_in_public_views_help: En algunas áreas de texto, los participantes podrán insertar algunas etiquetas HTML utilizando el editor de texto enriquecido.
social_handlers: Social
twitter: X
@@ -1067,10 +1076,10 @@ es:
next_title: Siguiente elemento
previous: Anterior
previous_title: Elemento anterior
- gallery:
- add_images: Añadir imágenes
- edit_images: Editar imagenes
- gallery_legend: Añadir una galería de imágenes (opcional)
+ attachments:
+ add_attachments: Agregar archivo(s) adjunto(s)
+ attachment_legend: Añadir una galería de archivos adjuntos (opcional)
+ edit_attachments: Editar los archivos adjuntos
static_page_topics:
create:
error: Se ha producido un error al crear un nuevo tema.
@@ -1285,6 +1294,11 @@ es:
errors:
impersonate_user:
reason: Debes indicar un motivo para la gestión de una participante no gestionada.
+ file_help:
+ attachment:
+ explanation: 'Instrucciones para el archivo:'
+ message_1: Se admiten archivos CSV, JSON y Excel (.xlsx)
+ message_2: Para archivos CSV, el separador entre columnas debe ser un punto y coma (";")
moderations:
actions:
expand: Expandir
diff --git a/decidim-admin/config/locales/eu.yml b/decidim-admin/config/locales/eu.yml
index bf7142d47f10f..ab6bade08eacc 100644
--- a/decidim-admin/config/locales/eu.yml
+++ b/decidim-admin/config/locales/eu.yml
@@ -12,6 +12,7 @@ eu:
plural: Plurala
attachment:
attachment_collection_id: Karpeta
+ attachments: Erantsitako fitxategiak
description: Deskribapena
file: Fitxategia
title: Erantsitakoaren edo irudiaren izena
@@ -45,7 +46,7 @@ eu:
alert_color: Abisua
available_authorizations: Baimen erabilgarriak
badges_enabled: Gaitu garaikurrak
- comments_max_length: Iruzkinen gehieneko luzera (utzi 0 defektuz konfigurazioa mantendu nahi baduzu)
+ comments_max_length: Iruzkin bakoitzeko gehieneko karaktereak (utzi 0 aurrez zehaztutako baliorako)
customize_welcome_notification: Pertsonalizatu ongi etorri jakinarazpena
default_locale: Kokapen lehenetsia
description: Deskribapena
@@ -102,7 +103,7 @@ eu:
name: Izena
organization: Erakundea
parent_id: Nagusia
- scope_type: Esparru mota
+ scope_type: Eremu mota
scope_type_id: Eremua mota
scope_type:
name: Izena
@@ -117,7 +118,7 @@ eu:
organization: Erakundea
show_in_footer: Erakutsi orri-oinean
slug: URL sluga
- title: Titulua
+ title: Izenburua
topic_id: Gaia
weight: Kokapenaren hurrenkera
static_page_topic:
@@ -159,7 +160,7 @@ eu:
decidim/static_page:
content: Contenido
slug: URL laburra
- title: Titulua
+ title: Izenburua
doorkeeper/application:
authorize_url: Baimendu URLa
client_id: Bezeroaren IDa
@@ -183,12 +184,12 @@ eu:
browse: Arakatu
configure: Konfiguratu
confirm_delete_component: |
- Ziur zaude osagai hau ezabatu nahi duzula?
- Osagai honek honako hauek ditu:
+ Are you sure you want to delete this component?
+ This component contains:
-
%{resources_count} resources
+
%{resources_count} resources
- Iritziz aldatzen baduzu, geroago berreskuratu ahal izango duzu.na
+ If you change your mind, you can restore it later.
export: Esportatu
export_all: Esportatu dena
export_selection: Esportatu hautaketa
@@ -233,7 +234,7 @@ eu:
title: Editatu arlo mota
update: Eguneratu
new:
- create: Sortu arlo mota
+ create: Arlo mota sortu
title: Beste arlo mota bat
update:
error: Arazo bat egon da arlo mota hau eguneratzean.
@@ -319,7 +320,7 @@ eu:
create:
error: Arazo bat egon da osagai hau sortzean.
success: Osagaia zuzen sortua.
- success_landing_page: Osagaia zuzuen osatua. Eduki bloke bat gehitu ahal duzu osagai honetarako parte hartzeko espazioaren hasiera-orrian. Zoaz hasiera-orrira konfiguratzeko. .
+ success_landing_page: Osagaia behar bezala sortu da. Osagai honetarako eduki-bloke bat gehi dezakezu espazioaren hasiera-orrian. Joan hasiera-orrira konfiguratzeko.
edit:
title: Editatu osagaia
update: Eguneratu
@@ -393,7 +394,7 @@ eu:
title: Zain dauden moderazioak
show:
dropdown: Goitibeherako zerrrenda
- view_more_logs: Ikusi erregistro gehiago
+ view_more_logs: Ikusi erregistro gehiago
domain_allowlist:
form:
domain_too_short: Domeinu laburregia
@@ -558,7 +559,7 @@ eu:
download_example_format: Adibidez, %{name}
file_legend: Gehitu prozesatuko den inportazio-fitxategi bat.
import: Inportatu
- notice: "%{number} %{resource_name} zuzen inportatua."
+ notice: "%{count} %{resource_name} zuzen inportatua."
logs:
filters:
participatory_space: Bilatu partaidetza-espazioa
@@ -596,7 +597,7 @@ eu:
moderation: Moderazio globalak
newsletters: Buletinak
participants: Parte-hartzaileak
- reported_users: Parte-hartzaile erreportatuak
+ reported_users: Salatutako parte-hartzaileak
scope_types: Eremu motak
scopes: Eremuak
see_site: Ikusi web-orria
@@ -622,7 +623,7 @@ eu:
collection: Karpeta
content_type: Mota
file_size: Tamaina
- title: Titulua
+ title: Izenburua
name: Eranskina
attachment_collection:
name: Karpeta
@@ -664,7 +665,7 @@ eu:
static_page:
fields:
created_at: Noiz sortua
- title: Titulua
+ title: Izenburua
user:
fields:
created_at: Sortze-data
@@ -689,9 +690,9 @@ eu:
title: Desblokeatu
update_moderated_user_button: Desblokeatu parte-hartzaileak
unreport:
- title: Ez erreportatu
+ title: Salaketa kendu
ignore:
- update_moderated_user_button: Ez erreportatu parte-hartzaileak
+ update_moderated_user_button: Parte-hartzaileen salaketak kendu
title: Ekintzak
unblock: Desblokeatu parte-hartzailea
unreport: Desegin salaketa
@@ -701,7 +702,7 @@ eu:
reason: Arrazoia
reports: Txosten kopurua
selected: Hautatua
- title: Parte-hartzaile erreportatuak
+ title: Salatutako parte-hartzaileak
report:
reasons:
does_not_belong: Ez dagokio
@@ -722,10 +723,10 @@ eu:
update_moderation_button: Erakutsi berriro hautatutako edukiak
unreport:
title: Desegin salaketa
- update_moderation_button: Ez erreportatu hautatutako edukiak
+ update_moderation_button: Hautatutako baliabideen salaketak kendu
cancel: Ezeztatu
selected: hautatua
- title: Eduki erreportatua
+ title: Salatutako edukia
report:
reasons:
does_not_belong: Ez dagokio
@@ -739,7 +740,7 @@ eu:
callout_html: Eduki bat moderazio-panelean agertzen da parte-hartzaile batek (erregistratutako kontu bat duen edozein pertsona izan daiteke) txostena bidaltzen duenean, edukiaren ondoan dagoen %{icon} ikonoan klik eginez.
content_original_language: Jatorrizko edukiaren hizkuntza
participatory_space: Partaidetza-espazioa
- reported_content: Erreportatutako edukia
+ reported_content: Salatutako edukia
see_current: Ikusi egungoa
see_original: Ikusi jatorrizkoa
title: Moderazio-txostenak
@@ -818,7 +819,7 @@ eu:
send_to_verified_users: Bidali egiaztatutako parte-hartzaileei
title: Hautatu entregaren hartzaileak
verified_users_help: Buletin bat bidaltzen du egiaztatutako eta baieztatutako parte-hartzaile guztiei, aukeratutako edozein egiaztatze-metodo erabiliz.
- warning: "Adi: Jakinarazpen-doikuntzetan “Albiste-buletinak jaso nahi ditut” aktibatu duten parte-hartzaileei baino ez zaie bidaliko buletin hau."
+ warning: "Adi: Buletin hau jakinarazpenen ezarpenetan Albiste-buletinak jaso nahi ditut aukera aktibatu duten parte-hartzaileei baino ez zaie bidaliko."
send:
no_recipients: Ez dago hartzailerik hautaketa honetarako.
send_to_user:
@@ -834,6 +835,7 @@ eu:
officializations:
block:
error: Arazo bat izan da parte-hartzailea blokeatzean.
+ no_user: Ez da parte-hartzailerik aurkitu
success: Parte-hartzailea zuzen blokeatua.
bulk_action:
block:
@@ -843,6 +845,7 @@ eu:
invalid: Arazo bat izan da parte-hartzaileak desblokeatzean.
success: Parte-hartzaileak zuzen desblokeatuta.
create:
+ no_user_found: Ez da Parte-hartzailerik aurkitu.
success: Pate-hartzailea zuzen ofizializatua.
destroy:
success: Parte-hartzailearen ofizializazioa behar bezala desgaitua.
@@ -867,6 +870,8 @@ eu:
badge: Ofizializazio-garaikurra
officialize: Ofizializatzen du
title: Parte-hartzaile ofiziala "%{name}"
+ show_email:
+ no_user: Ez da parte-hartzailerik aurkitu
show_email_modal:
description: Parte-hartzaile batekin zuzenean harremanetan jarri behar baduzu, Erakutsi botoian klik egin dezakezu helbide elektronikoa ikusteko. Ekintza hori erregistratu egingo da.
email_address: Korreo elektronikoaren helbidea
@@ -900,6 +905,10 @@ eu:
logos:
organization_logos: Erakundearen logoak
preview: Aurreikusi
+ machine_translation_display_priority:
+ options:
+ original: Sistemak informazioa egileak erabilitako hizkuntzan erakusten du. Administratzailetik eskuzko itzulpenekin sortutako edukiak, administratzailera itzulitako balioak bistaratuko ditu.
+ translation: Sistemak itzulpen bat erakutsiko du erabilgarri badago, bestela jatorrizko hizkuntza erabiliko da.
rich_text_editor_in_public_views_help: Testu-eremu batzuetan, parte-hartzaileek HTML etiketa batzuk txertatu ahal izango dituzte testu-editore aberastua erabiliz.
social_handlers: Soziala
twitter: X
@@ -942,10 +951,10 @@ eu:
error: Arazo bat egon da parte-hartzaile pribatu guztiak argitaratzean partaidetza-espazio honetarako.
success: Parte-hartzaile pribatu guztiak zuzen argitaratu dira partaidetza-espazio honetarako
unpublish_all:
- error: Arazo bat egon da parte-hartzaile pribatu guztiak desargiratzean partaidetza-espazio honetarako.
+ error: Arazo bat gertatu da partaidetza-espazio honetako parte-hartzaile pribatu guztiak desargitaratzean.
success: Parte-hartzaile pribatu guztiak zuzen desargitaratu dira partaidetza-espazio honetarako
update:
- error: Arazo bat egon da parte-hartzaile pribatua partaidetza-espazio horretarako eguneratzean.
+ error: Arazo bat gertatu da partaidetza-espazio honetako parte-hartzaile pribatua eguneratzean.
success: Partaidetza-espazioa, parte-hartzaile pribatua, arrakastaz eguneratua
participatory_space_private_users_csv_imports:
create:
@@ -980,13 +989,13 @@ eu:
submit: Bidali
title: Editatu baimenak
options_form:
- ephemeral_warning: Baimen-metodo hori ahalbidetzeko, indarrean dauden baimen guztiak ezeztatu behar dira. Horrela, egiaztatze-gatazkak izateko arriskua murrizten da. Horrelako baimen guztiak automatikoki ezeztatuko dira erakundean, baldin eta metodo hori gehitzen duten aldaketak aurkezten badituzu edo, gehitu ondoren, konfigurazioa aldatzen baduzu.
+ ephemeral_warning: Baimen-metodo hau gaitzeko, dauden baimen guztiak ezeztatu behar dituzu. Horrela, egiaztapen-gatazkak izateko arriskua murrizten da. Metodo hau gehitzen duten aldaketak bidaltzen badituzu edo, gehitu ondoren, haren konfigurazioa aldatzen baduzu, mota honetako baimen guztiak automatikoki ezeztatuko dira erakundean.
update:
success: Baimenak behar bezala eguneratuak.
scope_types:
create:
error: Arazo bat egon da beste eremu mota bat sortzean.
- success: Esparru mota arrakastaz sortu da.
+ success: Eremua mota arrakastaz sortu da.
destroy:
success: Eremu mota behar bezala suntsitua
edit:
@@ -1067,10 +1076,10 @@ eu:
next_title: Hurrengo elementua
previous: Aurrekoa
previous_title: Aurreko elementua
- gallery:
- add_images: Gehitu irudiak
- edit_images: Editatu irudiak
- gallery_legend: Gehitu irudi-galeria bat (aukerakoa)
+ attachments:
+ add_attachments: Gehitu eranskinak
+ attachment_legend: Gehitu irudi-galeria bat (aukerakoa)
+ edit_attachments: Editatu eranskinak
static_page_topics:
create:
error: Arazo bat egon da beste gai bat sortzean.
@@ -1231,7 +1240,7 @@ eu:
dashboard: Kontrol-panela
edit_external_domains: Baimendutako kanpoko domeinuen zerrenda
impersonatable_users: Parte-hartzaile erabilgarriak
- impersonations: Parte-hartzaileen kudeaketa
+ impersonations: Erabiltzaileen kudeaketa
menu: Menua
page_topics: Gaiak
pages: Orriak
@@ -1285,6 +1294,11 @@ eu:
errors:
impersonate_user:
reason: Arrazoi bat adierazi behar duzu kudeatu gabeko parte-hartzaile bat kudeatzeko.
+ file_help:
+ attachment:
+ explanation: 'Fitxategiako jarraibieak:'
+ message_1: CSV, JSON eta Excel (.xlsx) fitxategiak onartzen dira
+ message_2: CSV fitxategietarako, zutabeen arteko bereizgailuak erdikolona (";") izan behar du
moderations:
actions:
expand: Zabaldu
@@ -1312,7 +1326,7 @@ eu:
unreport:
failed: 'Arazo bat izan da eduki batzuk %{errored} berriro erakustean'
invalid: Ez dago moderaziorik hautatuta.
- success: Edukiak zuzen ez erreportatuak.
+ success: Baliabideen salaketak behar bezala kendu dira.
hide:
invalid: Arazo bat egon da baliabidea ezkutatzean.
success: Edukia zuzen ezkutatua.
@@ -1326,7 +1340,7 @@ eu:
models:
moderation:
fields:
- created_at: Noiz erreportatua
+ created_at: Noiz salatu den
deleted_resource: Baliabide ezabatua.
hidden_at: Ezkutatze-data
participatory_space: Partaidetza-espazioa
diff --git a/decidim-admin/config/locales/fi-plain.yml b/decidim-admin/config/locales/fi-plain.yml
index 90d3123dda046..663ff599bce23 100644
--- a/decidim-admin/config/locales/fi-plain.yml
+++ b/decidim-admin/config/locales/fi-plain.yml
@@ -12,6 +12,7 @@ fi-pl:
plural: Monikko
attachment:
attachment_collection_id: Kansio
+ attachments: Liitteet
description: Kuvaus
file: Tiedosto
title: Liitetiedoston tai kuvan nimi
@@ -834,6 +835,7 @@ fi-pl:
officializations:
block:
error: Osallistujan estäminen epäonnistui.
+ no_user: Käyttäjää ei löytynyt
success: Osallistujan estäminen onnistui.
bulk_action:
block:
@@ -843,6 +845,7 @@ fi-pl:
invalid: Osallistujien eston peruminen epäonnistui.
success: Osallistujien eston peruminen onnistui.
create:
+ no_user_found: Osallistujaa ei löytynyt.
success: Osallistujan virallistaminen onnistui.
destroy:
success: Osallistujan virallistamisen peruuttaminen onnistui.
@@ -867,6 +870,8 @@ fi-pl:
badge: Virallistamismerkki
officialize: Virallista
title: Virallista käyttäjä "%{name}"
+ show_email:
+ no_user: Käyttäjää ei löytynyt
show_email_modal:
description: Jos haluat ottaa suoraan yhteyttä osallistujaan, voit klikata Näytä-painiketta nähdäksesi hänen sähköpostiosoitteensa. Tästä toiminnosta jää jälki lokiin.
email_address: Sähköpostiosoite
@@ -900,6 +905,10 @@ fi-pl:
logos:
organization_logos: Organisaation logot
preview: Esikatsele
+ machine_translation_display_priority:
+ options:
+ original: Järjestelmä näyttää tiedot samalla kielellä kuin millä sisältö on laadittu. Hallintapaneelista luotu sisältö, joka on käännetty hallintakäyttäjän toimesta, näytetään niin kuin hallintakäyttäjä sisällön on määrittänyt.
+ translation: Järjestelmä näyttää käännöksen, jos se on saatavilla. Muussa tapauksessa sisältö näytetään alkuperäisellä kielellään.
rich_text_editor_in_public_views_help: Joissain tekstikentissä osallistujat voivat syöttää tiettyjä HTML-elementtejä rikkaan tekstieditorin kautta.
social_handlers: Sosiaalinen media
twitter: X
@@ -1067,10 +1076,10 @@ fi-pl:
next_title: Seuraava kohde
previous: Edellinen
previous_title: Edellinen kohde
- gallery:
- add_images: Lisää kuvia
- edit_images: Muokkaa kuvia
- gallery_legend: Lisää kuvagalleria (valinnainen)
+ attachments:
+ add_attachments: Lisää liitteitä
+ attachment_legend: Lisää liitegalleria (valinnainen)
+ edit_attachments: Muokkaa liitteitä
static_page_topics:
create:
error: Uuden aiheen luomisessa tapahtui virhe.
@@ -1285,6 +1294,11 @@ fi-pl:
errors:
impersonate_user:
reason: Sinun on annettava syy, kun hallitset osallistujaa, joka ei ole hallittu osallistuja.
+ file_help:
+ attachment:
+ explanation: 'Tiedoston ohjeistus:'
+ message_1: CSV-, JSON- ja Excel-tiedostoja (.xlsx) tuetaan
+ message_2: CSV-tiedostoissa sarake-erottimen on oltava puolipiste (";")
moderations:
actions:
expand: Avaa
diff --git a/decidim-admin/config/locales/fi.yml b/decidim-admin/config/locales/fi.yml
index 21393a0f18cc4..077feece4b96e 100644
--- a/decidim-admin/config/locales/fi.yml
+++ b/decidim-admin/config/locales/fi.yml
@@ -12,6 +12,7 @@ fi:
plural: Monikko
attachment:
attachment_collection_id: Kansio
+ attachments: Liitteet
description: Kuvaus
file: Tiedosto
title: Liitetiedoston tai kuvan nimi
@@ -834,6 +835,7 @@ fi:
officializations:
block:
error: Osallistujan estäminen epäonnistui.
+ no_user: Käyttäjää ei löytynyt
success: Osallistujan estäminen onnistui.
bulk_action:
block:
@@ -843,6 +845,7 @@ fi:
invalid: Osallistujien eston peruminen epäonnistui.
success: Osallistujien eston peruminen onnistui.
create:
+ no_user_found: Osallistujaa ei löytynyt.
success: Osallistujan virallistaminen onnistui.
destroy:
success: Osallistujan virallistamisen peruminen onnistui.
@@ -867,6 +870,8 @@ fi:
badge: Virallistamismerkki
officialize: Virallista
title: Virallista käyttäjä "%{name}"
+ show_email:
+ no_user: Käyttäjää ei löytynyt
show_email_modal:
description: Jos haluat ottaa suoraan yhteyttä osallistujaan, voit klikata Näytä-painiketta nähdäksesi hänen sähköpostiosoitteensa. Tästä toiminnosta jää jälki lokiin.
email_address: Sähköpostiosoite
@@ -900,6 +905,10 @@ fi:
logos:
organization_logos: Organisaation logot
preview: Esikatsele
+ machine_translation_display_priority:
+ options:
+ original: Järjestelmä näyttää tiedot samalla kielellä kuin millä sisältö on laadittu. Hallintapaneelista luotu sisältö, joka on käännetty hallintakäyttäjän toimesta, näytetään niin kuin hallintakäyttäjä sisällön on määrittänyt.
+ translation: Järjestelmä näyttää käännöksen, jos se on saatavilla. Muussa tapauksessa sisältö näytetään alkuperäisellä kielellään.
rich_text_editor_in_public_views_help: Joissain tekstikentissä osallistujat voivat syöttää tiettyjä HTML-elementtejä rikkaan tekstieditorin kautta.
social_handlers: Sosiaalinen media
twitter: X
@@ -1067,10 +1076,10 @@ fi:
next_title: Seuraava kohde
previous: Edellinen
previous_title: Edellinen kohde
- gallery:
- add_images: Lisää kuvia
- edit_images: Muokkaa kuvia
- gallery_legend: Lisää kuvagalleria (valinnainen)
+ attachments:
+ add_attachments: Lisää liitteitä
+ attachment_legend: Lisää liitegalleria (valinnainen)
+ edit_attachments: Muokkaa liitteitä
static_page_topics:
create:
error: Uuden aiheen luonti epäonnistui.
@@ -1285,6 +1294,11 @@ fi:
errors:
impersonate_user:
reason: Sinun on annettava syy, kun hallitset osallistujaa, joka ei ole hallittu osallistuja.
+ file_help:
+ attachment:
+ explanation: 'Tiedoston ohjeistus:'
+ message_1: CSV-, JSON- ja Excel-tiedostoja (.xlsx) tuetaan
+ message_2: CSV-tiedostoissa sarake-erottimen on oltava puolipiste (";")
moderations:
actions:
expand: Avaa
diff --git a/decidim-admin/config/locales/fr-CA.yml b/decidim-admin/config/locales/fr-CA.yml
index fe03a836a6221..6f5d3136007c3 100644
--- a/decidim-admin/config/locales/fr-CA.yml
+++ b/decidim-admin/config/locales/fr-CA.yml
@@ -12,6 +12,7 @@ fr-CA:
plural: Pluriel
attachment:
attachment_collection_id: Dossier
+ attachments: Pièces jointes
description: Description
file: Fichier
title: Nom de la pièce jointe ou de l'image
@@ -45,7 +46,7 @@ fr-CA:
alert_color: Alerte
available_authorizations: Autorisations disponibles
badges_enabled: Activer les badges
- comments_max_length: Longueur max des commentaires (laisser 0 pour la valeur par défaut)
+ comments_max_length: Nombre maximum de caractères par commentaire (Laisser 0 pour la valeur par défaut)
customize_welcome_notification: Personnaliser le mail de bienvenue
default_locale: Langue par défaut
description: Description
@@ -360,6 +361,7 @@ fr-CA:
text: Recherche par email, nom ou pseudo de l'utilisateur actuel
managed_user_name: Utilisateur représenté
solved: Résolu
+ title: Conflits de vérification
transfer:
email: Email
error: Une erreur est survenue lors du transfert de l'utilisateur actuel en utilisateur représenté.
@@ -575,6 +577,7 @@ fr-CA:
promotions:
new:
explanation: Les utilisateurs représentés peuvent être promu utilisateurs standard. Cela signifie qu'ils seront invités à s'inscrire sur l'application et vous ne pourrez plus agir à leur place. L'utilisateur recevra un email pour accepter votre invitation.
+ new_managed_user_promotion: Nouvelle promotion d'un utilisateur représenté
promote: Promouvoir
menu:
admin_log: Journal d'activité personnel
@@ -757,6 +760,7 @@ fr-CA:
title: Modèles de newsletter
use_template: Utiliser ce modèle
show:
+ preview: 'Prévisualiser le modèle: %{template_name}'
use_template: Utiliser ce modèle
newsletters:
confirm_recipients:
@@ -831,6 +835,7 @@ fr-CA:
officializations:
block:
error: Une erreur s'est produite lors du blocage du participant.
+ no_user: Aucun utilisateur trouvé
success: Participant bloqué avec succès.
bulk_action:
block:
@@ -840,6 +845,7 @@ fr-CA:
invalid: Une erreur s'est produite lors du déblocage des participants.
success: Participants débloqués avec succès.
create:
+ no_user_found: Le participant n'a pas été trouvé.
success: Utilisateur validé avec succès.
destroy:
success: Validation de l'utilisateur retirée avec succès.
@@ -864,6 +870,8 @@ fr-CA:
badge: Badge de validation
officialize: Valider
title: Valider l'utilisateur "%{name}"
+ show_email:
+ no_user: Aucun utilisateur trouvé
show_email_modal:
description: Si vous avez besoin de contacter directement un participant, vous pouvez cliquer sur le bouton Afficher pour voir leur adresse mèl. Cette action sera enregistrée.
email_address: Adresse e-mail
@@ -897,6 +905,10 @@ fr-CA:
logos:
organization_logos: Logos de l'organisation
preview: Aperçu
+ machine_translation_display_priority:
+ options:
+ original: Le système affiche les informations dans la langue utilisée par l'auteur. Le contenu créé par un administrateur avec des traductions manuelles, affichera les valeurs traduites par cet administrateur.
+ translation: Le système affichera une traduction si elle est disponible, sinon la langue originale sera utilisée.
rich_text_editor_in_public_views_help: Dans certains champs textuel, les participants pourront insérer des balises HTML en utilisant l'éditeur de texte avancé.
social_handlers: Liens des réseaux sociaux
twitter: X
@@ -1064,10 +1076,10 @@ fr-CA:
next_title: Élément suivant
previous: Précédent
previous_title: Élément précédent
- gallery:
- add_images: Ajouter des images
- edit_images: Modifier les images
- gallery_legend: Ajouter une galerie d'images (facultatif)
+ attachments:
+ add_attachments: Ajouter des pièces jointes
+ attachment_legend: Ajouter une galerie de pièces jointes (facultatif)
+ edit_attachments: Modifier les pièces jointes
static_page_topics:
create:
error: Une erreur s'est produite lors de la création d'un nouveau sujet.
@@ -1137,7 +1149,9 @@ fr-CA:
filters:
search_placeholder: Rechercher
index:
+ description: Les taxonomies et les filtres permettent aux administrateurs de trier et d'organiser le contenu. Par exemple, ajoutez une taxonomie avec les arrondissements et quartiers de la ville et créez ensuite des filtres uniquement avec les arrondissements ou pour un quartier spécifique.
new_taxonomy: Nouvelle taxonomie
+ no_items_found: Aucune taxonomie trouvée correspondant aux critères de recherche.
name: Nom
new:
create: Créer la taxonomie
@@ -1146,6 +1160,8 @@ fr-CA:
table:
to_next_page: Faites glisser pour passer à la page suivante
to_prev_page: Faites glisser pour passer à la page précédente
+ taxonomy_actions:
+ confirm_destroy: 'Êtes-vous sûr de vouloir supprimer %{name}? Cela supprimera également tous les éléments enfants. NOTE : Les ressources qui utilisent cette taxonomie ne seront pas affectées, mais elles perdront la référence à cette taxonomie.'
total_filters: Filtres
total_items: Éléments de la taxonomie
update:
@@ -1161,11 +1177,20 @@ fr-CA:
create:
error: Un problème a été rencontré lors de la création de ce filtre de taxonomie.
success: Filtre de taxonomie créé avec succès.
+ destroy:
+ error: Un problème a été rencontré lors de la suppression de ce filtre de taxonomie.
+ success: Filtre de taxonomie supprimé avec succès.
edit:
back: Revenir en arrière
title: Modifier le filtre de taxonomie
update: Mettre à jour le filtre de taxonomie
form:
+ all: Toutes
+ items:
+ one: "{count} élément sélectionné"
+ other: "{count} éléments sélectionnés"
+ name_help: Le titre du filtre à afficher dans l'interface publique.
+ no_items: Aucun élément n'est disponible pour cette taxonomie. Vous pouvez créer des éléments dans les paramètres de configuration de taxonomie.
space_filter: Disponible comme filtre pour
index:
description: Un filtre de taxonomie permet aux administrateurs de trier et de filtrer les espaces participatifs selon une taxonomie. Par exemple, ajoutez un filtre de taxonomie pour trier les processus par étendue géographique.
@@ -1178,13 +1203,17 @@ fr-CA:
table:
actions: Actions
components_count: Composants utilisant ceci
+ confirm_destroy: 'Êtes-vous sûr de vouloir supprimer le filtre %{name}? NOTE : Les ressources qui utilisent ce filtre ne seront pas affectées, mais elles perdront la référence à ce filtre.'
destroy: Supprimer
edit: Modifier
+ internal_name: Identifiant interne
+ name: Identifiant
update:
error: Il y a eu un problème lors de la mise à jour de ce filtre de taxonomie.
success: Filtre de taxonomie mis à jour avec succès.
taxonomy_filters_selector:
new:
+ add_new_items_html: Si vous avez besoin de définir un nouveau filtre ou un nouvel élément, faites-le dans les paramètres de configuration.
items_count: "%{count} éléments"
save: Enregistrer
show:
@@ -1193,12 +1222,24 @@ fr-CA:
taxonomies_select:
filters: Filtres
select_filter: Sélectionnez un filtre
+ select_taxonomy: Sélectionner une taxonomie
taxonomies: Taxonomies
+ taxonomy_items:
+ edit:
+ title: Modifier l'élément dans %{taxonomy}
+ update: Mettre l'élément à jour
+ new:
+ create: Créer l'élément
+ none: Aucune
+ title: Nouvel élément dans %{taxonomy}
titles:
+ admin_log: Journal d'administration
area_types: Types de périmètre d'assemblée
areas: Zones d'application
authorization_workflows: Méthodes de vérification
+ dashboard: Tableau de bord
edit_external_domains: Liste des domaines externes autorisés
+ impersonatable_users: Utilisateurs pouvant être représentés
impersonations: Gestion des utilisateurs
menu: Menu
page_topics: Sujets
@@ -1209,6 +1250,8 @@ fr-CA:
scopes: Périmètres d'application
statistics: Statistiques
taxonomies: Taxonomies
+ taxonomy_filters: Filtres de taxonomie pour "%{taxonomy}"
+ users: Administrateurs
tooltips:
cannot_destroy_taxonomy_filter: Impossible de détruire ce filtre de taxonomie
cannot_edit_taxonomy_filter: Impossible de modifier ce filtre de taxonomie
@@ -1251,6 +1294,11 @@ fr-CA:
errors:
impersonate_user:
reason: Vous devez fournir une raison lorsque vous représentez un participant non représenté.
+ file_help:
+ attachment:
+ explanation: 'Instructions concernant le fichier :'
+ message_1: Les fichiers CSV, JSON et Excel (.xlsx) sont pris en charge
+ message_2: Pour les fichiers CSV, le séparateur entre les colonnes doit être un point-virgule (";")
moderations:
actions:
expand: Agrandir
@@ -1265,14 +1313,20 @@ fr-CA:
reportable:
bulk_action:
hide:
+ failed: 'Une erreur est survenue lors du masquage de certaines ressouces: %{errored}'
invalid: Aucune modération sélectionnée.
success: Ressources cachées avec succès.
ignore:
invalid: Aucune modération d'utilisateur sélectionnée.
+ success: Participants dé-signalés avec succès.
unhide:
+ failed: 'Une erreur est survenue lors du dé-masquage de certaines ressouces: %{errored}'
invalid: Aucune modération sélectionnée.
+ success: Ressource dé-masquée avec succès.
unreport:
+ failed: 'Un problème a été rencontré lors du dé-signalement de certaines ressources %{errored}'
invalid: Aucune modération sélectionnée.
+ success: Signalement des ressources annulé succès.
hide:
invalid: Il y a eu un problème au moment de masquer le contenu.
success: Contenu masqué avec succès.
diff --git a/decidim-admin/config/locales/fr.yml b/decidim-admin/config/locales/fr.yml
index 915e458484c8b..7d59b6741e524 100644
--- a/decidim-admin/config/locales/fr.yml
+++ b/decidim-admin/config/locales/fr.yml
@@ -12,6 +12,7 @@ fr:
plural: Pluriel
attachment:
attachment_collection_id: Dossier
+ attachments: Pièces jointes
description: Description
file: Fichier
title: Nom de la pièce jointe ou de l'image
@@ -45,7 +46,7 @@ fr:
alert_color: Alerte
available_authorizations: Autorisations disponibles
badges_enabled: Activer les badges
- comments_max_length: Longueur max des commentaires (laisser 0 pour la valeur par défaut)
+ comments_max_length: Nombre maximum de caractères par commentaire (Laisser 0 pour la valeur par défaut)
customize_welcome_notification: Personnaliser le mail de bienvenue
default_locale: Langue par défaut
description: Description
@@ -360,6 +361,7 @@ fr:
text: Recherche par email, nom ou pseudo de l'utilisateur actuel
managed_user_name: Utilisateur représenté
solved: Résolu
+ title: Conflits de vérification
transfer:
email: Email
error: Une erreur est survenue lors du transfert de l'utilisateur actuel en utilisateur représenté.
@@ -575,6 +577,7 @@ fr:
promotions:
new:
explanation: Les utilisateurs représentés peuvent être promu utilisateurs standard. Cela signifie qu'ils seront invités à s'inscrire sur l'application et vous ne pourrez plus agir à leur place. L'utilisateur recevra un email pour accepter votre invitation.
+ new_managed_user_promotion: Nouvelle promotion d'un utilisateur représenté
promote: Promouvoir
menu:
admin_log: Journal d'activité personnel
@@ -757,6 +760,7 @@ fr:
title: Modèles de newsletter
use_template: Utiliser ce modèle
show:
+ preview: 'Prévisualiser le modèle: %{template_name}'
use_template: Utiliser ce modèle
newsletters:
confirm_recipients:
@@ -831,6 +835,7 @@ fr:
officializations:
block:
error: Une erreur s'est produite lors du blocage du participant.
+ no_user: Aucun utilisateur trouvé
success: Participant bloqué avec succès.
bulk_action:
block:
@@ -840,6 +845,7 @@ fr:
invalid: Une erreur s'est produite lors du déblocage des participants.
success: Participants débloqués avec succès.
create:
+ no_user_found: Le participant n'a pas été trouvé.
success: Utilisateur validé avec succès.
destroy:
success: Validation de l'utilisateur retirée avec succès.
@@ -864,6 +870,8 @@ fr:
badge: Badge de validation
officialize: Valider
title: Valider l'utilisateur "%{name}"
+ show_email:
+ no_user: Aucun utilisateur trouvé
show_email_modal:
description: Si vous avez besoin de contacter directement un participant, vous pouvez cliquer sur le bouton Afficher pour voir son adresse mail. Cette action sera enregistrée.
email_address: Adresse e-mail
@@ -897,6 +905,10 @@ fr:
logos:
organization_logos: Logos de l'organisation
preview: Aperçu
+ machine_translation_display_priority:
+ options:
+ original: Le système affiche les informations dans la langue utilisée par l'auteur. Le contenu créé par un administrateur avec des traductions manuelles, affichera les valeurs traduites par cet administrateur.
+ translation: Le système affichera une traduction si elle est disponible, sinon la langue originale sera utilisée.
rich_text_editor_in_public_views_help: Dans certains champs textuels, les participants pourront insérer des balises HTML en utilisant l'éditeur de texte avancé.
social_handlers: Liens des réseaux sociaux
twitter: X
@@ -1064,10 +1076,10 @@ fr:
next_title: Élément suivant
previous: Précédent
previous_title: Élément précédent
- gallery:
- add_images: Ajouter des images
- edit_images: Modifier les images
- gallery_legend: Ajouter une galerie d'images (facultatif)
+ attachments:
+ add_attachments: Ajouter des pièces jointes
+ attachment_legend: Ajouter une galerie de pièces jointes (facultatif)
+ edit_attachments: Modifier les pièces jointes
static_page_topics:
create:
error: Une erreur s'est produite lors de la création d'un nouveau sujet.
@@ -1137,7 +1149,9 @@ fr:
filters:
search_placeholder: Rechercher
index:
+ description: Les taxonomies et les filtres permettent aux administrateurs de trier et d'organiser le contenu. Par exemple, ajoutez une taxonomie avec les arrondissements et quartiers de la ville et créez ensuite des filtres uniquement avec les arrondissements ou pour un quartier spécifique.
new_taxonomy: Nouvelle taxonomie
+ no_items_found: Aucune taxonomie trouvée correspondant aux critères de recherche.
name: Nom
new:
create: Créer la taxonomie
@@ -1146,6 +1160,8 @@ fr:
table:
to_next_page: Faites glisser pour passer à la page suivante
to_prev_page: Faites glisser pour passer à la page précédente
+ taxonomy_actions:
+ confirm_destroy: 'Êtes-vous sûr de vouloir supprimer %{name}? Cela supprimera également tous les éléments enfants. NOTE : Les ressources qui utilisent cette taxonomie ne seront pas affectées, mais elles perdront la référence à cette taxonomie.'
total_filters: Filtres
total_items: Éléments de la taxonomie
update:
@@ -1161,11 +1177,20 @@ fr:
create:
error: Un problème a été rencontré lors de la création de ce filtre de taxonomie.
success: Filtre de taxonomie créé avec succès.
+ destroy:
+ error: Un problème a été rencontré lors de la suppression de ce filtre de taxonomie.
+ success: Filtre de taxonomie supprimé avec succès.
edit:
back: Revenir en arrière
title: Modifier le filtre de taxonomie
update: Mettre à jour le filtre de taxonomie
form:
+ all: Toutes
+ items:
+ one: "{count} élément sélectionné"
+ other: "{count} éléments sélectionnés"
+ name_help: Le titre du filtre à afficher dans l'interface publique.
+ no_items: Aucun élément n'est disponible pour cette taxonomie. Vous pouvez créer des éléments dans les paramètres de configuration de taxonomie.
space_filter: Disponible comme filtre pour
index:
description: Un filtre de taxonomie permet aux administrateurs de trier et de filtrer les espaces participatifs selon une taxonomie. Par exemple, ajoutez un filtre de taxonomie pour trier les processus par étendue géographique.
@@ -1178,13 +1203,17 @@ fr:
table:
actions: Actions
components_count: Composants utilisant ceci
+ confirm_destroy: 'Êtes-vous sûr de vouloir supprimer le filtre %{name}? NOTE : Les ressources qui utilisent ce filtre ne seront pas affectées, mais elles perdront la référence à ce filtre.'
destroy: Supprimer
edit: Modifier
+ internal_name: Identifiant interne
+ name: Identifiant
update:
error: Il y a eu un problème lors de la mise à jour de ce filtre de taxonomie.
success: Filtre de taxonomie mis à jour avec succès.
taxonomy_filters_selector:
new:
+ add_new_items_html: Si vous avez besoin de définir un nouveau filtre ou un nouvel élément, faites-le dans les paramètres de configuration.
items_count: "%{count} éléments"
save: Enregistrer
show:
@@ -1193,12 +1222,24 @@ fr:
taxonomies_select:
filters: Filtres
select_filter: Sélectionnez un filtre
+ select_taxonomy: Sélectionner une taxonomie
taxonomies: Taxonomies
+ taxonomy_items:
+ edit:
+ title: Modifier l'élément dans %{taxonomy}
+ update: Mettre l'élément à jour
+ new:
+ create: Créer l'élément
+ none: Aucune
+ title: Nouvel élément dans %{taxonomy}
titles:
+ admin_log: Journal d'administration
area_types: Types de périmètre d'assemblée
areas: Périmètres d'assemblée
authorization_workflows: Méthodes de vérification
+ dashboard: Tableau de bord
edit_external_domains: Liste des domaines externes autorisés
+ impersonatable_users: Utilisateurs pouvant être représentés
impersonations: Gestion des utilisateurs
menu: Menu
page_topics: Sujets
@@ -1209,6 +1250,8 @@ fr:
scopes: Secteurs
statistics: Statistiques
taxonomies: Taxonomies
+ taxonomy_filters: Filtres de taxonomie pour "%{taxonomy}"
+ users: Administrateurs
tooltips:
cannot_destroy_taxonomy_filter: Impossible de détruire ce filtre de taxonomie
cannot_edit_taxonomy_filter: Impossible de modifier ce filtre de taxonomie
@@ -1251,6 +1294,11 @@ fr:
errors:
impersonate_user:
reason: Vous devez fournir une raison lorsque vous représentez un participant non représenté.
+ file_help:
+ attachment:
+ explanation: 'Instructions concernant le fichier :'
+ message_1: Les fichiers CSV, JSON et Excel (.xlsx) sont pris en charge
+ message_2: Pour les fichiers CSV, le séparateur entre les colonnes doit être un point-virgule (";")
moderations:
actions:
expand: Agrandir
@@ -1265,14 +1313,20 @@ fr:
reportable:
bulk_action:
hide:
+ failed: 'Une erreur est survenue lors du masquage de certaines ressouces: %{errored}'
invalid: Aucune modération sélectionnée.
success: Ressources cachées avec succès.
ignore:
invalid: Aucune modération d'utilisateur sélectionnée.
+ success: Participants dé-signalés avec succès.
unhide:
+ failed: 'Une erreur est survenue lors du dé-masquage de certaines ressouces: %{errored}'
invalid: Aucune modération sélectionnée.
+ success: Ressource dé-masquée avec succès.
unreport:
+ failed: 'Un problème a été rencontré lors du dé-signalement de certaines ressources %{errored}'
invalid: Aucune modération sélectionnée.
+ success: Signalement des ressources annulé succès.
hide:
invalid: Il y a eu un problème au moment de masquer le contenu.
success: Contenu masqué avec succès.
diff --git a/decidim-admin/config/locales/gl.yml b/decidim-admin/config/locales/gl.yml
index 06f818f15a9e7..5406f2a284fcb 100644
--- a/decidim-admin/config/locales/gl.yml
+++ b/decidim-admin/config/locales/gl.yml
@@ -34,7 +34,6 @@ gl:
alert_color: Alerta
available_authorizations: Autorizacións dispoñíbeis
badges_enabled: Activar emblemas
- comments_max_length: Lonxitude máxima dos comentarios (0 para valor predefinido)
customize_welcome_notification: Personalizar a notificación de benvida
default_locale: Configuración predeterminada
description: Descrición
@@ -683,11 +682,6 @@ gl:
share_tokens:
actions:
destroy: Eliminar
- shared:
- gallery:
- add_images: Engadir imaxes
- edit_images: Editar imaxes
- gallery_legend: Engadir unha galería de imaxes (opcional)
static_page_topics:
create:
error: Produciuse un erro ao crear un tema novo.
diff --git a/decidim-admin/config/locales/he-IL.yml b/decidim-admin/config/locales/he-IL.yml
index f84ce64e44df8..52e3b01c6c9ab 100644
--- a/decidim-admin/config/locales/he-IL.yml
+++ b/decidim-admin/config/locales/he-IL.yml
@@ -44,7 +44,6 @@ he:
alert_color: התראה
available_authorizations: הרשאות זמינות
badges_enabled: אפשר תגיות
- comments_max_length: אורך מקסימלי לתגובות (השאירו 0 לערך ברירת המחדל)
participatory_space_private_user:
name: שם
participatory_space_private_user_csv_import:
diff --git a/decidim-admin/config/locales/hu.yml b/decidim-admin/config/locales/hu.yml
index 401de1853b19a..0475e9f615e78 100644
--- a/decidim-admin/config/locales/hu.yml
+++ b/decidim-admin/config/locales/hu.yml
@@ -44,7 +44,6 @@ hu:
alert_color: Figyelmeztetés
available_authorizations: Elérhető authorizációk
badges_enabled: Jelvények engedélyezése
- comments_max_length: Kommentek maximális hossza (Hagyjon 0 -t az alapértékhez)
customize_welcome_notification: Az üdvözlő értesítések testreszabása
default_locale: Alapértelmezett hely
description: Leírás
@@ -822,11 +821,6 @@ hu:
share_tokens:
actions:
destroy: Törlés
- shared:
- gallery:
- add_images: Képek hozzáadása
- edit_images: Kép szerkesztése
- gallery_legend: Képgaléria hozzáadása (opcionális)
static_page_topics:
create:
error: Hiba történt egy új téma létrehozásakor.
diff --git a/decidim-admin/config/locales/it.yml b/decidim-admin/config/locales/it.yml
index a0efb0792f687..ba16d911d55d4 100644
--- a/decidim-admin/config/locales/it.yml
+++ b/decidim-admin/config/locales/it.yml
@@ -44,7 +44,6 @@ it:
alert_color: Notifica
available_authorizations: Autorizzazioni disponibili
badges_enabled: Abilita badge
- comments_max_length: Lunghezza massima dei commenti (Lasciare 0 per il valore predefinito)
customize_welcome_notification: Personalizza la notifica di benvenuto
default_locale: Lingua predefinita
description: Descrizione
@@ -184,6 +183,7 @@ it:
Se cambi idea, puoi ripristinarlo più tardi.
export: Esporta
export_all: Esporta tutto
+ export_selection: Esporta selezione
import: Importazione
newsletter:
new: Nuova newsletter
@@ -978,9 +978,6 @@ it:
adjacent_navigation:
next: Successivo
next_title: Articolo successivo
- gallery:
- add_images: Aggiungi immagini
- gallery_legend: Aggiungi una galleria di immagini (opzionale)
static_page_topics:
create:
error: Si è verificato un errore durante la creazione di un nuovo argomento.
diff --git a/decidim-admin/config/locales/ja.yml b/decidim-admin/config/locales/ja.yml
index bf95fa1109dd2..97ada10bca625 100644
--- a/decidim-admin/config/locales/ja.yml
+++ b/decidim-admin/config/locales/ja.yml
@@ -12,6 +12,7 @@ ja:
plural: 複数形
attachment:
attachment_collection_id: フォルダ
+ attachments: 添付ファイル
description: 説明
file: ファイル
title: 添付ファイルまたは画像名
@@ -45,7 +46,7 @@ ja:
alert_color: アラート
available_authorizations: 利用可能な認証方式
badges_enabled: バッジを有効にする
- comments_max_length: コメント最大長 (デフォルト値は 0 のまま)
+ comments_max_length: 各コメントの最大文字数 (0はデフォルト値のまま)
customize_welcome_notification: ウェルカム通知をカスタマイズ
default_locale: 既定のロケール:
description: 説明
@@ -829,6 +830,7 @@ ja:
officializations:
block:
error: 参加者のブロック中に問題が発生しました。
+ no_user: ユーザーが見つかりません
success: 参加者をブロックしました。
bulk_action:
block:
@@ -838,6 +840,7 @@ ja:
invalid: 参加者のブロック解除中に問題が発生しました。
success: 参加者のブロックを解除しました。
create:
+ no_user_found: 参加者が見つかりません。
success: 参加者が公式化されました。
destroy:
success: 参加者が非公式化されました。
@@ -862,6 +865,8 @@ ja:
badge: 公式バッジ
officialize: 公式化
title: 参加者 "%{name} " を正規化
+ show_email:
+ no_user: ユーザーが見つかりません
show_email_modal:
description: 直接参加者に連絡する必要がある場合、彼らの電子メールアドレスを見るために表示ボタンをクリックしてください。このアクションは記録されます。
email_address: メールアドレス
@@ -895,6 +900,10 @@ ja:
logos:
organization_logos: 組織のロゴ
preview: プレビュー
+ machine_translation_display_priority:
+ options:
+ original: システムは、作成者が使用した言語で情報を表示します。管理画面で作成され、手動で翻訳が入力されたコンテンツについては、管理画面で入力された翻訳内容が表示されます。
+ translation: システムは、翻訳が利用可能な場合は翻訳を表示し、利用できない場合は元の言語で表示します。
rich_text_editor_in_public_views_help: 一部のテキストエリアでは、参加者はリッチテキストエディタを使用してHTMLタグを挿入することができます。
social_handlers: ソーシャル
twitter: X
@@ -956,7 +965,7 @@ ja:
explanation: '%{count} 人のプライベート参加者がいます。'
title: プライベート参加者を削除
example_file: 'サンプルファイル:'
- explanation: "CSVファイルをアップロードしてください。ファイルには2つの列が必要で、1列目にはメールアドレス、最後の列には参加スペースに追加したいユーザーの名前を入力してください。ヘッダー行は不要です。ユーザー名には、`<>?%&^*#@()[]=+:;\"{}\\|`などの無効な文字を使用しないでください。\n"
+ explanation: "CSVファイルをアップロードしてください。ファイルには2つの列が必要で、1列目にはメールアドレス、最後の列には参加スペースに追加したいユーザーの名前を入力してください。ヘッダー行は不要です。ユーザー名には、`<>?%&^*#@()[]=+:;\"{}\\\\\\\\|`などの無効な文字を使用しないでください。\n"
explanation_example: |
john.doe@example.org%{csv_col_sep}John Doe
jane.doe@example.org%{csv_col_sep}Jane Doe
@@ -1060,10 +1069,10 @@ ja:
next_title: 次の項目
previous: 前へ
previous_title: 前の項目
- gallery:
- add_images: 画像を追加
- edit_images: 画像を編集
- gallery_legend: 画像ギャラリーを追加 (オプション)
+ attachments:
+ add_attachments: 添付ファイルを追加
+ attachment_legend: 添付ファイルギャラリーを追加(オプション)
+ edit_attachments: 添付ファイルを編集
static_page_topics:
create:
error: 新しいトピックを作成中に問題が発生しました。
@@ -1153,7 +1162,7 @@ ja:
success: タクソノミーを更新しました。
taxonomy_filters:
actions:
- new_taxonomy_filter: 新規タクソノミフィルター
+ new_taxonomy_filter: 新規分類フィルター
breadcrumb:
edit: フィルターの編集
filters: フィルター
@@ -1277,6 +1286,11 @@ ja:
errors:
impersonate_user:
reason: 管理対象ではない参加者を管理する場合は、理由を入力する必要があります。
+ file_help:
+ attachment:
+ explanation: 'ファイルのガイダンス:'
+ message_1: CSV、JSON、Excel (.xlsx) ファイルがサポートされています
+ message_2: CSV ファイルの場合、カラム間の区切り文字はセミコロン(";")でなければなりません
moderations:
actions:
expand: 展開
diff --git a/decidim-admin/config/locales/kaa.yml b/decidim-admin/config/locales/kaa.yml
index b0b7f91a141e5..4f13867a5140d 100644
--- a/decidim-admin/config/locales/kaa.yml
+++ b/decidim-admin/config/locales/kaa.yml
@@ -170,10 +170,6 @@ kaa:
share_tokens:
actions:
destroy: Óshiriw
- shared:
- gallery:
- add_images: Súwretlerdi qosıw
- edit_images: Súwretlerdi ózgertiw
static_pages:
edit:
update: Jańalaw
diff --git a/decidim-admin/config/locales/ko.yml b/decidim-admin/config/locales/ko.yml
index 4d012560cba47..ed20c4860a197 100644
--- a/decidim-admin/config/locales/ko.yml
+++ b/decidim-admin/config/locales/ko.yml
@@ -35,7 +35,6 @@ ko:
organization:
alert_color: 알림
badges_enabled: 뱃지 활성화
- comments_max_length: 댓글 최대 길이(기본값은 0으로 남김)
customize_welcome_notification: 환영 알림 커스터마이징
default_locale: 기본 위치
description: 상세정보
@@ -569,11 +568,6 @@ ko:
share_tokens:
actions:
destroy: 삭제
- shared:
- gallery:
- add_images: 이미지 추가
- edit_images: 이미지 편집
- gallery_legend: 이미지 갤러리 추가하기 (선택사항)
static_page_topics:
update:
success: 주제가 성공적으로 업데이트되었습니다
diff --git a/decidim-admin/config/locales/lb.yml b/decidim-admin/config/locales/lb.yml
index 2a3d521ae7467..64b7f758b54e5 100644
--- a/decidim-admin/config/locales/lb.yml
+++ b/decidim-admin/config/locales/lb.yml
@@ -34,7 +34,6 @@ lb:
alert_color: Benachrichtigung
available_authorizations: Verfügbare Autorisierungen
badges_enabled: Abzeichen aktivieren
- comments_max_length: Maximale Länge der Kommentare (0 für Standardwert)
customize_welcome_notification: Willkommens-Benachrichtigung anpassen
default_locale: Standardgebietsschema
description: Beschreibung
@@ -644,10 +643,6 @@ lb:
share_tokens:
actions:
destroy: Löschen
- shared:
- gallery:
- add_images: Bilder hinzufügen
- gallery_legend: Bildergalerie hinzufügen (Optional)
static_page_topics:
create:
error: Beim Erstellen eines neuen Themas ist ein Fehler aufgetreten.
diff --git a/decidim-admin/config/locales/lt.yml b/decidim-admin/config/locales/lt.yml
index 72e922607eeb9..709f93ea4f205 100644
--- a/decidim-admin/config/locales/lt.yml
+++ b/decidim-admin/config/locales/lt.yml
@@ -42,7 +42,6 @@ lt:
alert_color: Įspėjimas
available_authorizations: Leidžiamos autorizacijos
badges_enabled: Aktyvinti ženklelius
- comments_max_length: Maksimalus komentarų ilgis (numatytoji vertė – 0)
customize_welcome_notification: Individualizuoti pasisveikinimo pranešimą
default_locale: Numatytoji lokalė
description: Aprašymas
@@ -795,11 +794,6 @@ lt:
share_tokens:
actions:
destroy: Ištrinti
- shared:
- gallery:
- add_images: Pridėti paveikslėlių
- edit_images: Redaguoti paveikslėlį
- gallery_legend: Pridėti paveikslėlių galeriją (Neprivaloma)
static_page_topics:
create:
error: Kuriant naują temą iškilo problema.
diff --git a/decidim-admin/config/locales/lv.yml b/decidim-admin/config/locales/lv.yml
index e369a585679bb..2819838ea9dd0 100644
--- a/decidim-admin/config/locales/lv.yml
+++ b/decidim-admin/config/locales/lv.yml
@@ -498,10 +498,6 @@ lv:
update:
error: Tvēruma atjaunināšanas laikā radās problēma.
success: Tvērums ir veiksmīgi atjaunināts
- shared:
- gallery:
- add_images: Pievienot attēlus
- gallery_legend: Pievienojiet attēlu galeriju (pēc izvēles)
static_page_topics:
create:
error: Tēmas izveides laikā radās problēma.
diff --git a/decidim-admin/config/locales/nl.yml b/decidim-admin/config/locales/nl.yml
index 655b47322f252..3042d7724859d 100644
--- a/decidim-admin/config/locales/nl.yml
+++ b/decidim-admin/config/locales/nl.yml
@@ -34,7 +34,6 @@ nl:
alert_color: Alarm
available_authorizations: Beschikbare autorisaties
badges_enabled: Schakel badges in
- comments_max_length: Commentaar maximale lengte (laat 0 voor standaard waarde)
customize_welcome_notification: Pas welkomstmelding aan
default_locale: Standaard taal
description: Beschrijving
@@ -704,11 +703,6 @@ nl:
share_tokens:
actions:
destroy: Verwijderen
- shared:
- gallery:
- add_images: Afbeeldingen toevoegen
- edit_images: Bewerk afbeeldingen
- gallery_legend: Voeg een afbeeldingsgalerij toe (optioneel)
static_page_topics:
create:
error: Er is een fout opgetreden bij het maken van een nieuw onderwerp.
diff --git a/decidim-admin/config/locales/no.yml b/decidim-admin/config/locales/no.yml
index e3bb258f46b09..7fe5050a9ac4a 100644
--- a/decidim-admin/config/locales/no.yml
+++ b/decidim-admin/config/locales/no.yml
@@ -34,7 +34,6 @@
alert_color: Varsel
available_authorizations: Tilgjengelige autorisasjoner
badges_enabled: Aktiver utmerkelse
- comments_max_length: Maks lengde på kommentarer (Sett 0 for standardverdi)
customize_welcome_notification: Tilpass dine velkomstvarsler
default_locale: Standardspråk
description: Beskrivelse
@@ -709,11 +708,6 @@
share_tokens:
actions:
destroy: Slett
- shared:
- gallery:
- add_images: Legg til bilder
- edit_images: Rediger bilder
- gallery_legend: Legg til et bildegalleri (valgfritt)
static_page_topics:
create:
error: Det oppstod et problem med å opprette et nytt emne.
diff --git a/decidim-admin/config/locales/pl.yml b/decidim-admin/config/locales/pl.yml
index 3b7c4aadc5aa8..734c0953098d6 100644
--- a/decidim-admin/config/locales/pl.yml
+++ b/decidim-admin/config/locales/pl.yml
@@ -45,7 +45,6 @@ pl:
alert_color: Powiadomienie
available_authorizations: Dostępne formy uwierzytelniania
badges_enabled: Włącz odznaki
- comments_max_length: Maksymalna długość komentarza (pozostaw 0 dla wartości domyślnej)
customize_welcome_notification: Dostosuj treść komunikatu powitalnego
default_locale: Domyślny język
description: Opis
@@ -852,10 +851,6 @@ pl:
next_title: Następny element
previous: Poprzedni
previous_title: Poprzedni element
- gallery:
- add_images: Dodaj obrazy
- edit_images: Edytuj obrazy
- gallery_legend: Dodaj galerię obrazów (opcjonalnie)
static_page_topics:
create:
error: Wystąpił błąd podczas tworzenia nowego tematu.
diff --git a/decidim-admin/config/locales/pt-BR.yml b/decidim-admin/config/locales/pt-BR.yml
index e7c8d92c8da2e..b9d213131f559 100644
--- a/decidim-admin/config/locales/pt-BR.yml
+++ b/decidim-admin/config/locales/pt-BR.yml
@@ -45,7 +45,6 @@ pt-BR:
alert_color: Alerta
available_authorizations: Autorizações disponíveis
badges_enabled: Ativar emblemas
- comments_max_length: Tamanho máximo de comentários (deixe 0 para o valor padrão)
customize_welcome_notification: Personalizar notificação de boas-vindas
default_locale: Idioma padrão
description: Descrição
@@ -58,7 +57,7 @@ pt-BR:
force_users_to_authenticate_before_access_organization: Forçar usuários a autenticar antes de acessar organização
from: Endereço de e-mail do remetente
github_handler: Manipulador GitHub
- header_snippets: Snippets de cabeçalho
+ header_snippets: Trecho de cabeçalho
highlight_alternative_color: Destaque, alternativa
highlight_color: Destaque
host: Host
@@ -86,7 +85,7 @@ pt-BR:
tertiary_color: Terciário
time_zone: Fuso Horário
tos_version: Versão dos termos de serviço
- twitter_handler: X handler
+ twitter_handler: Manipulador do X
users_registration_mode: Modo de registro de usuários
warning_color: Aviso
welcome_notification_body: Corpo de notificação de boas-vindas
@@ -119,16 +118,16 @@ pt-BR:
slug: Texto curto de URL
title: Título
topic_id: Tópico
- weight: Posição do pedido
+ weight: Ordem de posição
static_page_topic:
description: Descrição
name: Nome do tópico
show_in_footer: Mostrar no rodapé
title: Título
- weight: Posição do pedido
+ weight: Ordem de posição
taxonomy:
item_name: Nome do item
- parent_id: Parente
+ parent_id: Pai
user_group_csv_verification:
file: Arquivo
errors:
@@ -211,11 +210,11 @@ pt-BR:
view_deleted_components: Visualizar componentes excluídos
admin_terms_of_service:
accept:
- error: Houve um erro ao aceitar os termos de serviço de administrador.
+ error: Houve um erro ao aceitar os termos de serviço de administrador.
success: Ótimo! Você aceitou os termos de uso do administrador.
actions:
accept: Concordo com estes termos
- are_you_sure: Tem certeza que deseja negar os termos de Serviço para administrador?
+ are_you_sure: Tem certeza que deseja negar os termos de Serviço para administrador?
refuse: Recusar os termos de administrador
title: "Concordo com os termos de serviço\n"
required_review:
@@ -1066,10 +1065,6 @@ pt-BR:
next_title: Próximo item
previous: Anterior
previous_title: Item anterior
- gallery:
- add_images: Adicione imagens
- edit_images: Editar imagens
- gallery_legend: Adicionar uma galeria de imagens (Opcional)
static_page_topics:
create:
error: Ocorreu um erro ao criar um novo tópico.
diff --git a/decidim-admin/config/locales/pt.yml b/decidim-admin/config/locales/pt.yml
index 0918f68bf577b..dd569f2a76868 100644
--- a/decidim-admin/config/locales/pt.yml
+++ b/decidim-admin/config/locales/pt.yml
@@ -34,7 +34,6 @@ pt:
alert_color: Alerta
available_authorizations: Autorizações disponíveis
badges_enabled: Ativar distintivos
- comments_max_length: Comprimento máximo dos comentários (Deixar 0 para o valor predefinido)
customize_welcome_notification: Personalizar a notificação de boas-vindas
default_locale: Idioma por defeito
description: Descrição
@@ -669,10 +668,6 @@ pt:
share_tokens:
actions:
destroy: Eliminar
- shared:
- gallery:
- add_images: Adicionar imagens
- gallery_legend: Adicionar uma galeria de imagens (Opcional)
static_page_topics:
create:
error: Ocorreu um problema ao criar um novo tópico.
diff --git a/decidim-admin/config/locales/ro-RO.yml b/decidim-admin/config/locales/ro-RO.yml
index fc97c9ef272e3..b120dfb4394ab 100644
--- a/decidim-admin/config/locales/ro-RO.yml
+++ b/decidim-admin/config/locales/ro-RO.yml
@@ -44,7 +44,6 @@ ro:
alert_color: Alertă
available_authorizations: Autorizații disponibile
badges_enabled: Activează insigne
- comments_max_length: Lungimea maximă a comentariilor (Lasă 0 pentru valoarea implicită)
customize_welcome_notification: Personalizați notificarea de bun venit
default_locale: Localizare implicită
description: Descriere
@@ -800,11 +799,6 @@ ro:
index:
copied: Link de acces copiat!
title: 'Link-uri de acces pentru: %{name}'
- shared:
- gallery:
- add_images: Adaugă imagini
- edit_images: Editare imagini
- gallery_legend: Adaugă o galerie de imagini (opțional)
static_page_topics:
create:
error: A apărut o problemă la crearea unui subiect nou.
diff --git a/decidim-admin/config/locales/sk.yml b/decidim-admin/config/locales/sk.yml
index 91eea04f3112c..ef24cd869410c 100644
--- a/decidim-admin/config/locales/sk.yml
+++ b/decidim-admin/config/locales/sk.yml
@@ -45,7 +45,6 @@ sk:
alert_color: Upozornenie
available_authorizations: Dostupné autorizácie
badges_enabled: Povoliť odznaky
- comments_max_length: Maximálna dĺžka komentárov (Ponechajte 0 pre predvolenú hodnotu)
customize_welcome_notification: Prispôsobte uvítanie
default_locale: Predvolený jazyk
description: Popis
@@ -165,7 +164,7 @@ sk:
client_id: ID klienta
client_secret: Tajný kľúč klienta
organization_name: Názov organizácie
- organization_url: Odkaz na stránku organizácie
+ organization_url: Odkaz na stránku organizácie
redirect_uri: Presmerovanie URI
site: Webstránka
decidim:
@@ -1079,10 +1078,8 @@ sk:
next_title: Nasledujúca položka
previous: Predchádzajúci
previous_title: Predchádzajúca položka
- gallery:
- add_images: Pridať obrázky
- edit_images: Upraviť obrázky
- gallery_legend: Pridať galériu (voliteľné)
+ attachments:
+ add_attachments: Nové prílohy
static_page_topics:
create:
error: Pri tvorbe novej témy nastala chyba.
diff --git a/decidim-admin/config/locales/sl.yml b/decidim-admin/config/locales/sl.yml
index 213a360a3b1d5..6fce34a0a3a45 100644
--- a/decidim-admin/config/locales/sl.yml
+++ b/decidim-admin/config/locales/sl.yml
@@ -31,7 +31,6 @@ sl:
organization:
alert_color: Opozorilo
badges_enabled: Omogoči značke
- comments_max_length: Maksimalna dolžina komentarjev (0 je privzeta)
customize_welcome_notification: Priredi obvestilo dobrodošlice
default_locale: Privzeto območje
description: Opis
diff --git a/decidim-admin/config/locales/sq-AL.yml b/decidim-admin/config/locales/sq-AL.yml
index 2560375738d7a..c11d35464cf54 100644
--- a/decidim-admin/config/locales/sq-AL.yml
+++ b/decidim-admin/config/locales/sq-AL.yml
@@ -44,7 +44,6 @@ sq:
alert_color: Paralajmërim
available_authorizations: Autorizimet në dispozicion
badges_enabled: Aktivizo emblemat
- comments_max_length: Madhësia maks. e komenteve(0 për vlerën e paracaktuar)
customize_welcome_notification: Personalizo njoftimin e mirëseardhjes
default_locale: Lokalizimi i parazgjedhur
description: Përshkrimi
diff --git a/decidim-admin/config/locales/sr-CS.yml b/decidim-admin/config/locales/sr-CS.yml
index 9d00a72849ae3..bc33769e50a69 100644
--- a/decidim-admin/config/locales/sr-CS.yml
+++ b/decidim-admin/config/locales/sr-CS.yml
@@ -454,10 +454,6 @@ sr:
update: Ažuriraj
new:
create: Stvori
- shared:
- gallery:
- add_images: Dodaj slike
- gallery_legend: Dodaj galeriju slika (opciono)
titles:
area_types: Tipovi oblasti
pages: Stranice
diff --git a/decidim-admin/config/locales/sv.yml b/decidim-admin/config/locales/sv.yml
index 055741708b3e0..3dab698e985ec 100644
--- a/decidim-admin/config/locales/sv.yml
+++ b/decidim-admin/config/locales/sv.yml
@@ -45,7 +45,6 @@ sv:
alert_color: Larm
available_authorizations: Tillgängliga auktoriseringar
badges_enabled: Aktivera märken
- comments_max_length: Maximal kommentarslängd (ange 0 för att använda standardvärdet)
customize_welcome_notification: Anpassa välkomstmeddelande
default_locale: Förvalt språk och region
description: Beskrivning
@@ -827,6 +826,7 @@ sv:
officializations:
block:
error: Det gick inte att blockera deltagaren.
+ no_user: Ingen användare hittad
success: Deltagaren har blockerats.
bulk_action:
block:
@@ -836,6 +836,7 @@ sv:
invalid: Det gick inte att avblockera deltagarna.
success: Deltagarna har avblockerats.
create:
+ no_user_found: Deltagaren hittades inte.
success: Deltagaren har fått officiell status.
destroy:
success: Deltagaren har inte längre officiell status.
@@ -1059,10 +1060,6 @@ sv:
next_title: Nästa
previous: Föregående
previous_title: Föregående
- gallery:
- add_images: Lägg till bilder
- edit_images: Redigera bilder
- gallery_legend: Lägg till ett bildgalleri (Frivilligt)
static_page_topics:
create:
error: Det gick inte att skapa ett nytt ämne.
diff --git a/decidim-admin/config/locales/tr-TR.yml b/decidim-admin/config/locales/tr-TR.yml
index 6f99c7ec2824c..92549553f5226 100644
--- a/decidim-admin/config/locales/tr-TR.yml
+++ b/decidim-admin/config/locales/tr-TR.yml
@@ -12,6 +12,7 @@ tr:
plural: Çoğul
attachment:
attachment_collection_id: Klasör
+ attachments: Ekler
description: Açıklama
file: Dosya
title: Ek veya resim adı
@@ -45,7 +46,7 @@ tr:
alert_color: Alarm
available_authorizations: Uygun yetkilendirmeler
badges_enabled: Rozetleri etkinleştir
- comments_max_length: Maksimum yorum uzunluğu (Varsayılan değer için 0 bırakın)
+ comments_max_length: Yorum başına en fazla karakter sayısı (varsayılan değer için 0 bırakın)
customize_welcome_notification: Karşılama bildirimlerini özelleştir
default_locale: Varsayılan yerel ayar
description: Açıklama
@@ -128,6 +129,7 @@ tr:
weight: Sıra numarası
taxonomy:
item_name: Öge adı
+ parent_id: Üst öge
user_group_csv_verification:
file: Dosya
errors:
@@ -180,25 +182,32 @@ tr:
attachment_collections: Klasör ekle
attachments: Eklenti ekle
browse: Araştır
+ configure: Yapılandır
confirm_delete_component: |
Bu bileşeni silmek istediğinizden emin misiniz?
- Bu bileşen şunu içeriyor:
-
-
%{resources_count} kaynakları
+ Bu bileşen şunu içeriyor:
+
+
%{resources_count} kaynakları
Fikrinizi değiştirirseniz daha sonra yeniden yükleyebilirsiniz.
+ export: Dışa aktar
export_all: Tümünü dışa aktar
+ export_selection: Seçimi dışa aktar
import: İçe aktar
menu_hidden: Menüden gizle
+ moderate: İçerik denetimlerini yönet
newsletter:
new: Yeni bülten
participatory_space_private_user:
new: Yeni katılımcı alanı özel kullanıcısı
per_page: Sayfa başına
+ permissions: İzinleri yönet
restore: Geri yükle
send_me_a_test_email: Bana bir test e-postası gönder
share: Paylaş
+ share_tokens: Bağlantıyı paylaş
+ soft_delete: Çöp kutusuna taşı
user:
new: Yeni yönetici
view_deleted_components: Silinmiş bileşenleri görüntüle
@@ -258,6 +267,8 @@ tr:
edit:
title: Klasörü düzenle
update: Güncelleştirme
+ index:
+ attachment_collections_title: Ek klasörleri
new:
create: yaratmak
title: Yeni dosya
@@ -273,6 +284,8 @@ tr:
edit:
title: Eki düzenle
update: Güncelleştirme
+ index:
+ attachments_title: Ekler
new:
create: Ek oluştur
title: Yeni ek
@@ -293,6 +306,7 @@ tr:
title: Kullanıcıları engelle
new:
action: Hesabı engelle ve uyarı mesjı gönder
+ already_reported_html: Bu işleme devam ederseniz katılımcının tüm içeriklerini de gizleyeceksiniz.
description: Bir kullanıcının engellenmesi, hesabının kullanılamaz hale gelmesine neden olur, gerekçenizde ve kullanıcının engellemesini kaldırmayı düşündüğünüz yollarla ilgili yönergeler sağlayabilirsiniz.
justification: Gerekçe
title: '%{name} Kullanıcısını Engelle'
@@ -338,13 +352,17 @@ tr:
error: Bu bileşeni güncellerken bir hata oluştu.
success: Bileşen başarıyla güncellendi.
visibility_label:
+ menu_hidden: Menü gizli
published: Yayınlanmış
unpublished: Yayınlanmamış
conflicts:
attempts: Girişimler
'false': 'Hayır'
+ index:
+ text: Mevcut kullanıcının e posta adresi, adı veya kullanıcı adıyla ara
managed_user_name: Yönetilen Kullanıcı
solved: Çözüldü
+ title: Doğrulama çakışmaları
transfer:
email: E-Posta
error: Mevcut katılımcıyı yönetilen katılımcıya aktarırken bir sorun oluştu.
@@ -359,11 +377,11 @@ tr:
error: Bu içerik bloğu oluşturulurken bir sorun oluştu.
success: Içerik bloğu başarıyla oluşturuldu.
destroy:
- error: Bu içerik bloğunu silmeye çalişirken bir sorun oluştu.
+ error: Bu içerik bloğunu silmeye çalişirken bir sorun oluştu.
success: İçerik bloğu başariyla silindi.
edit:
active_content_blocks: Etkin içerik blokları
- add: İçerik bloğu ekle
+ add: İçerik bloğu ekle
destroy_confirmation: Bu içerik bloğunu silmek istediğnizden emin misiniz?
inactive_content_blocks: Etkin olmayan içerik blokları
title: Sayfa İçeriği
@@ -420,9 +438,13 @@ tr:
'false': resmileştirilmiş
'true': Resmi değil
participatory_space_private_users:
+ user_invitation_accepted_at_not_null:
+ label: Davet kabul edildi
user_invitation_sent_at_not_null:
+ label: Davet gönderildi
values:
'false': Gönderilmedi
+ 'true': Gönderildi
private_space_eq:
label: Kişisel
values:
@@ -437,6 +459,8 @@ tr:
search_label: Arama
search_placeholder:
name_or_nickname_or_email_cont: '%{collection}''da e-posta, isim veya takma ad ile ara'
+ report_count_eq: Rapor sayısı eşittir
+ title_cont: '%{collection} içinde başlığa göre ara'
user_name_or_user_nickname_or_user_email_cont: '%{collection}''da e-posta, isim veya takma ad ile ara'
state_eq:
label: Durum
@@ -546,6 +570,7 @@ tr:
promotions:
new:
explanation: Yönetilen kullanıcılar standart kullanıcılara yükseltilebilir. Bu, uygulamaya davet edilecekleri anlamına gelir ve onları tekrar taklit edemezsiniz. Davet edilen kullanıcı davetinizi kabul etmek için bir e-posta alacak.
+ new_managed_user_promotion: Yeni yönetilen katılımcı yükseltme işlemi
promote: Desteklemek
menu:
admin_log: Yönetici etkinlik günlüğü
@@ -958,8 +983,8 @@ tr:
never: Asla
new_share_token_button: Yeni erişim linki
share_tokens_help_html: |
- Diğerlerinin bu yayınlanmamış kaynağı görüntüleyebilmesi için bir erişim linki oluşturun ve paylaşın.
- Erişim linkleri sadece kayıtlı kullanıcılar için geçerli olabilir ve gerekirse bir son kullanım tarihi belirlenebilir.
+ Diğerlerinin bu yayınlanmamış kaynağı görüntüleyebilmesi için bir erişim linki oluşturun ve paylaşın.
+ Erişim linkleri sadece kayıtlı kullanıcılar için geçerli olabilir ve gerekirse bir son kullanım tarihi belirlenebilir.
Yeni bir erişim linki paylaşmak için, oluşturduktan sonra "%{clipboard} ikonunu kullanarak linki kopyalayın.
title: '%{name} için erişim linkleri'
new:
@@ -974,10 +999,6 @@ tr:
next_title: Sonraki öğe
previous: Önceki
previous_title: Önceki öğe
- gallery:
- add_images: Resim ekle
- edit_images: Resimleri düzenle
- gallery_legend: Bir resim galerisi ekleyin (İsteğe bağlı)
static_page_topics:
create:
error: Yeni bir konu oluştururken bir hata oluştu.
@@ -1100,6 +1121,8 @@ tr:
area_types: Alan türleri
areas: alanlar
authorization_workflows: Doğrulama yöntemleri
+ dashboard: Gösterge paneli
+ impersonatable_users: Yönetilebilir katılımcılar
impersonations: Kullanıcılar yönetimi
page_topics: Konular
pages: Sayfalar
diff --git a/decidim-admin/config/locales/zh-CN.yml b/decidim-admin/config/locales/zh-CN.yml
index 98828b41c07ba..437d02d683774 100644
--- a/decidim-admin/config/locales/zh-CN.yml
+++ b/decidim-admin/config/locales/zh-CN.yml
@@ -32,7 +32,6 @@ zh-CN:
organization:
alert_color: 警告
badges_enabled: 启用徽章
- comments_max_length: 评论最大长度 (默认值留0)
customize_welcome_notification: 自定义欢迎通知
default_locale: 默认区域设置
description: 描述
@@ -521,10 +520,6 @@ zh-CN:
share_tokens:
actions:
destroy: 删除
- shared:
- gallery:
- add_images: 添加图像
- gallery_legend: 添加图片库 (可选)
static_page_topics:
create:
error: 创建一个新主题时出现问题。
diff --git a/decidim-admin/config/locales/zh-TW.yml b/decidim-admin/config/locales/zh-TW.yml
index 2bb862450dcc4..b411b0b99c93c 100644
--- a/decidim-admin/config/locales/zh-TW.yml
+++ b/decidim-admin/config/locales/zh-TW.yml
@@ -42,7 +42,6 @@ zh-TW:
alert_color: 警告
available_authorizations: 可用認證方式
badges_enabled: 啟用勳章
- comments_max_length: 留言字數上限 (0 表示使用預設)
customize_welcome_notification: 自訂歡迎通知
default_locale: 預設語言
description: 說明
@@ -774,11 +773,6 @@ zh-TW:
share_tokens:
actions:
destroy: 刪除
- shared:
- gallery:
- add_images: 添加圖案
- edit_images: 編輯圖片
- gallery_legend: 新增圖片庫(可選)
static_page_topics:
create:
error: 建立新主題時發生問題。
diff --git a/decidim-admin/lib/decidim/admin/version.rb b/decidim-admin/lib/decidim/admin/version.rb
index 3ea55a3e18291..13dea8e1b64b1 100644
--- a/decidim-admin/lib/decidim/admin/version.rb
+++ b/decidim-admin/lib/decidim/admin/version.rb
@@ -4,7 +4,7 @@ module Decidim
# This holds the decidim-admin version.
module Admin
def self.version
- "0.31.4"
+ "0.31.7"
end
end
end
diff --git a/decidim-admin/spec/commands/decidim/admin/create_taxonomy_filter_spec.rb b/decidim-admin/spec/commands/decidim/admin/create_taxonomy_filter_spec.rb
index 22256d74cb08c..37d10b614082d 100644
--- a/decidim-admin/spec/commands/decidim/admin/create_taxonomy_filter_spec.rb
+++ b/decidim-admin/spec/commands/decidim/admin/create_taxonomy_filter_spec.rb
@@ -72,13 +72,18 @@ module Decidim::Admin
.with(
Decidim::TaxonomyFilter,
form.current_user,
- hash_including(:root_taxonomy_id, :name, :internal_name, :filter_items, :participatory_space_manifests),
+ hash_including(:root_taxonomy_id, :name, :internal_name, :participatory_space_manifests),
hash_including(extra: hash_including(:filter_items_count, :taxonomy_name))
)
.and_call_original
expect { subject.call }.to change(Decidim::ActionLog, :count)
end
+
+ it "keeps filter_items_count counter cache accurate" do
+ subject.call
+ expect(last_taxonomy_filter.filter_items_count).to eq(taxonomy_items.size)
+ end
end
end
end
diff --git a/decidim-admin/spec/commands/decidim/admin/update_component_spec.rb b/decidim-admin/spec/commands/decidim/admin/update_component_spec.rb
index 3f2bafabe88f4..32aa8b489d335 100644
--- a/decidim-admin/spec/commands/decidim/admin/update_component_spec.rb
+++ b/decidim-admin/spec/commands/decidim/admin/update_component_spec.rb
@@ -6,7 +6,7 @@ module Decidim::Admin
describe UpdateComponent do
let!(:participatory_process) { create(:participatory_process, :with_steps) }
let(:step) { participatory_process.steps.first }
- let!(:component) { create(:component, :with_one_step, participatory_space: participatory_process) }
+ let!(:component) { create(:component, :with_one_step, participatory_space: participatory_process, weight: 0) }
let(:manifest) { component.manifest }
let(:user) { create(:user) }
diff --git a/decidim-admin/spec/commands/decidim/admin/update_taxonomy_filter_spec.rb b/decidim-admin/spec/commands/decidim/admin/update_taxonomy_filter_spec.rb
index 6301c54562a4c..f460f29aef7af 100644
--- a/decidim-admin/spec/commands/decidim/admin/update_taxonomy_filter_spec.rb
+++ b/decidim-admin/spec/commands/decidim/admin/update_taxonomy_filter_spec.rb
@@ -61,7 +61,7 @@ module Decidim::Admin
.with(
taxonomy_filter,
form.current_user,
- hash_including(:name, :internal_name, :filter_items, :participatory_space_manifests),
+ hash_including(:name, :internal_name, :participatory_space_manifests),
hash_including(extra: hash_including(:filter_items_count, :taxonomy_name))
)
.and_call_original
@@ -69,5 +69,59 @@ module Decidim::Admin
expect { subject.call }.to change(Decidim::ActionLog, :count)
end
end
+
+ context "when syncing filter items" do
+ let!(:existing_items) { create_list(:taxonomy, 3, parent: root_taxonomy, organization:) }
+ let!(:taxonomy_filter) do
+ filter = create(:taxonomy_filter, root_taxonomy:)
+ existing_items.each { |item| create(:taxonomy_filter_item, taxonomy_filter: filter, taxonomy_item: item) }
+ filter
+ end
+ let(:new_item) { create(:taxonomy, parent: root_taxonomy, organization:) }
+
+ context "with a partial change (one removed, one added)" do
+ let(:taxonomies) { [existing_items[0], existing_items[1], new_item] }
+
+ it "removes only deselected items and inserts only newly selected items" do
+ subject.call
+ expect(taxonomy_filter.reload.filter_items.pluck(:taxonomy_item_id))
+ .to contain_exactly(existing_items[0].id, existing_items[1].id, new_item.id)
+ end
+
+ it "keeps filter_items_count counter cache accurate" do
+ subject.call
+ expect(taxonomy_filter.reload.filter_items_count).to eq(3)
+ end
+
+ it "keeps per-taxonomy filter_items_count counters accurate" do
+ subject.call
+ expect(existing_items[0].reload.filter_items_count).to eq(1)
+ expect(existing_items[2].reload.filter_items_count).to eq(0)
+ expect(new_item.reload.filter_items_count).to eq(1)
+ end
+ end
+
+ context "when no items changed" do
+ let(:taxonomies) { existing_items }
+
+ it "does not recreate existing filter items" do
+ original_ids = taxonomy_filter.filter_items.pluck(:id)
+ subject.call
+ expect(taxonomy_filter.filter_items.reload.pluck(:id)).to match_array(original_ids)
+ end
+ end
+
+ context "with a large filter" do
+ let(:existing_items) { create_list(:taxonomy, 50, parent: root_taxonomy, organization:) }
+ let(:taxonomies) { existing_items + [new_item] }
+
+ it "preserves existing filter item rows when adding new ones" do
+ original_ids = taxonomy_filter.filter_items.pluck(:id)
+ subject.call
+ preserved_ids = taxonomy_filter.filter_items.reload.where(taxonomy_item_id: existing_items.map(&:id)).pluck(:id)
+ expect(preserved_ids).to match_array(original_ids)
+ end
+ end
+ end
end
end
diff --git a/decidim-admin/spec/controllers/block_user_controller_spec.rb b/decidim-admin/spec/controllers/block_user_controller_spec.rb
index c4c7e3ebec5cb..7315471891700 100644
--- a/decidim-admin/spec/controllers/block_user_controller_spec.rb
+++ b/decidim-admin/spec/controllers/block_user_controller_spec.rb
@@ -61,6 +61,28 @@ module Admin
end
end
+ describe "new" do
+ context "when user is found" do
+ let!(:user) { create(:user, :confirmed, organization:) }
+
+ it "renders new template" do
+ get :new, params: { user_id: user.id }
+
+ expect(subject).to render_template(:new)
+ end
+ end
+
+ context "when user is not found" do
+ it "sets flash alert message and redirects back" do
+ get :new, params: { user_id: 999_999_999 }
+
+ expect(flash[:alert]).to be_present
+ expect(flash[:alert]).to eq("No user found")
+ expect(response).to redirect_to(officializations_path)
+ end
+ end
+ end
+
describe "block" do
shared_examples "blocking a user" do
context "when having a user" do
diff --git a/decidim-admin/spec/controllers/officializations_controller_spec.rb b/decidim-admin/spec/controllers/officializations_controller_spec.rb
new file mode 100644
index 0000000000000..fe6941237d4ba
--- /dev/null
+++ b/decidim-admin/spec/controllers/officializations_controller_spec.rb
@@ -0,0 +1,65 @@
+# frozen_string_literal: true
+
+require "spec_helper"
+
+module Decidim
+ module Admin
+ describe OfficializationsController do
+ routes { Decidim::Admin::Engine.routes }
+ render_views
+
+ let(:organization) { create(:organization) }
+ let(:current_user) { create(:user, :admin, :confirmed, organization:) }
+
+ before do
+ request.env["decidim.current_organization"] = organization
+ sign_in current_user, scope: :user
+ end
+
+ describe "new" do
+ context "when user is not found" do
+ it "redirects to officializations path with alert" do
+ get :new, params: { user_id: 999_999_999 }
+
+ expect(flash[:alert]).to eq(I18n.t("officializations.create.no_user_found", scope: "decidim.admin"))
+ expect(response).to redirect_to(officializations_path)
+ end
+ end
+
+ context "when user is found" do
+ let(:user) { create(:user, :confirmed, organization:) }
+
+ it "renders the new with form with success" do
+ get :new, params: { user_id: user.id }
+
+ expect(response).to have_http_status(:ok)
+ expect(assigns(:form)).to be_a(Decidim::Admin::OfficializationForm)
+ expect(assigns(:form).user).to eq(user)
+ end
+ end
+ end
+
+ describe "show_email" do
+ render_views
+
+ context "when user is not found" do
+ it "sets a not found message" do
+ get :show_email, params: { user_id: 999_999_999 }
+
+ expect(response.body).to have_content("No user found")
+ end
+ end
+
+ context "when user is found" do
+ let!(:user) { create(:user, :confirmed, organization:) }
+
+ it "renders show_email template" do
+ get :show_email, params: { user_id: user.id }
+ expect(subject).to render_template(:show_email)
+ expect(response.body).to have_content(user.email)
+ end
+ end
+ end
+ end
+ end
+end
diff --git a/decidim-admin/spec/shared/manage_impersonations_examples.rb b/decidim-admin/spec/shared/manage_impersonations_examples.rb
index fc63420ace45b..e38d5259fc659 100644
--- a/decidim-admin/spec/shared/manage_impersonations_examples.rb
+++ b/decidim-admin/spec/shared/manage_impersonations_examples.rb
@@ -264,9 +264,11 @@
fill_in :managed_user_promotion_email, with: "foo@example.org"
end
- perform_enqueued_jobs { click_on "Promote" }
+ perform_enqueued_jobs do
+ click_on "Promote"
+ expect(page).to have_content("The managed participant has been successfully promoted.")
+ end
- expect(page).to have_content("successfully")
expect(page).to have_content(managed_user.name)
logout :user
@@ -357,6 +359,7 @@ def impersonate(user, reason: nil)
end
fill_in_the_impersonation_form("123456789X", reason:)
+ expect(page).to have_content("You are managing the participant") if reason && reason.length.positive?
end
def simulate_session_expiration
diff --git a/decidim-admin/spec/system/admin_manages_conflicts_spec.rb b/decidim-admin/spec/system/admin_manages_conflicts_spec.rb
index f6a1ac729a2e2..ea3ae1b4536c7 100644
--- a/decidim-admin/spec/system/admin_manages_conflicts_spec.rb
+++ b/decidim-admin/spec/system/admin_manages_conflicts_spec.rb
@@ -20,6 +20,7 @@
click_on "Participants"
click_on "Verification conflicts"
click_on "Transfer"
+ expect(page).to have_css(".card-title", text: "Transfer User")
end
context "when resolving a conflict" do
@@ -47,6 +48,7 @@
end
it "the email of the managed user is replaced with the email passed by the form" do
+ expect(page).to have_content("The current transfer has been successfully completed.")
expect(managed_user.reload.email).to eq("new_user@example.org")
end
end
@@ -59,6 +61,7 @@
end
it "the email of the managed user is replaced with the email of the conflictive one" do
+ expect(page).to have_content("The current transfer has been successfully completed.")
expect(managed_user.reload.email).to eq("conflictive@example.org")
end
end
@@ -71,6 +74,7 @@
end
it "the managed user keeps its email" do
+ expect(page).to have_content("The current transfer has been successfully completed.")
expect(managed_user.reload.email).to eq("managed@example.org")
end
end
diff --git a/decidim-admin/spec/system/admin_manages_newsletters_spec.rb b/decidim-admin/spec/system/admin_manages_newsletters_spec.rb
index 04520b06392c1..656d9192282eb 100644
--- a/decidim-admin/spec/system/admin_manages_newsletters_spec.rb
+++ b/decidim-admin/spec/system/admin_manages_newsletters_spec.rb
@@ -29,7 +29,7 @@
end
describe "creates and previews a newsletter" do
- it "allows a newsletter to be created" do
+ before do
visit decidim_admin.newsletters_path
find(".button.new").click
@@ -73,7 +73,9 @@
ca: "Hola, %{name}! Contingut rellevant."
)
end
+ end
+ it "allows a newsletter to be created" do
dynamically_attach_file(:newsletter_images_main_image, Decidim::Dev.asset("city2.jpeg"))
within ".new_newsletter" do
@@ -86,6 +88,16 @@
visit decidim_admin.root_path
expect(page).to have_content("created the #{translated(attributes[:subject])} newsletter")
end
+
+ it "displays the 'Resolution is too large' error message when image is invalid" do
+ dynamically_attach_file(:newsletter_images_main_image, Decidim::Dev.asset("8001x4000.png"))
+
+ within ".new_newsletter" do
+ find("*[type=submit]").click
+ end
+
+ expect(page).to have_text("File resolution is too large")
+ end
end
describe "previews a newsletter" do
@@ -257,7 +269,14 @@ def select_verification_type(types)
within(".newsletter_deliver") do
choose("Send to verified users")
- select_verification_type(verification_type_first.name) # Одна авторизация передается как строка
+ end
+
+ within "#recipients_count" do
+ expect(page).to have_content(0)
+ end
+
+ within(".newsletter_deliver") do
+ select_verification_type(verification_type_first.name) # One authorization is passed as a string
end
within "#recipients_count" do
@@ -293,7 +312,14 @@ def select_verification_type(types)
within(".newsletter_deliver") do
choose("Send to verified users")
- select_verification_type([verification_type_first.name, verification_type_last.name]) # Несколько авторизаций передаются как массив
+ end
+
+ within "#recipients_count" do
+ expect(page).to have_content(0)
+ end
+
+ within(".newsletter_deliver") do
+ select_verification_type([verification_type_first.name, verification_type_last.name]) # Multiple authorizations are passed as an array
end
within "#recipients_count" do
diff --git a/decidim-admin/spec/system/admin_manages_officializations_spec.rb b/decidim-admin/spec/system/admin_manages_officializations_spec.rb
index ffd7d08504417..3340f84e3cffd 100644
--- a/decidim-admin/spec/system/admin_manages_officializations_spec.rb
+++ b/decidim-admin/spec/system/admin_manages_officializations_spec.rb
@@ -48,6 +48,75 @@
it_behaves_like "paginating a collection"
end
+ describe "sorting participants by creation date" do
+ let!(:newest_user) { create(:user, :confirmed, name: "Newest user", organization:, created_at: 1.day.from_now) }
+ let!(:old_user) { create(:user, :confirmed, name: "Old user", organization:, created_at: 3.weeks.ago) }
+ let!(:recent_user) { create(:user, :confirmed, name: "Recent user", organization:, created_at: 1.week.ago) }
+
+ before do
+ within_admin_sidebar_menu { click_on "Participants" }
+ end
+
+ it "sorts by created_at descending when 'Created at' is clicked" do
+ within "table thead" do
+ click_on "Created At"
+ end
+
+ names = page.all("table tbody tr td:first-child").map(&:text)
+ expect(names.index("Newest user")).to be < names.index("Recent user")
+ expect(names.index("Recent user")).to be < names.index("Old user")
+ end
+
+ it "sorts by created_at ascending when clicked again" do
+ within "table thead" do
+ click_on "Created At"
+ click_on "Created At"
+ end
+
+ names = page.all("table tbody tr td:first-child").map(&:text)
+ expect(names.index("Old user")).to be < names.index("Recent user")
+ expect(names.index("Recent user")).to be < names.index("Newest user")
+ end
+ end
+
+ describe "sorting participants by report count" do
+ let!(:user_mid) { create(:user, :confirmed, name: "Mid reports", organization:) }
+ let!(:user_no_moderation) { create(:user, :confirmed, name: "No moderation", organization:) }
+ let!(:user_zero) { create(:user, :confirmed, name: "Zero reports", organization:) }
+ let!(:user_high) { create(:user, :confirmed, name: "High reports", organization:) }
+
+ before do
+ create(:user_moderation, user: user_mid, report_count: 1)
+ create(:user_moderation, user: user_zero, report_count: 0)
+ create(:user_moderation, user: user_high, report_count: 10)
+ within_admin_sidebar_menu { click_on "Participants" }
+ end
+
+ it "sorts by report count descending when 'Reports' is clicked" do
+ within "table thead" do
+ click_on "Reports"
+ end
+
+ names = page.all("table tbody tr td:first-child").map(&:text)
+ expect(names.index("High reports")).to be < names.index("Mid reports")
+ expect(names.index("Mid reports")).to be < names.index("Zero reports")
+ expect(names.index("Mid reports")).to be < names.index("No moderation")
+ end
+
+ it "treats users without a moderation row as zero reports" do
+ visit "#{current_path}?q%5Bs%5D=user_moderation_report_count+asc"
+
+ names = page.all("table tbody tr td:first-child").map(&:text)
+ no_moderation_idx = names.index("No moderation")
+ zero_idx = names.index("Zero reports")
+ mid_idx = names.index("Mid reports")
+ high_idx = names.index("High reports")
+
+ expect([no_moderation_idx, zero_idx].max).to be < mid_idx
+ expect(mid_idx).to be < high_idx
+ end
+ end
+
describe "blocked users" do
let!(:user) { create(:user, :blocked, organization:) }
diff --git a/decidim-admin/spec/system/admin_manages_organization_homepage_spec.rb b/decidim-admin/spec/system/admin_manages_organization_homepage_spec.rb
index 2d38cd12f2675..ca9d6bf66491f 100644
--- a/decidim-admin/spec/system/admin_manages_organization_homepage_spec.rb
+++ b/decidim-admin/spec/system/admin_manages_organization_homepage_spec.rb
@@ -29,32 +29,115 @@
end
end
- context "when editing a persisted content block" do
- let!(:content_block) { create(:content_block, organization:, manifest_name: :hero, scope_name: :homepage) }
+ context "when editing settings of content blocks" do
+ context "and edits hero and cta settings" do
+ let!(:content_block) { create(:content_block, organization:, manifest_name: :hero, scope_name: :homepage) }
+
+ it "updates the settings of the content block" do
+ visit decidim_admin.edit_organization_homepage_content_block_path(content_block)
+
+ fill_in(:content_block_settings_welcome_text_en, with: "Custom welcome text!")
+ fill_in(:content_block_settings_cta_button_text_en, with: "Custom button!")
+ fill_in(:content_block_settings_cta_button_path_en, with: "http://example.org")
+
+ click_on "Update"
+ sleep 1
+ visit decidim.root_path
+ expect(page).to have_text("Custom welcome text!")
+ expect(page).to have_link("Custom button!", href: "http://example.org")
+ end
- it "updates the settings of the content block" do
- visit decidim_admin.edit_organization_homepage_content_block_path(content_block)
+ it "updates the images of the content block" do
+ visit decidim_admin.edit_organization_homepage_content_block_path(content_block)
- fill_in(
- :content_block_settings_welcome_text_en,
- with: "Custom welcome text!"
- )
+ dynamically_attach_file(:content_block_images_background_image, Decidim::Dev.asset("city2.jpeg"))
- click_on "Update"
- sleep 1
- visit decidim.root_path
- expect(page).to have_content("Custom welcome text!")
+ click_on "Update"
+ sleep 1
+ visit decidim.root_path
+ expect(page.html).to include("city2.jpeg")
+ end
+
+ it "displays the 'Resolution is too large' error message when image is invalid" do
+ visit decidim_admin.edit_organization_homepage_content_block_path(content_block)
+
+ dynamically_attach_file(:content_block_images_background_image, Decidim::Dev.asset("8001x4000.png"))
+
+ click_on "Update"
+ sleep 1
+
+ expect(page).to have_text("File resolution is too large")
+ end
end
- it "updates the images of the content block" do
- visit decidim_admin.edit_organization_homepage_content_block_path(content_block)
+ context "and edits highlighted content banner settings" do
+ let!(:content_block) { create(:content_block, organization:, manifest_name: :highlighted_content_banner, scope_name: :homepage) }
- dynamically_attach_file(:content_block_images_background_image, Decidim::Dev.asset("city2.jpeg"))
+ it "updates the settings of the content block" do
+ visit decidim_admin.edit_organization_homepage_content_block_path(content_block)
- click_on "Update"
- sleep 1
- visit decidim.root_path
- expect(page.html).to include("city2.jpeg")
+ fill_in(:content_block_settings_title_en, with: "Custom title text!")
+ fill_in(:content_block_settings_action_button_title_en, with: "Custom action title!")
+ fill_in(:content_block_settings_action_button_subtitle_en, with: "Custom action subtitle!")
+ fill_in(:content_block_settings_action_button_url, with: "http://example.org")
+
+ fill_in_i18n_editor :content_block_settings_short_description, "#content_block-settings--short_description-tabs",
+ en: "
The Short description
"
+
+ click_on "Update"
+ sleep 1
+ visit decidim.root_path
+ expect(page).to have_text("Custom title text!")
+ expect(page).to have_text("The Short description")
+ expect(page).to have_link("Custom action subtitle!", href: "http://example.org")
+ end
+
+ it "updates the images of the content block" do
+ visit decidim_admin.edit_organization_homepage_content_block_path(content_block)
+
+ fill_in(:content_block_settings_title_en, with: "Custom title text!")
+ fill_in(:content_block_settings_action_button_title_en, with: "Custom action title!")
+ fill_in(:content_block_settings_action_button_subtitle_en, with: "Custom action subtitle!")
+ fill_in(:content_block_settings_action_button_url, with: "http://example.org")
+
+ fill_in_i18n_editor :content_block_settings_short_description, "#content_block-settings--short_description-tabs",
+ en: "
The Short description
"
+
+ dynamically_attach_file(:content_block_images_background_image, Decidim::Dev.asset("city2.jpeg"))
+
+ click_on "Update"
+
+ sleep 1
+ visit decidim.root_path
+ expect(page.html).to include("city2.jpeg")
+ end
+
+ it "displays the 'Resolution is too large' error message when image is invalid" do
+ visit decidim_admin.edit_organization_homepage_content_block_path(content_block)
+
+ fill_in(:content_block_settings_action_button_url, with: "http://example.org")
+
+ dynamically_attach_file(:content_block_images_background_image, Decidim::Dev.asset("8001x4000.png"))
+
+ click_on "Update"
+ sleep 1
+
+ expect(page).to have_text("File resolution is too large")
+ end
+ end
+
+ context "and edits html settings" do
+ let!(:content_block) { create(:content_block, organization:, manifest_name: :html, scope_name: :homepage) }
+
+ it "updates the settings of the content block" do
+ visit decidim_admin.edit_organization_homepage_content_block_path(content_block)
+
+ fill_in(:content_block_settings_html_content_en, with: "Custom HTML text!")
+ click_on "Update"
+ sleep 1
+ visit decidim.root_path
+ expect(page).to have_text("Custom HTML text!")
+ end
end
end
@@ -75,4 +158,51 @@
expect(page).to have_text("Active content blocks")
end
end
+
+ context "when publishing a content block via admin UI" do
+ let!(:hero_block) { create(:content_block, organization:, manifest_name: :hero, scope_name: :homepage, weight: nil, published_at: nil) }
+
+ it "shows published content block on the homepage" do
+ visit decidim_admin.edit_organization_homepage_path
+ page.refresh
+
+ within ".edit_content_blocks" do
+ within ".js-list-available" do
+ expect(page).to have_css("li", text: "Hero image")
+ end
+
+ first("ul.js-list-available li").drag_to(find("ul.js-list-actives"))
+ sleep 2
+ end
+
+ expect(hero_block.reload.published_at).not_to be_nil
+
+ visit decidim.root_path
+ expect(page).to have_css("[id^=hero]")
+ end
+ end
+
+ context "when unpublishing a content block via admin UI" do
+ let!(:hero_block) { create(:content_block, organization:, manifest_name: :hero, scope_name: :homepage, weight: 1, published_at: Time.current) }
+ let!(:extra_block) { create(:content_block, organization:, manifest_name: :sub_hero, scope_name: :homepage, weight: 2, published_at: Time.current) }
+
+ it "does not show unpublished content block on the homepage" do
+ visit decidim_admin.edit_organization_homepage_path
+ page.refresh
+
+ within ".edit_content_blocks" do
+ within ".js-list-actives" do
+ expect(page).to have_css("li", text: "Hero image")
+ end
+
+ first("ul.js-list-actives li").drag_to(find("ul.js-list-available"))
+ sleep 2
+ end
+
+ expect(hero_block.reload.published_at).to be_nil
+
+ visit decidim.root_path
+ expect(page).to have_no_css("[id^=hero]")
+ end
+ end
end
diff --git a/decidim-admin/spec/system/admin_manages_static_page_content_blocks_spec.rb b/decidim-admin/spec/system/admin_manages_static_page_content_blocks_spec.rb
index e2271ff235261..a84974507453f 100644
--- a/decidim-admin/spec/system/admin_manages_static_page_content_blocks_spec.rb
+++ b/decidim-admin/spec/system/admin_manages_static_page_content_blocks_spec.rb
@@ -24,6 +24,7 @@
find("a", text: "Summary").click
end
end
+ expect(page).to have_content("Content block successfully created.")
expect(Decidim::ContentBlock.count).to eq 1
end
@@ -42,6 +43,7 @@
find("a", text: "Section").click
end
end
+ expect(page).to have_content("Content block successfully created.")
end
end.to change(Decidim::ContentBlock, :count).by number_of_content_blocks
end
@@ -91,6 +93,7 @@
en: "
Custom privacy policy summary text!
"
click_on "Update"
+ expect(page).to have_css("#static_page_title_en:focus")
visit decidim.page_path(tos_page)
expect(page).to have_content("Custom privacy policy summary text!")
diff --git a/decidim-ai/lib/decidim/ai/version.rb b/decidim-ai/lib/decidim/ai/version.rb
index 4d3212226e744..da8c7e2689265 100644
--- a/decidim-ai/lib/decidim/ai/version.rb
+++ b/decidim-ai/lib/decidim/ai/version.rb
@@ -3,7 +3,7 @@
module Decidim
module Ai
def self.version
- "0.31.4"
+ "0.31.7"
end
end
end
diff --git a/decidim-ai/spec/event_handlers/debates/user_creates_debate_spec.rb b/decidim-ai/spec/event_handlers/debates/user_creates_debate_spec.rb
index e7e0283f295ee..914218070383e 100644
--- a/decidim-ai/spec/event_handlers/debates/user_creates_debate_spec.rb
+++ b/decidim-ai/spec/event_handlers/debates/user_creates_debate_spec.rb
@@ -10,8 +10,8 @@
title:,
description:,
taxonomizations:,
- add_documents: attachments,
- documents: [],
+ add_attachments: attachments,
+ attachments: [],
current_user: author,
current_component: component,
current_organization: organization
diff --git a/decidim-api/app/models/concerns/decidim/api/user_extension.rb b/decidim-api/app/models/concerns/decidim/api/user_extension.rb
new file mode 100644
index 0000000000000..37889a92b4718
--- /dev/null
+++ b/decidim-api/app/models/concerns/decidim/api/user_extension.rb
@@ -0,0 +1,19 @@
+# frozen_string_literal: true
+
+require "active_support/concern"
+
+module Decidim
+ module Api
+ # This concern adds the JWT authenticable strategy for the User models to
+ # allow regular users to sign in through the API (if configured from the
+ # system panel). Allows normal users to utilize the API e.g. through mobile
+ # applications.
+ module UserExtension
+ extend ActiveSupport::Concern
+
+ included do
+ devise :jwt_authenticatable, jwt_revocation_strategy: Decidim::Api::JwtDenylist
+ end
+ end
+ end
+end
diff --git a/decidim-api/config/initializers/devise.rb b/decidim-api/config/initializers/devise.rb
deleted file mode 100644
index 0df184e7c0b96..0000000000000
--- a/decidim-api/config/initializers/devise.rb
+++ /dev/null
@@ -1,26 +0,0 @@
-# frozen_string_literal: true
-
-Devise.jwt do |jwt|
- # In order to be compatible with the JWT authentication, we need to set these
- # configurations. JWT secret is being used by the devise-jwt to sign the
- # tokens, once the user authenticated. The token signature ensures the
- # validity of the token and that the user has not tampered with it. If the
- # secret is not set correctly, the API authentication does not work.
- #
- # Note that the `dispatch_requests` and `revocation_requests` paths are the
- # full paths because we do not want the JWT tokens to be dispatched or revoked
- # during normal Decidim user sign ins or sign outs. This also requires a small
- # override to `Warden::JWTAuth` which is defined at
- # `decidim-api/lib/warden/jwt_auth/decidim_overrides.rb`.
- jwt.secret = Decidim::Env.new("DECIDIM_API_JWT_SECRET").value
- next unless jwt.secret
-
- jwt.dispatch_requests = [
- ["POST", %r{^/api/sign_in$}]
- ]
- jwt.revocation_requests = [
- ["DELETE", %r{^/api/sign_out$}]
- ]
- jwt.expiration_time = Decidim::Api.jwt_expires_in.minutes.to_i
- jwt.aud_header = "X_JWT_AUD"
-end
diff --git a/decidim-api/config/locales/de.yml b/decidim-api/config/locales/de.yml
index 346523bb60ba7..b0d83b1855b94 100644
--- a/decidim-api/config/locales/de.yml
+++ b/decidim-api/config/locales/de.yml
@@ -1 +1,8 @@
+---
de:
+ decidim:
+ api:
+ errors:
+ introspection_disabled: Introspection ist für diese Anfrage deaktiviert
+ recursion_limit_exceeded_error: In der Abfrage wurden zu viele Rekursionen festgestellt
+ too_many_aliases_error: Es wurden zu viele Aliase verwendet. Sie haben %{size} Aliase verwendet, erlaubt sind jedoch nur %{limit}.
diff --git a/decidim-api/lib/decidim/api/engine.rb b/decidim-api/lib/decidim/api/engine.rb
index e1a2c5c559bd4..0d13ec508b350 100644
--- a/decidim-api/lib/decidim/api/engine.rb
+++ b/decidim-api/lib/decidim/api/engine.rb
@@ -41,6 +41,45 @@ class Engine < ::Rails::Engine
end
end
+ initializer "decidim_api.devise", before: "add_routing_paths" do |app|
+ config.to_prepare do
+ Decidim::User.include Decidim::Api::UserExtension
+ end
+
+ # Required for the development environment because otherwise the JWT
+ # authentication strategy would be lost during code reloads.
+ app.reloader.after_class_unload do
+ Decidim::User.include Decidim::Api::UserExtension
+ end
+ end
+
+ initializer "decidim_api.devise_jwt", after: "devise.secret_key" do
+ Devise.jwt do |jwt|
+ # In order to be compatible with the JWT authentication, we need to set these
+ # configurations. JWT secret is being used by the devise-jwt to sign the
+ # tokens, once the user authenticated. The token signature ensures the
+ # validity of the token and that the user has not tampered with it. If the
+ # secret is not set correctly, the API authentication does not work.
+ #
+ # Note that the `dispatch_requests` and `revocation_requests` paths are the
+ # full paths because we do not want the JWT tokens to be dispatched or revoked
+ # during normal Decidim user sign ins or sign outs. This also requires a small
+ # override to `Warden::JWTAuth` which is defined at
+ # `decidim-api/lib/warden/jwt_auth/decidim_overrides.rb`.
+ jwt.secret = Decidim::Env.new("DECIDIM_API_JWT_SECRET").value || Devise.secret_key
+ raise "Please define the secret key for Devise" unless jwt.secret
+
+ jwt.dispatch_requests = [
+ ["POST", %r{^/api/sign_in$}]
+ ]
+ jwt.revocation_requests = [
+ ["DELETE", %r{^/api/sign_out$}]
+ ]
+ jwt.expiration_time = Decidim::Api.jwt_expires_in.minutes.to_i
+ jwt.aud_header = "X_JWT_AUD"
+ end
+ end
+
initializer "decidim_api.data_migrate", after: "decidim_core.data_migrate" do
DataMigrate.configure do |config|
config.data_migrations_path << root.join("db/data").to_s
diff --git a/decidim-api/lib/decidim/api/version.rb b/decidim-api/lib/decidim/api/version.rb
index b4eb28489d7ab..43d5f2fa4c67e 100644
--- a/decidim-api/lib/decidim/api/version.rb
+++ b/decidim-api/lib/decidim/api/version.rb
@@ -4,7 +4,7 @@ module Decidim
# This holds the decidim-api version.
module Api
def self.version
- "0.31.4"
+ "0.31.7"
end
end
end
diff --git a/decidim-assemblies/app/commands/decidim/assemblies/admin/duplicate_assembly.rb b/decidim-assemblies/app/commands/decidim/assemblies/admin/duplicate_assembly.rb
index 6da6c274bf219..bc8226bdf9ec0 100644
--- a/decidim-assemblies/app/commands/decidim/assemblies/admin/duplicate_assembly.rb
+++ b/decidim-assemblies/app/commands/decidim/assemblies/admin/duplicate_assembly.rb
@@ -29,8 +29,8 @@ def call
Assembly.transaction do
duplicate_assembly
duplicate_assembly_attachments
+ duplicate_landing_page_blocks
duplicate_assembly_components if @form.duplicate_components?
- duplicate_landing_page_blocks if @form.duplicate_landing_page_blocks?
end
end
diff --git a/decidim-assemblies/app/forms/decidim/assemblies/admin/assembly_duplicate_form.rb b/decidim-assemblies/app/forms/decidim/assemblies/admin/assembly_duplicate_form.rb
index c8aa7bebdb895..220312fd3b264 100644
--- a/decidim-assemblies/app/forms/decidim/assemblies/admin/assembly_duplicate_form.rb
+++ b/decidim-assemblies/app/forms/decidim/assemblies/admin/assembly_duplicate_form.rb
@@ -15,7 +15,6 @@ class AssemblyDuplicateForm < Form
attribute :slug, String
attribute :duplicate_components, Boolean
- attribute :duplicate_landing_page_blocks, Boolean
validates :slug, presence: true, format: { with: Decidim::Assembly.slug_format }
validates :title, translatable_presence: true
@@ -24,7 +23,7 @@ class AssemblyDuplicateForm < Form
private
def slug_uniqueness
- return unless OrganizationAssemblies.new(current_organization).query.where(slug:).where.not(id:).any?
+ return unless OrganizationAssemblies.new(current_organization).query.with_deleted.where(slug:).where.not(id:).any?
errors.add(:slug, :taken)
end
diff --git a/decidim-assemblies/app/forms/decidim/assemblies/admin/assembly_form.rb b/decidim-assemblies/app/forms/decidim/assemblies/admin/assembly_form.rb
index 654693398d58d..fbb7201e9b483 100644
--- a/decidim-assemblies/app/forms/decidim/assemblies/admin/assembly_form.rb
+++ b/decidim-assemblies/app/forms/decidim/assemblies/admin/assembly_form.rb
@@ -119,6 +119,7 @@ def organization_assemblies
def slug_uniqueness
return unless organization_assemblies
+ .with_deleted
.where(slug:)
.where.not(id: context[:assembly_id])
.any?
diff --git a/decidim-assemblies/app/forms/decidim/assemblies/admin/assembly_import_form.rb b/decidim-assemblies/app/forms/decidim/assemblies/admin/assembly_import_form.rb
index 3e7aebabedcc4..ba117a89f2056 100644
--- a/decidim-assemblies/app/forms/decidim/assemblies/admin/assembly_import_form.rb
+++ b/decidim-assemblies/app/forms/decidim/assemblies/admin/assembly_import_form.rb
@@ -74,7 +74,7 @@ def i18n_valid_mime_types_text
private
def slug_uniqueness
- return unless OrganizationAssemblies.new(current_organization).query.where(slug:).where.not(id:).any?
+ return unless OrganizationAssemblies.new(current_organization).query.with_deleted.where(slug:).where.not(id:).any?
errors.add(:slug, :taken)
end
diff --git a/decidim-assemblies/app/helpers/decidim/assemblies/assemblies_helper.rb b/decidim-assemblies/app/helpers/decidim/assemblies/assemblies_helper.rb
index ad43eb1b23ee6..535e2a433d8de 100644
--- a/decidim-assemblies/app/helpers/decidim/assemblies/assemblies_helper.rb
+++ b/decidim-assemblies/app/helpers/decidim/assemblies/assemblies_helper.rb
@@ -30,7 +30,7 @@ def assembly_nav_items(participatory_space)
)
] + components.map do |component|
{
- name: decidim_escape_translated(component.name),
+ name: translated_attribute(component.name),
url: main_component_path(component),
active: is_active_link?(main_component_path(component), :inclusive)
}
diff --git a/decidim-assemblies/app/serializers/decidim/assemblies/assembly_importer.rb b/decidim-assemblies/app/serializers/decidim/assemblies/assembly_importer.rb
index 8f7d7ebb4b2a0..b05f03f108278 100644
--- a/decidim-assemblies/app/serializers/decidim/assemblies/assembly_importer.rb
+++ b/decidim-assemblies/app/serializers/decidim/assemblies/assembly_importer.rb
@@ -109,8 +109,8 @@ def import_folders_and_attachments(attachments)
end
end
- unless attachments["attachment_collections"].empty?
- attachments["attachment_collections"].map do |collection|
+ if attachments["attachment_collections"].present?
+ attachments["attachment_collections"]&.map do |collection|
Decidim.traceability.perform_action!("create", AttachmentCollection, @user) do
create_attachment_collection(collection)
end
diff --git a/decidim-assemblies/app/views/decidim/assemblies/admin/assemblies/_assembly_row.html.erb b/decidim-assemblies/app/views/decidim/assemblies/admin/assemblies/_assembly_row.html.erb
index 98821596c13c4..87d38f9d5abf2 100644
--- a/decidim-assemblies/app/views/decidim/assemblies/admin/assemblies/_assembly_row.html.erb
+++ b/decidim-assemblies/app/views/decidim/assemblies/admin/assemblies/_assembly_row.html.erb
@@ -146,7 +146,7 @@
<% if assembly.published? %>
diff --git a/decidim-assemblies/config/locales/ca-IT.yml b/decidim-assemblies/config/locales/ca-IT.yml
index 44e11d2cf4c46..ada87716dab62 100644
--- a/decidim-assemblies/config/locales/ca-IT.yml
+++ b/decidim-assemblies/config/locales/ca-IT.yml
@@ -172,7 +172,7 @@ ca-IT:
attachments: Adjunts
components: Components
info: Quant a aquesta assemblea
- landing_page: Disposició de la pàgina de destinació
+ landing_page: Disposició de la pàgina d'inici
moderations: Moderacions
private_users: Membres
see_assembly: Veure l'assemblea
diff --git a/decidim-assemblies/config/locales/ca.yml b/decidim-assemblies/config/locales/ca.yml
index bbc73b72d9f51..f182e6ebe965b 100644
--- a/decidim-assemblies/config/locales/ca.yml
+++ b/decidim-assemblies/config/locales/ca.yml
@@ -172,7 +172,7 @@ ca:
attachments: Adjunts
components: Components
info: Quant a aquesta assemblea
- landing_page: Disposició de la pàgina de destinació
+ landing_page: Disposició de la pàgina d'inici
moderations: Moderacions
private_users: Membres
see_assembly: Veure l'assemblea
diff --git a/decidim-assemblies/config/locales/de.yml b/decidim-assemblies/config/locales/de.yml
index 2736adae45f4c..f7154648b9b75 100644
--- a/decidim-assemblies/config/locales/de.yml
+++ b/decidim-assemblies/config/locales/de.yml
@@ -36,7 +36,7 @@ de:
is_transparent: Ist transparent
local_area: Organisationsbereich
meta_scope: Bereichs-Metadaten
- parent_id: Haupt Versammlung
+ parent_id: Übergeordnete Versammlung
participatory_processes_ids: Ähnliche Beteiligungsprozesse
participatory_scope: Was wird entschieden?
participatory_structure: Wie wird es entschieden?
@@ -79,26 +79,26 @@ de:
activerecord:
models:
decidim/assembly:
- one: Gremium
- other: Gremien
+ one: Versammlung
+ other: Versammlungen
decidim/assembly_member:
- one: Gremienmitglieder
- other: Mitglieder der Versammlung
+ one: Versammlungsmitglied
+ other: Versammlungsmitglieder
decidim/assembly_user_role:
- one: Assembly-Benutzerrolle
- other: Zusammenbau von Benutzerrollen
+ one: Versammlungsbenutzerrolle
+ other: Versammlungsbenutzerrollen
decidim:
admin:
actions:
- confirm_delete_assembly: Sind Sie sicher, dass Sie dieses Gremium löschen möchten? Wenn Sie Ihre Meinung ändern, können Sie sie später wiederherstellen.
+ confirm_delete_assembly: Sind Sie sicher, dass Sie diese Versammlung löschen möchten? Wenn Sie Ihre Meinung ändern, können Sie sie später wiederherstellen.
import_assembly: Importieren
- new_assembly: Neues Gremium
- new_assembly_user_role: Neuer Gremium-Admin
- view_deleted_assemblies: Gelöschte Gremien anzeigen
+ new_assembly: Neue Versammlung
+ new_assembly_user_role: Neuer Versammlungsadmin
+ view_deleted_assemblies: Gelöschte Versammlungen anzeigen
assemblies:
create:
- error: Beim Erstellen eines neuen Gremiums ist ein Fehler aufgetreten.
- success: Gremium erfolgreich erstellt. Sie können nun Komponenten hinzufügen und konfigurieren.
+ error: Beim Erstellen einer neuen Versammlung ist ein Fehler aufgetreten.
+ success: Versammlung erfolgreich erstellt. Sie können nun Komponenten hinzufügen und konfigurieren.
edit:
update: Aktualisieren
index:
@@ -107,52 +107,54 @@ de:
published: Veröffentlicht
unpublished: Nicht veröffentlicht
manage_trash:
- title: Gelöschte Gremien
+ title: Gelöschte Versammlungen
new:
create: Erstellen
- title: Neues Gremium
+ title: Neue Versammlung
update:
- error: Beim Aktualisieren dieses Gremiums ist ein Fehler aufgetreten.
+ error: Beim Aktualisieren dieser Versammlung ist ein Fehler aufgetreten.
success: Die Versammlung wurde erfolgreich aktualisiert.
assemblies_duplicates:
create:
- error: Beim Duplizieren dieses Gremiums ist ein Fehler aufgetreten.
- success: Das Gremium wurde erfolgreich dupliziert.
+ error: Beim Duplizieren dieser Versammlung ist ein Fehler aufgetreten.
+ success: Die Versammlung wurde erfolgreich dupliziert.
assembly_duplicates:
new:
duplicate: Duplizieren
select: Wählen Sie, welche Daten Sie duplizieren möchten
- title: Gremium duplizieren
+ title: Versammlung duplizieren
assembly_imports:
create:
- error: Beim Importieren dieses Gremiums ist ein Fehler aufgetreten.
- success: Gremium wurde erfolgreich importiert.
+ error: Beim Importieren dieser Versammlung ist ein Fehler aufgetreten.
+ success: Versammlung erfolgreich importiert.
new:
import: Importieren
select: Wählen Sie aus, welche Daten Sie importieren möchten
+ title: Versammlung importieren
assembly_publications:
create:
- error: Beim Veröffentlichen dieses Gremiums ist ein Fehler aufgetreten.
- success: Gremium erfolgreich veröffentlicht.
+ error: Beim Veröffentlichen dieser Versammlung ist ein Fehler aufgetreten.
+ success: Versammlung erfolgreich veröffentlicht.
destroy:
- error: Beim Aufheben der Veröffentlichung dieser Assembly ist ein Fehler aufgetreten.
- success: Die Assembly wurde nicht veröffentlicht.
+ error: Beim Aufheben der Veröffentlichung dieser Versammlung ist ein Fehler aufgetreten.
+ success: Die Veröffentlichung der Versammlung wurde aufgehoben.
assembly_user_roles:
create:
- error: Beim Hinzufügen eines Benutzers für diese Assembly ist ein Fehler aufgetreten.
- success: Der Administrator wurde dieser Versammlung erfolgreich hinzugefügt.
+ error: Beim Hinzufügen eines Admins für diese Versammlung ist ein Fehler aufgetreten.
+ success: Der Admin wurde dieser Versammlung erfolgreich hinzugefügt.
destroy:
- success: Benutzer wurde erfolgreich von dieser Assembly entfernt.
+ success: Der Admin wurde erfolgreich aus dieser Versammlung entfernt.
edit:
+ title: Versammlungsadmin aktualisieren
update: Aktualisieren
index:
- assembly_admins_title: Assembly Benutzer
+ assembly_admins_title: Versammlungsadmins
new:
create: Erstellen
- title: Neuer Gremium-Admin
+ title: Neuer Versammlungsadmin
update:
- error: Bei einem Fehler ist ein Benutzer für diese Assembly aktualisiert worden.
- success: Der Benutzer wurde für diese Assembly erfolgreich aktualisiert.
+ error: Beim Aktualisieren eines Admins für diese Versammlung ist ein Fehler aufgetreten.
+ success: Der Admin wurde für diese Versammlung erfolgreich aktualisiert.
filters:
ceased_date_not_null:
label: Eingestellt
@@ -162,18 +164,18 @@ de:
search_placeholder:
full_name_or_user_name_or_user_nickname_cont: Name oder Kontoname suchen
menu:
- assemblies: Gremien
+ assemblies: Versammlungen
assemblies_submenu:
- assembly_admins: Assembly Benutzer
+ assembly_admins: Versammlungsadmins
attachment_collections: Ordner
attachment_files: Dateien
attachments: Anhänge
components: Komponenten
- info: Über dieses Gremium
+ info: Über diese Versammlung
landing_page: Startseiten-Layout
moderations: Moderationen
private_users: Mitglieder
- see_assembly: Gremium ansehen
+ see_assembly: Versammlung ansehen
models:
assembly:
fields:
@@ -183,7 +185,7 @@ de:
promoted: Hervorgehoben
published: Veröffentlicht
title: Titel
- name: Gremium
+ name: Versammlung
assembly_member:
name: Mitglied
positions:
@@ -197,7 +199,7 @@ de:
email: Email
name: Name
role: Rolle
- name: Assembly Benutzer
+ name: Versammlungsadmin
roles:
admin: Administrator
collaborator: Mitarbeiter
@@ -205,70 +207,70 @@ de:
moderator: Moderator
taxonomy_filters:
space_filter_for:
- assemblies: Alle Gremien
+ assemblies: Alle Versammlungen
titles:
- assemblies: Gremien
- assemblies_deleted: Gelöschte Gremien
+ assemblies: Versammlungen
+ assemblies_deleted: Gelöschte Versammlungen
assemblies_types: Versammlungstypen
tooltips:
- deleted_assemblies_info: Ein Gremium kann nur gelöscht werden, wenn der Status "Nicht veröffentlicht" ist.
+ deleted_assemblies_info: Eine Versammlung kann nur gelöscht werden, wenn der Status "Nicht veröffentlicht" ist.
admin_log:
assembly:
- create: "%{user_name} hat das Gremium %{resource_name} erstellt"
- duplicate: "%{user_name} hat das Gremium %{resource_name} dupliziert"
- export: "%{user_name} hat das Gremium %{resource_name} exportiert"
- import: "%{user_name} hat das Gremium %{resource_name} importiert"
- publish: "%{user_name} hat das Gremium %{resource_name} veröffentlicht"
- publish_all_members: "%{user_name} hat alle Mitglieder des Gremiums %{resource_name} veröffentlicht"
- restore: "%{user_name} hat das Gremium %{resource_name} wiederhergestellt"
- soft_delete: "%{user_name} hat das Gremium %{resource_name} in den Papierkorb verschoben"
- unpublish: "%{user_name} hat das Gremium %{resource_name} auf \"unveröffentlicht\" gesetzt"
- unpublish_all_members: "%{user_name} hat die Veröffentlichung aller Mitglieder des Gremiums %{resource_name} aufgehoben"
- update: "%{user_name} hat das Gremium %{resource_name} aktualisiert"
+ create: "%{user_name} hat die Versammlung %{resource_name} erstellt"
+ duplicate: "%{user_name} hat die Versammlung %{resource_name} dupliziert"
+ export: "%{user_name} hat die Versammlung %{resource_name} exportiert"
+ import: "%{user_name} hat die Versammlung %{resource_name} importiert"
+ publish: "%{user_name} hat die Versammlung %{resource_name} veröffentlicht"
+ publish_all_members: "%{user_name} hat alle Mitglieder der Versammlung %{resource_name} veröffentlicht"
+ restore: "%{user_name} hat die Versammlung %{resource_name} wiederhergestellt"
+ soft_delete: "%{user_name} hat die Versammlung %{resource_name} in den Papierkorb verschoben"
+ unpublish: "%{user_name} hat die Versammlung %{resource_name} auf \"unveröffentlicht\" gesetzt"
+ unpublish_all_members: "%{user_name} hat die Veröffentlichung aller Mitglieder der Versammlung %{resource_name} aufgehoben"
+ update: "%{user_name} hat die Versammlung %{resource_name} aktualisiert"
assembly_member:
- create: "%{user_name} hat das Mitglied %{resource_name} im Gremium %{space_name} erstellt"
- delete: "%{user_name} hat das Mitglied %{resource_name} aus dem Gremium %{space_name} entfernt"
- update: "%{user_name} hat das Mitglied %{resource_name} im Gremium %{space_name} aktualisiert"
+ create: "%{user_name} hat das Mitglied %{resource_name} in der Versammlung %{space_name} erstellt"
+ delete: "%{user_name} hat das Mitglied %{resource_name} aus der Versammlung %{space_name} entfernt"
+ update: "%{user_name} hat das Mitglied %{resource_name} in der Versammlung %{space_name} aktualisiert"
assembly_setting:
- update: "%{user_name} hat die Gremieneinstellungen aktualisiert"
+ update: "%{user_name} hat die Versammlungseinstellungen aktualisiert"
assembly_type:
- create: "%{user_name} hat den Gremientyp %{resource_name} erstellt"
- delete: "%{user_name} hat den Gremientyp %{resource_name} entfernt"
- publish: "%{user_name} hat den Gremientyp %{resource_name} veröffentlicht"
- unpublish: "%{user_name} hat den Gremientyp %{resource_name} auf \"unveröffentlicht\" gesetzt"
- update: "%{user_name} hat den Gremientyp %{resource_name} aktualisiert"
+ create: "%{user_name} hat den Versammlungstyp %{resource_name} erstellt"
+ delete: "%{user_name} hat den Versammlungstyp %{resource_name} entfernt"
+ publish: "%{user_name} hat den Versammlungstyp %{resource_name} veröffentlicht"
+ unpublish: "%{user_name} hat den Versammlungstyp %{resource_name} auf \"unveröffentlicht\" gesetzt"
+ update: "%{user_name} hat den Versammlungstyp %{resource_name} aktualisiert"
assembly_user_role:
- create: "%{user_name} hat %{resource_name} zum Gremium %{space_name} eingeladen"
- delete: "%{user_name} hat %{resource_name} aus dem Gremium %{space_name} entfernt"
- update: "%{user_name} hat die Rolle von %{resource_name} im Gremium %{space_name} geändert"
+ create: "%{user_name} hat %{resource_name} zur Versammlung %{space_name} eingeladen"
+ delete: "%{user_name} hat %{resource_name} aus der Versammlung %{space_name} entfernt"
+ update: "%{user_name} hat die Rolle von %{resource_name} in der Versammlung %{space_name} geändert"
assemblies:
admin:
assemblies:
form:
- announcement_help: Der Text, den Sie hier eingeben, wird dem Benutzer direkt unter den Gremien-Informationen angezeigt.
+ announcement_help: Der Text, den Sie hier eingeben, wird dem Benutzer direkt unter den Versammlungsinformationen angezeigt.
define_taxonomy_filters: Bitte definieren Sie einige Filter für diesen partizipativen Bereich, bevor Sie diese Einstellung verwenden.
duration: Aktiv bis
- duration_help: Wenn die Dauer dieses Gremiums begrenzt ist, dann wählen Sie hier das Enddatum aus. Andernfalls wird das Datum als unbestimmt angezeigt.
+ duration_help: Wenn die Dauer dieser Versammlung begrenzt ist, dann wählen Sie hier das Enddatum aus. Andernfalls wird das Datum als unbestimmt angezeigt.
images: Bilder
- included_at_help: Wählen Sie das Datum aus, an dem dieses Gremium zur Plattform hinzugefügt wurde. Das Datum muss nicht zwingend mit dem Gründungsdatum übereinstimmen.
+ included_at_help: Wählen Sie das Datum aus, an dem diese Versammlung zur Plattform hinzugefügt wurde. Das Datum muss nicht zwingend mit dem Gründungsdatum übereinstimmen.
metadata: Metadaten
no_taxonomy_filters_found: Keine Klassifizierungsfilter gefunden.
other: Andere
private_notice: Sie werden in der Lage sein, private Teilnehmer zu verwalten, nachdem Sie das Gremium als privat festgelegt haben
select_a_created_by: Wählen Sie eine erstellt von aus
- select_parent_assembly: Übergeordnetes Gremium auswählen
- slug_help_html: 'URL-Slugs werden zum Generieren der URLs verwendet, die auf dieses Gremium verweisen. Akzeptiert werden nur Buchstaben, Zahlen und Bindestriche und es muss mit einem Buchstaben beginnen. Beispiel: %{url}'
+ select_parent_assembly: Übergeordnete Versammlung auswählen
+ slug_help_html: 'URL-Slugs werden zum Generieren der URLs verwendet, die auf diese Versammlung verweisen. Akzeptiert werden nur Buchstaben, Zahlen und Bindestriche und sie müssen mit einem Buchstaben beginnen. Beispiel: %{url}'
social_handlers: Sozial
taxonomies: Klassifizierungen
title: Allgemeine Information
visibility: Sichtbarkeit
assembly_duplicates:
form:
- slug_help_html: 'URL-Slugs werden zum Generieren der URLs verwendet, die auf dieses Gremium verweisen. Akzeptiert werden nur Buchstaben, Zahlen und Bindestriche und sie müssen mit einem Buchstaben beginnen. Beispiel: %{url}'
+ slug_help_html: 'URL-Slugs werden zum Generieren der URLs verwendet, die auf diese Versammlung verweisen. Akzeptiert werden nur Buchstaben, Zahlen und Bindestriche und sie müssen mit einem Buchstaben beginnen. Beispiel: %{url}'
assembly_imports:
form:
document_legend: Dokument hinzufügen
- slug_help_html: 'URL-Slugs werden zum Generieren der URLs verwendet, die auf dieses Gremium verweisen. Akzeptiert werden nur Buchstaben, Zahlen und Bindestriche und es muss mit einem Buchstaben beginnen. Beispiel: %{url}'
+ slug_help_html: 'URL-Slugs werden zum Generieren der URLs verwendet, die auf diese Versammlung verweisen. Akzeptiert werden nur Buchstaben, Zahlen und Bindestriche und sie müssen mit einem Buchstaben beginnen. Beispiel: %{url}'
assembly_members:
form:
explanation: 'Hinweise für das Bild:'
@@ -278,17 +280,20 @@ de:
highlighted_assemblies:
max_results: Maximale Anzahl der Elemente, die angezeigt werden sollen
imports:
+ attachment_error: Der Anhang "%{title}" konnte nicht importiert werden (%{error}).
banner_image_error: Das Bannerbild konnte nicht importiert werden (%{error}).
+ hero_image_error: Das Bannerbild konnte nicht importiert werden (%{error}).
new_import:
accepted_types:
json: JSON
+ help_html: Mit dieser Importfunktion können Sie aus einer exportierten JSON-Datei eine neue Versammlung erstellen. Sie können eine Versammlung von einer anderen Organisation oder von derselben Organisation exportieren. Die importierte Versammlung enthält Einstellungen, Komponenten und Anhänge (falls ausgewählt).
assemblies:
description:
area_name: Gebiet
closing_date: Abschlussdatum
created_by: Erstellt von
creation_date: Erstellungsdatum
- data: Gremiendaten
+ data: Versammlungsdaten
developer_group: Gruppe der Unterstützenden
duration: Aktiv bis
included_at: Hinzugefügt am
@@ -298,27 +303,27 @@ de:
participatory_scope: Was wird entschieden
participatory_structure: Wie wird es entschieden
target: Wer nimmt teil
- title: Über dieses Gremium
+ title: Über diese Versammlung
filters:
names:
all: Alle
type: Typ
show:
- title: Über dieses Gremium
+ title: Über diese Versammlung
assembly_members:
index:
members: Mitglieder
content_blocks:
children_assemblies:
- name: Gremien
+ name: Versammlungen
dates_metadata:
name: Metadaten der Daten
extra_data:
name: Typ & Dauer
highlighted_assemblies:
- name: Hervorgehobene Gremien
+ name: Hervorgehobene Versammlungen
related_assemblies:
- name: Ähnliche Gremien
+ name: Ähnliche Versammlungen
created_by:
city_council: Stadtrat
others: Andere
@@ -334,34 +339,34 @@ de:
participatory: Partizipativ
working_group: Arbeitsgruppe
index:
- title: Gremien
+ title: Versammlungen
last_activity:
- new_assembly: 'Neues Gremium:'
+ new_assembly: 'Neue Versammlung:'
pages:
home:
highlighted_assemblies:
- active_spaces: Aktive Gremien
- see_all_spaces: Alle Gremien anzeigen
+ active_spaces: Aktive Versammlungen
+ see_all_spaces: Alle Versammlungen anzeigen
user_profile:
member_of:
member_of: Mitglied von
show:
duration: Aktiv bis
private_space: Dies ist eine private Versammlung
- social_networks_title: Gremium besuchen unter
+ social_networks_title: Versammlung besuchen unter
assembly_members:
index:
title: Mitglieder
download_your_data:
show:
- assemblies: Export der Gremien
+ assemblies: Export der Versammlungen
events:
assemblies:
create_assembly_member:
- email_intro: Ein Administrator des Gremiums %{resource_name} hat Sie als Mitglied eingeladen.
- email_outro: Sie haben diese Benachrichtigung erhalten, weil Sie zu einem Gremium eingeladen wurden. Gehen Sie zur Gremiumsseite, um mitzumachen!
- email_subject: Sie wurden als Mitglied des Gremiums %{resource_name} eingeladen!
- notification_title: Sie wurden als Mitglied des Gremiums %{resource_name} eingetragen. Gehen Sie zur Gremiumsseite, um mitzuwirken!
+ email_intro: Ein Admin der Versammlung %{resource_name} hat Sie als Mitglied hinzugefügt.
+ email_outro: Sie haben diese Benachrichtigung erhalten, weil Sie zu einer Versammlung eingeladen wurden. Gehen Sie zur Versammlungsseite, um mitzumachen!
+ email_subject: Sie wurden als Mitglied der Versammlung %{resource_name} eingeladen!
+ notification_title: Sie wurden als Mitglied der Versammlung %{resource_name} eingetragen. Gehen Sie zur Versammlungsseite, um mitzuwirken!
assembly:
role_assigned:
email_intro: Sie wurden als %{role} für die Versammlung "%{resource_title}" ausgewählt.
@@ -373,59 +378,59 @@ de:
assemblies:
contextual: "
Eine Versammlung ist eine Gruppe von Mitgliedern einer Organisation, die sich regelmäßig treffen, um Entscheidungen über einen bestimmten Bereich oder einen bestimmten Bereich der Organisation zu treffen.
Versammlungen halten Meetings ab, einige sind privat und andere sind offen. Wenn sie offen sind, ist es möglich, an ihnen teilzunehmen (z. B. Teilnahme, wenn die Kapazität es erlaubt, Punkte auf die Tagesordnung setzen oder Vorschläge und Entscheidungen dieses Organs kommentieren).
Beispiele: Eine Generalversammlung (die einmal im Jahr zusammentritt, um die wichtigsten Aktionslinien der Organisation sowie ihre Exekutivorgane per Abstimmung festzulegen), ein Gleichstellungsbeirat (der alle zwei Monate zusammentritt, um Vorschläge zur Verbesserung der Geschlechterbeziehungen vorzulegen In der Organisation sind eine Evaluierungskommission (die sich jeden Monat zur Überwachung eines Prozesses trifft) oder eine Garantieeinrichtung (die Vorfälle, Missbräuche oder Vorschläge zur Verbesserung der Entscheidungsverfahren sammelt) Beispiele für Versammlungen.
\n"
page: "
Eine Versammlung ist eine Gruppe von Mitgliedern einer Organisation, die sich regelmäßig treffen, um Entscheidungen über einen bestimmten Bereich oder einen bestimmten Bereich der Organisation zu treffen.
Versammlungen halten Meetings ab, einige sind privat und andere sind offen. Wenn sie offen sind, ist es möglich, an ihnen teilzunehmen (z. B. Teilnahme, wenn die Kapazität es erlaubt, Punkte auf die Tagesordnung setzen oder Vorschläge und Entscheidungen dieses Organs kommentieren).
Beispiele: Eine Generalversammlung (die einmal im Jahr zusammentritt, um die wichtigsten Aktionslinien der Organisation sowie ihre Exekutivorgane per Abstimmung festzulegen), ein Gleichstellungsbeirat (der alle zwei Monate zusammentritt, um Vorschläge zur Verbesserung der Geschlechterbeziehungen vorzulegen In der Organisation sind eine Evaluierungskommission (die sich jeden Monat zur Überwachung eines Prozesses trifft) oder eine Garantieeinrichtung (die Vorfälle, Missbräuche oder Vorschläge zur Verbesserung der Entscheidungsverfahren sammelt) Beispiele für Versammlungen.
\n"
- title: Was sind Gremien?
+ title: Was sind Versammlungen?
log:
value_types:
assembly_presenter:
- not_found: 'Die Assembly wurde nicht in der Datenbank gefunden (ID: %{id})'
+ not_found: 'Die Versammlung wurde nicht in der Datenbank gefunden (ID: %{id})'
assembly_type_presenter:
not_found: 'Der Versammlungstyp wurde nicht in der Datenbank gefunden (ID: %{id})'
menu:
- assemblies: Gremien
+ assemblies: Versammlungen
open_data:
help:
assemblies:
announcement: Die Ankündigungsinformationen (Banner)
- area: Der Bereich des Gremiums
- assembly_type: Der Typ des Gremiums
- closing_date: Das Auflösungsdatum des Gremiums
- closing_date_reason: Der Auflösungsgrund des Gremiums
- composition: Die Zusammensetzung des Gremiums
+ area: Der Bereich der Versammlung
+ assembly_type: Der Typ der Versammlung
+ closing_date: Das Auflösungsdatum der Versammlung
+ closing_date_reason: Der Auflösungsgrund der Versammlung
+ composition: Die Zusammensetzung der Versammlung
created_at: Erstellungsdatum des Raums
- created_by: Wer hat dieses Gremium gegründet hat
- created_by_other: Weitere Gründungspersonen des Gremiums
- creation_date: Das Gründungsdatum des Gremiums
- decidim_scope_id: Die Themen des Gremiums
- description: Eine lange Beschreibung des Gremiums
- developer_group: Die Entwicklungsgruppe des Gremiums
- duration: Die Dauer des Gremiums
+ created_by: Wer diese Versammlung gegründet hat
+ created_by_other: Weitere Gründungspersonen der Versammlung
+ creation_date: Das Gründungsdatum dieser Versammlung
+ decidim_scope_id: Der Bereich der Versammlung
+ description: Eine lange Beschreibung der Versammlung
+ developer_group: Die Entwicklungsgruppe der Versammlung
+ duration: Die Dauer der Versammlung
facebook_handler: Social Media Handler für Facebook
follows_count: Die Anzahl der Benutzer, die diesem Raum folgen
github_handler: Social Media Handler für GitHub
- id: Die eindeutige Bezeichnung dieser Assembly
- included_at: Datum des Einbezugs des Ergebnisses
+ id: Die eindeutige Bezeichnung dieser Versammlung
+ included_at: Das Datum, an dem die Versammlung aufgenommen wurde
instagram_handler: Social Media Handler für Instagram
- internal_organisation: Die interne Organisation dieses Gremiums
- is_transparent: Ob das Gremium öffentlich zugänglich ist oder nicht
- local_area: Der lokale Bereich des Gremiums
- meta_scope: Die Bereichsmetadaten des Ergebnisses
- participatory_scope: Der partizipative Bereich des Gremiums
- participatory_structure: Die partizipative Struktur des Gremiums
- promoted: Ob das Gremium hervorgehoben ist oder nicht
+ internal_organisation: Die interne Organisation dieser Versammlung
+ is_transparent: Ob die Versammlung öffentlich zugänglich ist oder nicht
+ local_area: Der lokale Bereich der Versammlung
+ meta_scope: Die Bereichsmetadaten der Versammlung
+ participatory_scope: Der partizipative Bereich der Versammlung
+ participatory_structure: Die partizipative Struktur der Versammlung
+ promoted: Ob die Versammlung hervorgehoben ist oder nicht
published_at: Das Datum der Veröffentlichung des Raums
- purpose_of_action: Der Zweck des Gremiums
+ purpose_of_action: Der Zweck der Versammlung
reference: Die eindeutige Referenz des Bereichs
- remote_banner_image_url: Die URL des Gremium-Bannerbildes
- remote_hero_image_url: Die URL des Gremium-Titelbildes
- scope: Die Themen des Gremiums
+ remote_banner_image_url: Die URL des Versammlungs-Bannerbildes
+ remote_hero_image_url: Die URL des Versammlungs-Titelbildes
+ scope: Der Bereich der Versammlung
scopes_enabled: Ob Themen aktiviert sind oder nicht
- short_description: Eine kurze Beschreibung des Gremiums
- slug: Der URL-Slug des Gremiums (verwendet für Identifikationszwecke in der URL)
- special_features: Welche besonderen Merkmale dieses Gremium hat
- subtitle: Der Untertitel des Gremiums
- target: Das Ziel des Gremiums
+ short_description: Eine kurze Beschreibung der Versammlung
+ slug: Der URL-Slug der Versammlung (verwendet für Identifikationszwecke in der URL)
+ special_features: Welche besonderen Merkmale diese Versammlung hat
+ subtitle: Der Untertitel der Versammlung
+ target: Das Ziel der Versammlung
taxonomies: Die Klassifizierungen des Projekts
- title: Der Titel des Gremiums
+ title: Der Titel der Versammlung
twitter_handler: Social Media Handler für X/Twitter
updated_at: Letztes Aktualisierungsdatum dieses Bereichs
url: Die URL des Bereichs
@@ -434,8 +439,8 @@ de:
show:
related_assemblies: Ähnliche Versammlungen
statistics:
- assemblies_count: Gremien
- assemblies_count_tooltip: Die Anzahl der öffentlichen Gremien, in denen kollektive Entscheidungen getroffen werden.
+ assemblies_count: Versammlungen
+ assemblies_count_tooltip: Die Anzahl der öffentlichen Versammlungen, in denen kollektive Entscheidungen getroffen werden.
layouts:
decidim:
assemblies:
@@ -443,14 +448,14 @@ de:
more_info: Mehr Informationen
take_part: Teilnehmen
index:
- promoted_assemblies: Hervorgehobene Gremien
+ promoted_assemblies: Hervorgehobene Versammlungen
metadata:
children_item:
- one: "%{count} Gremium"
- other: "%{count} Gremien"
+ one: "%{count} Versammlung"
+ other: "%{count} Versammlungen"
order_by_assemblies:
assemblies:
- one: "%{count} Gremien"
- other: "%{count} Gremien"
+ one: "%{count} Versammlungen"
+ other: "%{count} Versammlungen"
assembly_navigation:
assembly_member_menu_item: Mitglieder
diff --git a/decidim-assemblies/config/locales/eu.yml b/decidim-assemblies/config/locales/eu.yml
index 78ec26969e8d6..2d591604265d5 100644
--- a/decidim-assemblies/config/locales/eu.yml
+++ b/decidim-assemblies/config/locales/eu.yml
@@ -60,7 +60,7 @@ eu:
designation_date: Izendapen-data
full_name: Izen osoa
gender: Generoa
- non_user_avatar: Abatarra
+ non_user_avatar: Avatarra
position: Posizioa
user_id: Parte-hartzailea edo taldea
weight: Kokapenaren hurrenkera
@@ -237,7 +237,7 @@ eu:
create: "%{user_name} parte-hartzaileak %{resource_name} batzar mota sortu du"
delete: "%{user_name} parte-hartzaileak %{resource_name} batzar mota ezabatu du"
publish: "%{user_name} parte-hartzaileak %{resource_name} batzar mota argitaratu du"
- unpublish: "%{user_name} parte-hartzaileak %{resource_name} batzar mota despublikatu du"
+ unpublish: "%{user_name} parte-hartzaileak %{resource_name} batzar mota desargitaratu du"
update: "%{user_name} parte-hartzaileak %{resource_name} batzar mota eguneratu du"
assembly_user_role:
create: "%{user_name} parte-hartzaileak %{resource_name} gonbidatu du %{space_name} batzarrera"
@@ -248,7 +248,7 @@ eu:
assemblies:
form:
announcement_help: Hemen sartzen duzun testua batzarreko informazioaren azpian agertuko zaio parte-hartzaileari.
- define_taxonomy_filters: Mesedez, eszenatoki hau erabili aurretik, zehaztu espazio parte-hartzaile honetarako iragazki batzuk.
+ define_taxonomy_filters: Mesedez, eszenatoki hau erabili aurretik, zehaztu partaidetza-espazio honetarako iragazki batzuk.
duration: Iraupena
duration_help: Batzar honen iraupena mugatua bada, hautatu amaiera-data. Bestela, mugagabea izango da.
images: Irudiak
@@ -281,7 +281,7 @@ eu:
max_results: Erakusteko elementu gehienen kopurua
imports:
attachment_error: Ezin izan da "%{title}" eranskina inportatu (%{error}).
- banner_image_error: Ezin izan da bannerraren irudia inportatu (%{error}).
+ banner_image_error: Banner-irudia ezin izan da inportatu (%{error}).
hero_image_error: Ezin izan da heroiaren irudia inportatu (%{error}).
new_import:
accepted_types:
@@ -349,7 +349,7 @@ eu:
see_all_spaces: Ikusi batzar guztiak
user_profile:
member_of:
- member_of: 'Honen kidea:'
+ member_of: Honen kidea
show:
duration: Iraupena
private_space: Hau batzar pribatua da
diff --git a/decidim-assemblies/config/locales/fr-CA.yml b/decidim-assemblies/config/locales/fr-CA.yml
index 3ac3cbe69858d..13747726e571e 100644
--- a/decidim-assemblies/config/locales/fr-CA.yml
+++ b/decidim-assemblies/config/locales/fr-CA.yml
@@ -172,6 +172,7 @@ fr-CA:
attachments: Documents liés
components: Composants
info: À propos de cette assemblée
+ landing_page: Mise en page de la page d'accueil
moderations: Modérations
private_users: Membres
see_assembly: Voir l'assemblée
@@ -397,13 +398,18 @@ fr-CA:
created_at: La date de création de cet espace
created_by: Qui a créé cette assemblée
created_by_other: Autre créateur de l'assemblée
+ creation_date: La date de création de l'assemblée
+ decidim_scope_id: La portée de l'assemblée
description: Une description longue de l'assemblée
+ developer_group: Le groupe promoteur de l'assemblée
duration: La durée de l'assemblée
follows_count: Le nombre d'utilisateurs suivant cet espace
id: L'identifiant unique de cette assemblée
internal_organisation: L'organisation interne de cette assemblée
is_transparent: Si l'assemblée est transparente ou non
local_area: La zone locale de cette assemblée
+ participatory_scope: La portée participative de l'assemblée
+ participatory_structure: La structure participative de l'assemblée
promoted: Si l'assemblée est promue ou non
published_at: La date à laquelle cet espace a été publié
purpose_of_action: Le but de l'action de l'assemblée
diff --git a/decidim-assemblies/config/locales/fr.yml b/decidim-assemblies/config/locales/fr.yml
index 76afe5f67e3bd..78afad7f9e7ea 100644
--- a/decidim-assemblies/config/locales/fr.yml
+++ b/decidim-assemblies/config/locales/fr.yml
@@ -90,7 +90,7 @@ fr:
decidim:
admin:
actions:
- confirm_delete_assembly: Êtes-vous sûr(e) de vouloir supprimer cette assemblée ? Si vous changez d'avis, vous pourrez la restaurer plus tard.
+ confirm_delete_assembly: Êtes-vous sûr·e de vouloir supprimer cette assemblée ? Si vous changez d'avis, vous pourrez la restaurer plus tard.
import_assembly: Importer
new_assembly: Nouvelle assemblée
new_assembly_user_role: Nouvel administrateur de l'assemblée
@@ -172,6 +172,7 @@ fr:
attachments: Documents liés
components: Fonctionnalités
info: À propos de cette assemblée
+ landing_page: Mise en page de la page d'accueil
moderations: Modérations
private_users: Membres
see_assembly: Voir l'assemblée
@@ -397,20 +398,28 @@ fr:
created_at: La date de création de cet espace
created_by: Qui a créé cette assemblée
created_by_other: Autre créateur de l'assemblée
+ creation_date: La date de création de l'assemblée
+ decidim_scope_id: La portée de l'assemblée
description: Une description longue de l'assemblée
+ developer_group: Le groupe promoteur de l'assemblée
duration: La durée de l'assemblée
follows_count: Le nombre d'utilisateurs suivant cet espace
id: L'identifiant unique de cette assemblée
internal_organisation: L'organisation interne de cette assemblée
is_transparent: Si l'assemblée est transparente ou non
local_area: La zone locale de cette assemblée
+ participatory_scope: La portée participative de l'assemblée
+ participatory_structure: La structure participative de l'assemblée
promoted: Si l'assemblée est promue ou non
published_at: La date à laquelle cet espace a été publié
purpose_of_action: Le but de l'action de l'assemblée
short_description: Une courte description de l'assemblée
subtitle: Le sous-titre de l'assemblée
target: La cible de l'assemblée
+ taxonomies: Les taxonomies du projet
title: Le titre de l'assemblée
+ updated_at: La dernière date de mise à jour de cet espace
+ url: L'URL de l'espace
participatory_processes:
show:
related_assemblies: Assemblées associées
diff --git a/decidim-assemblies/config/locales/he-IL.yml b/decidim-assemblies/config/locales/he-IL.yml
index 8a1cfbbcbf7aa..9e55b8f60fc0c 100644
--- a/decidim-assemblies/config/locales/he-IL.yml
+++ b/decidim-assemblies/config/locales/he-IL.yml
@@ -69,17 +69,14 @@ he:
decidim/assembly:
one: אסיפה
two: אסיפות
- many: אסיפות
other: אסיפות
decidim/assembly_member:
one: חבר אסיפה
two: חברי אסיפה
- many: חברי אסיפה
other: חברי אסיפה
decidim/assembly_user_role:
one: תפקיד באסיפה
two: תפקידים באסיפה
- many: תפקידים באסיפה
other: תפקידים באסיפה
decidim:
admin:
diff --git a/decidim-assemblies/config/locales/hu.yml b/decidim-assemblies/config/locales/hu.yml
index 40104946067b9..b94b8a440c0b1 100644
--- a/decidim-assemblies/config/locales/hu.yml
+++ b/decidim-assemblies/config/locales/hu.yml
@@ -209,7 +209,7 @@ hu:
admin:
assemblies:
form:
- announcement_help: Az itt megadott szöveg a gyűlés információs oldalán fog megjelenni a felhasználók számára.
+ announcement_help: Az itt megadott szöveg a gyűlés információs oldalán fog megjelenni a felhasználók számára.
duration: Időtartam
duration_help: Ha a gyűlés időtartama korlátozott, válassz befejező dátumot. Ellenkező esetben határozatlan idejű lesz.
images: képek
diff --git a/decidim-assemblies/config/locales/pt-BR.yml b/decidim-assemblies/config/locales/pt-BR.yml
index 992425eb50b18..7da042531ed62 100644
--- a/decidim-assemblies/config/locales/pt-BR.yml
+++ b/decidim-assemblies/config/locales/pt-BR.yml
@@ -3,10 +3,10 @@ pt-BR:
activemodel:
attributes:
assembly:
- announcement: Avisos
+ announcement: Anúncios
area_id: Área
assembly_type: Tipo de assembleia
- assembly_type_other: Outro tipo de assambleia
+ assembly_type_other: Outro tipo de assembleia
banner_image: Imagem da bandeira
closing_date: Data de finalização
closing_date_reason: Razão da data de finalização
@@ -166,7 +166,7 @@ pt-BR:
attachment_files: arquivos
attachments: Anexos
components: Componentes
- info: Sobre essa assambleia
+ info: Sobre essa assembleia
landing_page: Layout página principal
moderations: Moderação
private_users: Membros
@@ -246,7 +246,7 @@ pt-BR:
duration: Duração
duration_help: Se a duração dessa assembleia for limitada, selecione a data final. Caso contrário, aparecerá como indefinido.
images: Imagens
- included_at_help: Selecione a data em que a assambleia foi adicionada à plataforma. Não precisa necessariamente ser o mesmo que a data de criação.
+ included_at_help: Selecione a data em que a assembleia foi adicionada à plataforma. Não precisa necessariamente ser o mesmo que a data de criação.
metadata: Metadados
no_taxonomy_filters_found: Nenhum filtro de taxonomia encontrado.
other: De outros
@@ -335,7 +335,7 @@ pt-BR:
home:
highlighted_assemblies:
active_spaces: Assembleias ativas
- see_all_spaces: Ver todas as assembleias
+ see_all_spaces: Ver todas as assembleias
user_profile:
member_of:
member_of: Membro de
diff --git a/decidim-assemblies/config/locales/tr-TR.yml b/decidim-assemblies/config/locales/tr-TR.yml
index 68bdf8656e02f..17e1dd1afc49f 100644
--- a/decidim-assemblies/config/locales/tr-TR.yml
+++ b/decidim-assemblies/config/locales/tr-TR.yml
@@ -18,7 +18,7 @@ tr:
decidim_scope_id: kapsam
description: Açıklama
developer_group: Tanıtım grubu
- document: Belge
+ document: Belge
domain: domain
duplicate_categories: Yinelenen kategoriler
duplicate_features: Yinelenen özellikler
@@ -26,9 +26,9 @@ tr:
facebook: Facebook
github: GitHub
hero_image: Ana resim
- import_attachments: Eki içe aktar
- import_categories: Kategorileri içe aktar
- import_components: Bireşenleri içe aktar
+ import_attachments: Eki içe aktar
+ import_categories: Kategorileri içe aktar
+ import_components: Bireşenleri içe aktar
included_at: Dahil
instagram: Instagram
is_transparent: Şeffaf mı
diff --git a/decidim-assemblies/lib/decidim/assemblies/version.rb b/decidim-assemblies/lib/decidim/assemblies/version.rb
index a583a51f1ac23..64dee5a254d48 100644
--- a/decidim-assemblies/lib/decidim/assemblies/version.rb
+++ b/decidim-assemblies/lib/decidim/assemblies/version.rb
@@ -4,7 +4,7 @@ module Decidim
# This holds the decidim-assemblies version.
module Assemblies
def self.version
- "0.31.4"
+ "0.31.7"
end
end
end
diff --git a/decidim-assemblies/spec/commands/create_assembly_spec.rb b/decidim-assemblies/spec/commands/create_assembly_spec.rb
index c9a899f4d67bd..8b5244852bd4b 100644
--- a/decidim-assemblies/spec/commands/create_assembly_spec.rb
+++ b/decidim-assemblies/spec/commands/create_assembly_spec.rb
@@ -23,11 +23,8 @@ module Decidim::Assemblies
2.times.map { build(:taxonomization, taxonomy: create(:taxonomy, :with_parent, organization:), taxonomizable: nil) }
end
- let(:form) do
- instance_double(
- Admin::AssemblyForm,
- current_user:,
- invalid?: invalid,
+ let(:attributes) do
+ {
title: { en: "title" },
subtitle: { en: "subtitle" },
weight: 1,
@@ -67,6 +64,15 @@ module Decidim::Assemblies
youtube_handler: "lorem",
github_handler: "lorem",
announcement: { en: "announcement_lorem" }
+ }
+ end
+
+ let(:form) do
+ instance_double(
+ Admin::AssemblyForm,
+ **attributes,
+ current_user:,
+ invalid?: invalid
)
end
let(:invalid) { false }
@@ -79,6 +85,22 @@ module Decidim::Assemblies
end
end
+ context "when there is a trashed space with the same slug" do
+ let!(:trashed_space) { create(:assembly, :trashed, slug: "slug", organization:) }
+ let(:form) do
+ Admin::AssemblyForm.from_params(attributes)
+ .with_context({
+ current_user:,
+ current_organization: organization
+ })
+ end
+
+ it "broadcasts invalid" do
+ expect { subject.call }.to broadcast(:invalid)
+ expect(form.errors[:slug]).not_to be_empty
+ end
+ end
+
context "when the assembly is not persisted" do
let(:hero_image) do
ActiveStorage::Blob.create_and_upload!(
diff --git a/decidim-assemblies/spec/commands/decidim/assemblies/admin/import_assembly_spec.rb b/decidim-assemblies/spec/commands/decidim/assemblies/admin/import_assembly_spec.rb
index e12aba9a3f132..c6f07cafd2c6a 100644
--- a/decidim-assemblies/spec/commands/decidim/assemblies/admin/import_assembly_spec.rb
+++ b/decidim-assemblies/spec/commands/decidim/assemblies/admin/import_assembly_spec.rb
@@ -15,18 +15,28 @@ module Decidim::Assemblies::Admin
instance_double(File,
blank?: false)
end
+
+ let(:attributes) do
+ {
+ title: { en: "title" },
+ slug: "imported-slug",
+ import_steps: import_steps,
+ import_attachments: import_attachments,
+ import_components: import_components,
+ document: form_doc,
+ document_text: document_file,
+ document_type:
+ }
+ end
+ let(:current_user) { user }
let(:form) do
instance_double(
AssemblyImportForm,
- title: { en: "title" },
- slug: "imported-slug",
+ **attributes,
import_steps?: import_steps,
import_attachments?: import_attachments,
import_components?: import_components,
- document: form_doc,
- document_text: document_file,
- document_type:,
- current_user: create(:user, organization:),
+ current_user:,
current_organization: organization,
invalid?: invalid
)
@@ -101,6 +111,30 @@ def stub_calls_to_external_files
end
end
+ context "when there is a trashed space with the same slug" do
+ let!(:trashed_space) { create(:assembly, :trashed, slug: "imported-slug", organization:) }
+ let(:form_doc) do
+ ActiveStorage::Blob.create_and_upload!(
+ io: File.open(Decidim::Dev.asset(document_name)),
+ filename: document_name,
+ content_type: document_type
+ )
+ end
+
+ let(:form) do
+ AssemblyImportForm.from_params(attributes)
+ .with_context({
+ current_user:,
+ current_organization: organization
+ })
+ end
+
+ it "broadcasts invalid" do
+ expect { subject.call }.to broadcast(:invalid)
+ expect(form.errors[:slug]).not_to be_empty
+ end
+ end
+
describe "when the form is valid" do
let(:valid) { true }
diff --git a/decidim-assemblies/spec/commands/duplicate_assembly_spec.rb b/decidim-assemblies/spec/commands/duplicate_assembly_spec.rb
index 9a87e8ff56bce..4963352ed6925 100644
--- a/decidim-assemblies/spec/commands/duplicate_assembly_spec.rb
+++ b/decidim-assemblies/spec/commands/duplicate_assembly_spec.rb
@@ -19,14 +19,12 @@ module Decidim::Assemblies
invalid?: invalid,
title: { en: "title" },
slug: "duplicated-slug",
- duplicate_components?: duplicate_components,
- duplicate_landing_page_blocks?: duplicate_landing_page_blocks
+ duplicate_components?: duplicate_components
)
end
let(:invalid) { false }
let(:duplicate_components) { false }
- let(:duplicate_landing_page_blocks) { false }
context "when the form is not valid" do
let(:invalid) { true }
@@ -36,6 +34,26 @@ module Decidim::Assemblies
end
end
+ context "when there is a trashed space with the same slug" do
+ let!(:trashed_space) { create(:assembly, :trashed, :public, slug: "duplicated-slug", organization:) }
+ let(:form) do
+ Admin::AssemblyDuplicateForm.from_params({
+ title: { en: "title" },
+ slug: "duplicated-slug",
+ duplicate_components: duplicate_components
+ })
+ .with_context({
+ current_user: user,
+ current_organization: organization
+ })
+ end
+
+ it "broadcasts invalid" do
+ expect { subject.call }.to broadcast(:invalid)
+ expect(form.errors[:slug]).not_to be_empty
+ end
+ end
+
context "when everything is ok" do
it "duplicates an assembly" do
expect { subject.call }.to change(Decidim::Assembly, :count).by(1)
@@ -75,6 +93,34 @@ module Decidim::Assemblies
expect(action_log.action).to eq("duplicate")
expect(action_log.version).to be_present
end
+
+ describe "landing page content blocks" do
+ let(:content_block_original_image) { Decidim::Dev.test_file("city.jpeg", "image/jpeg") }
+
+ before do
+ content_block.images_container.background_image.purge
+ content_block.images_container.background_image = content_block_original_image
+ content_block.save
+ content_block.reload
+ end
+
+ it "duplicates the content_block with its attachments" do
+ expect { subject.call }.to change(Decidim::ContentBlock, :count).by(1)
+
+ old_block = Decidim::ContentBlock.unscoped.first
+ new_block = Decidim::ContentBlock.unscoped.last
+ last_assembly = Decidim::Assembly.last
+
+ expect(new_block.scope_name).to eq(old_block.scope_name)
+ expect(new_block.manifest_name).to eq(old_block.manifest_name)
+ # published_at is set in content_block factory
+ expect(new_block.published_at).not_to be_nil
+ expect(new_block.scoped_resource_id).to eq(last_assembly.id)
+ expect(new_block.attachments.length).to eq(1)
+ expect(new_block.attachments.first.name).to eq("background_image")
+ expect(new_block.images_container.attached_uploader(:background_image).url).not_to be_nil
+ end
+ end
end
context "when duplicate_components exists" do
@@ -99,40 +145,6 @@ module Decidim::Assemblies
end
end
- context "when duplicate_landing_page_blocks exists" do
- let(:duplicate_landing_page_blocks) { true }
- let(:original_image) do
- Rack::Test::UploadedFile.new(
- Decidim::Dev.test_file("city.jpeg", "image/jpeg"),
- "image/jpeg"
- )
- end
-
- before do
- content_block.images_container.background_image.purge
- content_block.images_container.background_image = original_image
- content_block.save
- content_block.reload
- end
-
- it "duplicates an assembly and the content_block with its attachments" do
- expect { subject.call }.to change(Decidim::ContentBlock, :count).by(1)
-
- old_block = Decidim::ContentBlock.unscoped.first
- new_block = Decidim::ContentBlock.unscoped.last
- last_assembly = Decidim::Assembly.last
-
- expect(new_block.scope_name).to eq(old_block.scope_name)
- expect(new_block.manifest_name).to eq(old_block.manifest_name)
- # published_at is set in content_block factory
- expect(new_block.published_at).not_to be_nil
- expect(new_block.scoped_resource_id).to eq(last_assembly.id)
- expect(new_block.attachments.length).to eq(1)
- expect(new_block.attachments.first.name).to eq("background_image")
- expect(new_block.images_container.attached_uploader(:background_image).url).not_to be_nil
- end
- end
-
context "when duplicating a child assembly" do
context "when the form is not valid" do
let(:invalid) { true }
diff --git a/decidim-assemblies/spec/commands/update_assembly_spec.rb b/decidim-assemblies/spec/commands/update_assembly_spec.rb
index 49fcc02c8fa49..9c7821e813e55 100644
--- a/decidim-assemblies/spec/commands/update_assembly_spec.rb
+++ b/decidim-assemblies/spec/commands/update_assembly_spec.rb
@@ -103,6 +103,19 @@ module Decidim::Assemblies
end
end
+ context "when there is a trashed space with the same slug" do
+ let!(:trashed_space) { create(:assembly, :trashed, slug: "slug", organization:) }
+
+ let(:form) do
+ Admin::AssemblyForm.from_params(params.deep_merge(assembly: { slug: "slug" })).with_context(context)
+ end
+
+ it "broadcasts invalid" do
+ expect { command.call }.to broadcast(:invalid)
+ expect(form.errors[:slug]).not_to be_empty
+ end
+ end
+
context "when the uploaded hero image has too large dimensions" do
let(:attachment_params) do
{
diff --git a/decidim-assemblies/spec/serializers/decidim/assemblies/assembly_importer_spec.rb b/decidim-assemblies/spec/serializers/decidim/assemblies/assembly_importer_spec.rb
index dcc537f968bbe..8f65b7102e6cf 100644
--- a/decidim-assemblies/spec/serializers/decidim/assemblies/assembly_importer_spec.rb
+++ b/decidim-assemblies/spec/serializers/decidim/assemblies/assembly_importer_spec.rb
@@ -419,6 +419,109 @@ module Decidim::Assemblies
.not_to change(Decidim::Attachment, :count)
end
end
+
+ context "when attachment collection is not defined" do
+ let(:attachments_data) do
+ {
+ "files" => [
+ {
+ "title" => { "en" => "Test File" },
+ "description" => { "en" => "Test Description" },
+ "weight" => 1,
+ "remote_file_url" => remote_file_url
+ }
+ ]
+ }
+ end
+
+ before do
+ stub_request(:head, remote_file_url)
+ .to_return(status: 200, headers: { "Content-Type" => "application/pdf" })
+ stub_request(:get, remote_file_url)
+ .to_return(status: 200, body: File.read(Decidim::Dev.asset("Exampledocument.pdf")))
+ end
+
+ it "does not create any attachments collections" do
+ expect { importer.import_folders_and_attachments(attachments_data) }
+ .not_to change(Decidim::AttachmentCollection, :count)
+ end
+ end
+
+ context "when attachment collection is nil" do
+ let(:attachments_data) do
+ {
+ "files" => [
+ {
+ "title" => { "en" => "Test File" },
+ "description" => { "en" => "Test Description" },
+ "weight" => 1,
+ "remote_file_url" => remote_file_url
+ }
+ ],
+ "attachment_collections" => nil
+ }
+ end
+
+ before do
+ stub_request(:head, remote_file_url)
+ .to_return(status: 200, headers: { "Content-Type" => "application/pdf" })
+ stub_request(:get, remote_file_url)
+ .to_return(status: 200, body: File.read(Decidim::Dev.asset("Exampledocument.pdf")))
+ end
+
+ it "does not create any attachments collections" do
+ expect { importer.import_folders_and_attachments(attachments_data) }
+ .not_to change(Decidim::AttachmentCollection, :count)
+ end
+ end
+
+ context "when attachment collection is defined" do
+ let(:attachment_data) do
+ {
+ "files" => [
+ {
+ "title" => { "en" => "Test File" },
+ "description" => { "en" => "Test Description" },
+ "weight" => 1,
+ "remote_file_url" => remote_file_url,
+ "attachment_collections" => {
+ "name" => {
+ "en" => "Collection name"
+ },
+ "weight" => 0,
+ "description" => {
+ "en" => "Collection description"
+ }
+ }
+ }
+ ],
+ "attachment_collections" => [
+ {
+ "name" => {
+ "en" => "Collection name"
+ },
+ "weight" => 0,
+ "description" => {
+ "en" => "Collection description"
+ }
+ }
+ ]
+ }
+ end
+
+ before do
+ stub_request(:head, remote_file_url)
+ .to_return(status: 200, headers: { "Content-Type" => "application/pdf" })
+ stub_request(:get, remote_file_url)
+ .to_return(status: 200, body: File.read(Decidim::Dev.asset("Exampledocument.pdf")))
+ end
+
+ it "creates the attachment and the collection" do
+ expect { importer.import_folders_and_attachments(attachment_data) }
+ .to change(Decidim::Attachment, :count).by(1)
+ .and change(Decidim::AttachmentCollection, :count).by(1)
+ end
+ end
end
end
end
diff --git a/decidim-assemblies/spec/shared/assembly_admin_manage_assembly_components_examples.rb b/decidim-assemblies/spec/shared/assembly_admin_manage_assembly_components_examples.rb
index d89efb9a6eebb..261fc0c0ee1f2 100644
--- a/decidim-assemblies/spec/shared/assembly_admin_manage_assembly_components_examples.rb
+++ b/decidim-assemblies/spec/shared/assembly_admin_manage_assembly_components_examples.rb
@@ -173,6 +173,8 @@
click_on "Publish"
end
+ expect(page).to have_admin_callout("The component has been successfully published.")
+
expect(Decidim::EventPublisherJob).to(have_been_enqueued.with(
"decidim.events.components.component_published", {
resource: component,
diff --git a/decidim-assemblies/spec/shared/manage_assembly_components_examples.rb b/decidim-assemblies/spec/shared/manage_assembly_components_examples.rb
index d0ba6eb492772..5603b18602875 100644
--- a/decidim-assemblies/spec/shared/manage_assembly_components_examples.rb
+++ b/decidim-assemblies/spec/shared/manage_assembly_components_examples.rb
@@ -201,7 +201,8 @@
it "hides the component from the menu" do
visit decidim_assemblies.assembly_path(assembly, locale: I18n.locale)
- expect(page).to have_content decidim_escape_translated(component.name)
+ expect(page).to have_content translated(component.name)
+ expect(page.html).to include decidim_escape_translated(component.name).gsub(""", "\"")
visit decidim_admin_assemblies.components_path(assembly)
@@ -216,7 +217,7 @@
end
visit decidim_assemblies.assembly_path(assembly, locale: I18n.locale)
- expect(page).to have_no_content decidim_escape_translated(component.name)
+ expect(page).to have_no_content translated(component.name)
end
end
diff --git a/decidim-assemblies/spec/system/admin/admin_imports_assembly_spec.rb b/decidim-assemblies/spec/system/admin/admin_imports_assembly_spec.rb
index fd67e9382fb93..3cb42099a3b57 100644
--- a/decidim-assemblies/spec/system/admin/admin_imports_assembly_spec.rb
+++ b/decidim-assemblies/spec/system/admin/admin_imports_assembly_spec.rb
@@ -103,7 +103,7 @@
end
end
let(:uploaded_file) do
- Rack::Test::UploadedFile.new(json_file.path, "application/json")
+ Decidim::Dev.uploaded_file(json_file.path, "application/json")
end
before do
@@ -264,7 +264,7 @@
end
end
let(:uploaded_file) do
- Rack::Test::UploadedFile.new(json_file.path, "application/json")
+ Decidim::Dev.uploaded_file(json_file.path, "application/json")
end
let(:hero_image_url) { "http://example.com/#{"a" * 5000}.jpg" }
let(:banner_image_url) { "http://example.com/#{"b" * 5000}.jpg" }
@@ -321,7 +321,7 @@
end
end
let(:uploaded_file) do
- Rack::Test::UploadedFile.new(json_file.path, "application/json")
+ Decidim::Dev.uploaded_file(json_file.path, "application/json")
end
before do
diff --git a/decidim-assemblies/spec/system/assemblies_spec.rb b/decidim-assemblies/spec/system/assemblies_spec.rb
index 3fa7457d1d4eb..7d7abe4a26aed 100644
--- a/decidim-assemblies/spec/system/assemblies_spec.rb
+++ b/decidim-assemblies/spec/system/assemblies_spec.rb
@@ -252,8 +252,24 @@
it "shows the components" do
within ".participatory-space__nav-container" do
- expect(page).to have_content(decidim_escape_translated(proposals_component.name))
- expect(page).to have_no_content(decidim_escape_translated(meetings_component.name))
+ expect(page).to have_content(translated(proposals_component.name))
+ expect(page.html).to include(decidim_escape_translated(proposals_component.name).gsub(""", "\""))
+ expect(page).to have_no_content(translated(meetings_component.name))
+ end
+ end
+
+ describe "when there are special characters (', &) in the nav links" do
+ let(:participatory_space) { assembly }
+ let(:component_name) { "People's Budget & Ideas" }
+ let!(:proposal_component) { create(:proposal_component, name: { en: component_name }, participatory_space:) }
+
+ it "renders the component name correctly" do
+ visit current_path
+ within ".participatory-space__nav-container" do
+ expect(page).to have_content(component_name)
+ expect(page).to have_no_content("'")
+ expect(page).to have_no_content("'")
+ end
end
end
end
diff --git a/decidim-blogs/app/cells/decidim/blogs/post_metadata_cell.rb b/decidim-blogs/app/cells/decidim/blogs/post_metadata_cell.rb
index 6822dd45ada1d..b061eb9db6f29 100644
--- a/decidim-blogs/app/cells/decidim/blogs/post_metadata_cell.rb
+++ b/decidim-blogs/app/cells/decidim/blogs/post_metadata_cell.rb
@@ -2,7 +2,7 @@
module Decidim
module Blogs
- # This cell renders metadata for an instance of a Proposal
+ # This cell renders metadata for an instance of a Post
class PostMetadataCell < Decidim::CardMetadataCell
def initialize(*)
super
@@ -13,7 +13,7 @@ def initialize(*)
private
def post_items
- [author_item, creation_date, comments_count_item, likes_count_item]
+ [author_item] + taxonomy_items + [creation_date, comments_count_item, likes_count_item]
end
def creation_date
diff --git a/decidim-blogs/app/commands/decidim/blogs/update_post.rb b/decidim-blogs/app/commands/decidim/blogs/update_post.rb
index fb3b6159a8c8f..e1656ba3ec1bc 100644
--- a/decidim-blogs/app/commands/decidim/blogs/update_post.rb
+++ b/decidim-blogs/app/commands/decidim/blogs/update_post.rb
@@ -38,7 +38,7 @@ def attributes
def run_after_hooks
@attached_to = resource
- document_cleanup!(include_all_attachments: true)
+ attachment_cleanup!(include_all_attachments: true)
create_attachments(first_weight: 1) if process_attachments?
end
end
diff --git a/decidim-blogs/app/controllers/decidim/blogs/orderable.rb b/decidim-blogs/app/controllers/decidim/blogs/orderable.rb
new file mode 100644
index 0000000000000..161c5606afcc0
--- /dev/null
+++ b/decidim-blogs/app/controllers/decidim/blogs/orderable.rb
@@ -0,0 +1,61 @@
+# frozen_string_literal: true
+
+require "active_support/concern"
+
+module Decidim
+ module Blogs
+ module Orderable
+ extend ActiveSupport::Concern
+
+ included do
+ include Decidim::Orderable
+
+ private
+
+ # i18n-tasks-use t('decidim.blogs.posts.orders.label')
+ # i18n-tasks-use t('decidim.blogs.posts.orders.most_commented')
+ # i18n-tasks-use t('decidim.blogs.posts.orders.random')
+ # i18n-tasks-use t('decidim.blogs.posts.orders.recent')
+
+ def available_orders
+ @available_orders ||= possible_orders
+ end
+
+ def possible_orders
+ @possible_orders ||= begin
+ possible_orders = %w(random recent)
+ possible_orders << "most_commented" if most_commented_order_available?
+ possible_orders
+ end
+ end
+
+ def default_order
+ "recent"
+ end
+
+ def most_commented_order_available?
+ return @most_commented_order_available if defined?(@most_commented_order_available)
+
+ @most_commented_order_available = Decidim::Blogs::Post.most_commented_available?(current_component)
+ end
+
+ def reorder(posts)
+ case order
+ when "recent"
+ posts.order(published_at: :desc)
+ when "most_commented"
+ posts.order(comments_count: :desc)
+ when "random"
+ posts.order_randomly(random_seed)
+ else
+ posts
+ end
+ end
+
+ def paginate_posts
+ @paginate_posts ||= paginate(reorder(posts))
+ end
+ end
+ end
+ end
+end
diff --git a/decidim-blogs/app/controllers/decidim/blogs/posts_controller.rb b/decidim-blogs/app/controllers/decidim/blogs/posts_controller.rb
index 0a3dbb969658f..2d2380e126a40 100644
--- a/decidim-blogs/app/controllers/decidim/blogs/posts_controller.rb
+++ b/decidim-blogs/app/controllers/decidim/blogs/posts_controller.rb
@@ -6,12 +6,15 @@ module Blogs
class PostsController < Decidim::Blogs::ApplicationController
include Flaggable
include Paginable
+ include FilterResource
include Decidim::IconHelper
+ include Decidim::Blogs::Orderable
helper Decidim::Blogs::PostsSelectHelper
include Decidim::FormFactory
helper_method :posts, :post, :post_presenter, :paginate_posts, :posts_most_commented, :tabs, :panels
+ before_action :authenticate_user!, only: [:new, :create, :edit, :update, :destroy]
def index; end
@@ -77,10 +80,6 @@ def destroy
private
- def paginate_posts
- @paginate_posts ||= paginate(posts.created_at_desc)
- end
-
def post
@post ||= posts.find(params[:id])
end
@@ -90,11 +89,7 @@ def post_presenter
end
def posts
- @posts ||= if current_user&.admin?
- Post.where(component: current_component).published_at_desc
- else
- Post.published.where(component: current_component).published_at_desc
- end
+ @posts ||= search.result
end
# PROVISIONAL if we implement counter cache
@@ -103,6 +98,18 @@ def posts_most_commented
.select("count(decidim_comments_comments.id) as counter")
.select("decidim_blogs_posts.*").order("counter DESC").published_at_desc.limit(7)
end
+
+ def search_collection
+ if current_user&.admin?
+ Post.where(component: current_component)
+ else
+ Post.published.where(component: current_component)
+ end
+ end
+
+ def default_filter_params
+ { search_text_cont: "", with_any_taxonomies: nil }
+ end
end
end
end
diff --git a/decidim-blogs/app/forms/decidim/blogs/post_form.rb b/decidim-blogs/app/forms/decidim/blogs/post_form.rb
index 9a23a3943f563..e3ad79ae9f478 100644
--- a/decidim-blogs/app/forms/decidim/blogs/post_form.rb
+++ b/decidim-blogs/app/forms/decidim/blogs/post_form.rb
@@ -14,7 +14,7 @@ class PostForm < Decidim::Form
attribute :decidim_author_id, Integer
- attachments_attribute :documents
+ attachments_attribute :attachments
validates :body, translatable_presence: true
validates :title, translatable_presence: true
@@ -28,7 +28,7 @@ def map_model(model)
self.title = presenter.title
self.body = presenter.body
- self.documents = model.attachments
+ self.attachments = model.attachments
end
def author
diff --git a/decidim-blogs/app/helpers/decidim/blogs/application_helper.rb b/decidim-blogs/app/helpers/decidim/blogs/application_helper.rb
index c5858d6f57b6c..3203e38f09ca2 100644
--- a/decidim-blogs/app/helpers/decidim/blogs/application_helper.rb
+++ b/decidim-blogs/app/helpers/decidim/blogs/application_helper.rb
@@ -11,10 +11,25 @@ module ApplicationHelper
include ::Decidim::LikeableHelper
include ::Decidim::FollowableHelper
include Decidim::Comments::CommentsHelper
+ include Decidim::CheckBoxesTreeHelper
def component_name
(defined?(current_component) && translated_attribute(current_component&.name).presence) || t("decidim.components.blogs.name")
end
+
+ def filter_sections
+ @filter_sections ||= current_component.available_taxonomy_filters.map do |taxonomy_filter|
+ {
+ method: :with_any_taxonomies,
+ name: "[with_any_taxonomies][#{taxonomy_filter.root_taxonomy_id}]",
+ collection: filter_taxonomy_values_for(taxonomy_filter),
+ label: decidim_sanitize_translated(taxonomy_filter.name),
+ id: "taxonomy-#{taxonomy_filter.root_taxonomy_id}"
+ }
+ end
+ end
+
+ def search_variable = :search_text_cont
end
end
end
diff --git a/decidim-blogs/app/models/decidim/blogs/post.rb b/decidim-blogs/app/models/decidim/blogs/post.rb
index c1c1801729431..fd70589d535da 100644
--- a/decidim-blogs/app/models/decidim/blogs/post.rb
+++ b/decidim-blogs/app/models/decidim/blogs/post.rb
@@ -21,6 +21,8 @@ class Post < Blogs::ApplicationRecord
include Traceable
include Loggable
include Decidim::SoftDeletable
+ include Decidim::FilterableResource
+ include Decidim::Randomable
component_manifest_name "blogs"
@@ -101,6 +103,37 @@ def reported_attributes
def reported_searchable_content_extras
[author.name]
end
+
+ # Create i18n ransackers for :title and :body.
+ # Create the :search_text ransacker alias for searching from both of these.
+ ransacker_i18n_multi :search_text, [:title, :body]
+
+ def self.most_commented_available?(component)
+ return false unless component.settings.comments_enabled?
+
+ where(component:)
+ .not_hidden
+ .where("comments_count > 0")
+ .exists?
+ end
+
+ def self.ransackable_scopes(_auth_object = nil)
+ [:with_any_taxonomies]
+ end
+
+ def self.ransackable_attributes(_auth_object = nil)
+ %w(search_text title body)
+ end
+
+ def self.ransackable_associations(_auth_object = nil)
+ %w(taxonomies)
+ end
+
+ private
+
+ def comments_blocked?
+ component.current_settings.comments_blocked
+ end
end
end
end
diff --git a/decidim-blogs/app/views/decidim/blogs/admin/posts/_actions.html.erb b/decidim-blogs/app/views/decidim/blogs/admin/posts/_actions.html.erb
index 0c00f55a17991..e4fbfea809cf5 100644
--- a/decidim-blogs/app/views/decidim/blogs/admin/posts/_actions.html.erb
+++ b/decidim-blogs/app/views/decidim/blogs/admin/posts/_actions.html.erb
@@ -70,7 +70,7 @@
<%= attachments_for post %>
-
- <%= render partial: "actions" %>
+ <%= cell "decidim/tags", post %>
+
+ <%= render partial: "actions" %>
+
<%= comments_for post %>
diff --git a/decidim-blogs/config/locales/ar.yml b/decidim-blogs/config/locales/ar.yml
index d61639bca34b7..84abb76b05045 100644
--- a/decidim-blogs/config/locales/ar.yml
+++ b/decidim-blogs/config/locales/ar.yml
@@ -67,7 +67,6 @@ ar:
global:
announcement: إعلان
comments_enabled: تم تمكين التعليقات
- comments_max_length: الحد الأقصى لطول التعليقات (اترك 0 للقيمة الافتراضية)
step:
announcement: إعلان
comments_blocked: تم حظر التعليقات
diff --git a/decidim-blogs/config/locales/bg.yml b/decidim-blogs/config/locales/bg.yml
index e6a35bb956374..00b18771c0b06 100644
--- a/decidim-blogs/config/locales/bg.yml
+++ b/decidim-blogs/config/locales/bg.yml
@@ -76,7 +76,6 @@ bg:
global:
announcement: Обявление
comments_enabled: Коментарите са разрешени
- comments_max_length: Максимална дължина на коментарите (Оставете 0 за стойност по подразбиране)
step:
announcement: Обявление
comments_blocked: Коментарите са блокирани
diff --git a/decidim-blogs/config/locales/ca-IT.yml b/decidim-blogs/config/locales/ca-IT.yml
index 5a4afbd1d8a83..060b0d3edfe34 100644
--- a/decidim-blogs/config/locales/ca-IT.yml
+++ b/decidim-blogs/config/locales/ca-IT.yml
@@ -114,7 +114,7 @@ ca-IT:
announcement: Avís
attachments_allowed: Permetre fitxers adjunts
comments_enabled: Comentaris habilitats
- comments_max_length: Longitud màxima dels comentaris (deixa 0 si vols mantenir la configuració per defecte)
+ comments_max_length: Caràcters màxims per comentari (deixar a 0 el valor predeterminat)
creation_enabled_for_participants: Les participants poden crear noves entrades en el blog
define_taxonomy_filters: Si us plau, defineix alguns filtres per aquest espai de participació abans de fer servir aquesta configuració.
no_taxonomy_filters_found: No s'han trobat filtres de taxonomia.
diff --git a/decidim-blogs/config/locales/ca.yml b/decidim-blogs/config/locales/ca.yml
index 27360081aa67f..8a74db39a9c04 100644
--- a/decidim-blogs/config/locales/ca.yml
+++ b/decidim-blogs/config/locales/ca.yml
@@ -114,7 +114,7 @@ ca:
announcement: Avís
attachments_allowed: Permetre fitxers adjunts
comments_enabled: Comentaris habilitats
- comments_max_length: Longitud màxima dels comentaris (deixa 0 si vols mantenir la configuració per defecte)
+ comments_max_length: Caràcters màxims per comentari (deixar a 0 el valor predeterminat)
creation_enabled_for_participants: Les participants poden crear noves entrades en el blog
define_taxonomy_filters: Si us plau, defineix alguns filtres per aquest espai de participació abans de fer servir aquesta configuració.
no_taxonomy_filters_found: No s'han trobat filtres de taxonomia.
diff --git a/decidim-blogs/config/locales/cs.yml b/decidim-blogs/config/locales/cs.yml
index f9935e1a4b642..bde46a79c357b 100644
--- a/decidim-blogs/config/locales/cs.yml
+++ b/decidim-blogs/config/locales/cs.yml
@@ -118,7 +118,7 @@ cs:
announcement: Oznámení
attachments_allowed: Povolit přílohy
comments_enabled: Komentáře povoleny
- comments_max_length: Maximální délka komentáře (ponechte 0 pro výchozí hodnotu)
+ comments_max_length: Maximální počet znaků na komentář (ponechte 0 pro výchozí hodnotu)
creation_enabled_for_participants: Účastníci mohou vytvářet příspěvky
define_taxonomy_filters: Před použitím tohoto nastavení prosím definujte některé filtry pro tento participační prostor.
no_taxonomy_filters_found: Nebyly nalezeny žádné filtry taxonomie.
diff --git a/decidim-blogs/config/locales/de.yml b/decidim-blogs/config/locales/de.yml
index c3c421514c151..f9263e4606573 100644
--- a/decidim-blogs/config/locales/de.yml
+++ b/decidim-blogs/config/locales/de.yml
@@ -114,7 +114,7 @@ de:
announcement: Ankündigung
attachments_allowed: Anhänge zulassen
comments_enabled: Kommentare aktiviert
- comments_max_length: Maximale Länge der Kommentare (0 für Standardwert)
+ comments_max_length: Maximale Zeichenanzahl pro Kommentar (0 für Standardwert)
creation_enabled_for_participants: Teilnehmende können Beiträge erstellen
define_taxonomy_filters: Bitte definieren Sie einige Filter für diesen partizipativen Bereich, bevor Sie diese Einstellung verwenden.
no_taxonomy_filters_found: Keine Klassifizierungsfilter gefunden.
@@ -154,7 +154,7 @@ de:
follows_count: Die Anzahl Folgende dieses Beitrags
id: Die eindeutige Bezeichnung des Beitrags
likes_count: Die Anzahl Likes dieses Beitrags
- participatory_space: Zu welchem Bereich dieser Beitrag gehört (z.B. Partizipationsprozesse oder Gremien)
+ participatory_space: Zu welchem Bereich dieser Beitrag gehört (z.B. Partizipationsprozesse oder Versammlungen)
published_at: Veröffentlichungsdatum des Beitrags
title: Der Titel des Beitrags
updated_at: Letztes Aktualisierungsdatum dieses Beitrags
diff --git a/decidim-blogs/config/locales/el.yml b/decidim-blogs/config/locales/el.yml
index 8c3cbb40c178b..bfbee041335c8 100644
--- a/decidim-blogs/config/locales/el.yml
+++ b/decidim-blogs/config/locales/el.yml
@@ -65,7 +65,6 @@ el:
global:
announcement: Ανακοίνωση
comments_enabled: Τα σχόλια ενεργοποιήθηκαν
- comments_max_length: Μέγιστο μέγεθος σχολίων (Αφήστε το 0 για το προκαθορισμένο μέγεθος)
step:
announcement: Ανακοίνωση
comments_blocked: Τα σχόλια αποκλείστηκαν
diff --git a/decidim-blogs/config/locales/en.yml b/decidim-blogs/config/locales/en.yml
index d7e172c686e1a..5e176bf01d62f 100644
--- a/decidim-blogs/config/locales/en.yml
+++ b/decidim-blogs/config/locales/en.yml
@@ -100,6 +100,11 @@ en:
back: Back to posts
button: Create
title: Create new post
+ orders:
+ label: Order posts by
+ most_commented: Most commented
+ random: Random order
+ recent: Most recent
components:
blogs:
actions:
@@ -114,7 +119,7 @@ en:
announcement: Announcement
attachments_allowed: Allow attachments
comments_enabled: Comments enabled
- comments_max_length: Comments max length (Leave 0 for default value)
+ comments_max_length: Max characters per comment (Leave 0 for default value)
creation_enabled_for_participants: Participants can create posts
define_taxonomy_filters: Please define some filters for this participatory space before using this setting.
no_taxonomy_filters_found: No taxonomy filters found.
diff --git a/decidim-blogs/config/locales/es-MX.yml b/decidim-blogs/config/locales/es-MX.yml
index 00824154b2e4f..66af461ac377c 100644
--- a/decidim-blogs/config/locales/es-MX.yml
+++ b/decidim-blogs/config/locales/es-MX.yml
@@ -114,7 +114,7 @@ es-MX:
announcement: Anuncio
attachments_allowed: Permitir archivos adjuntos
comments_enabled: Comentarios habilitados
- comments_max_length: Longitud máxima de los comentarios (deja 0 si quieres mantener la configuración por defecto)
+ comments_max_length: Caracteres máximos por comentario (dejar 0 para el valor predeterminado)
creation_enabled_for_participants: Las participantes pueden crear nuevas entradas en el blog
define_taxonomy_filters: Por favor, define algunos filtros para este espacio de participación antes de utilizar esta configuración.
no_taxonomy_filters_found: No se han encontrado filtros de taxonomía.
diff --git a/decidim-blogs/config/locales/es-PY.yml b/decidim-blogs/config/locales/es-PY.yml
index 6cbb4c0900eaa..ba6554a04dcfc 100644
--- a/decidim-blogs/config/locales/es-PY.yml
+++ b/decidim-blogs/config/locales/es-PY.yml
@@ -114,7 +114,7 @@ es-PY:
announcement: Anuncio
attachments_allowed: Permitir archivos adjuntos
comments_enabled: Comentarios habilitados
- comments_max_length: Longitud máxima de los comentarios (deja 0 si quieres mantener la configuración por defecto)
+ comments_max_length: Caracteres máximos por comentario (dejar 0 para el valor predeterminado)
creation_enabled_for_participants: Las participantes pueden crear nuevas entradas en el blog
define_taxonomy_filters: Por favor, define algunos filtros para este espacio de participación antes de utilizar esta configuración.
no_taxonomy_filters_found: No se han encontrado filtros de taxonomía.
diff --git a/decidim-blogs/config/locales/es.yml b/decidim-blogs/config/locales/es.yml
index 2180a453abcaa..0cd7b9a9eb430 100644
--- a/decidim-blogs/config/locales/es.yml
+++ b/decidim-blogs/config/locales/es.yml
@@ -114,7 +114,7 @@ es:
announcement: Aviso
attachments_allowed: Permitir archivos adjuntos
comments_enabled: Comentarios habilitados
- comments_max_length: Longitud máxima de los comentarios (deja 0 si quieres mantener la configuración por defecto)
+ comments_max_length: Caracteres máximos por comentario (dejar 0 para el valor predeterminado)
creation_enabled_for_participants: Las participantes pueden crear nuevas entradas en el blog
define_taxonomy_filters: Por favor, define algunos filtros para este espacio de participación antes de utilizar esta configuración.
no_taxonomy_filters_found: No se han encontrado filtros de taxonomía.
diff --git a/decidim-blogs/config/locales/eu.yml b/decidim-blogs/config/locales/eu.yml
index 06f5f09138007..2d67c6ea0c1df 100644
--- a/decidim-blogs/config/locales/eu.yml
+++ b/decidim-blogs/config/locales/eu.yml
@@ -88,7 +88,7 @@ eu:
title: Izenburua
index:
count:
- one: "%{count} argitalpen"
+ one: "Argitalpen bat"
other: "%{count} argitalpen"
empty: Oraindik ez dago argitalpenik.
new_post: Beste sarrera bat
@@ -114,7 +114,7 @@ eu:
announcement: Iragarpena
attachments_allowed: Baimendu eranskinak
comments_enabled: Iruzkinak gaituta
- comments_max_length: Iruzkinen gehieneko luzera (utzi 0 lehenetsitako konfigurazioari eutsi nahi badiozu)
+ comments_max_length: Iruzkin bakoitzeko gehieneko karaktereak (utzi 0 aurrez zehaztutako baliorako)
creation_enabled_for_participants: Parte-hartzaileek sarrerak sor ditzakete
define_taxonomy_filters: Mesedez, zehaztu iragazki batzuk partaidetza-espazio honetarako eszenatoki hau erabili aurretik.
no_taxonomy_filters_found: Ez da taxonomia-iragazkirik aurkitu.
diff --git a/decidim-blogs/config/locales/fr-CA.yml b/decidim-blogs/config/locales/fr-CA.yml
index 08fa504b4be76..ee5bfa70e6045 100644
--- a/decidim-blogs/config/locales/fr-CA.yml
+++ b/decidim-blogs/config/locales/fr-CA.yml
@@ -106,6 +106,7 @@ fr-CA:
comment: Commenter
create: Créer
destroy: Supprimer
+ like: Soutenir
update: Mettre à jour
name: Actualités
settings:
@@ -113,7 +114,7 @@ fr-CA:
announcement: Annonce
attachments_allowed: Autoriser les pièces jointes
comments_enabled: Activer le module de commentaire
- comments_max_length: Longueur max des commentaires (laisser 0 pour la valeur par défaut)
+ comments_max_length: Nombre maximum de caractères par commentaire (Laisser 0 pour la valeur par défaut)
creation_enabled_for_participants: Les participants peuvent créer des articles
define_taxonomy_filters: Veuillez définir des filtres pour cet espace participatif avant d'utiliser ce paramètre.
no_taxonomy_filters_found: Aucun filtre de taxonomie trouvé.
@@ -122,6 +123,8 @@ fr-CA:
step:
announcement: Annonce
comments_blocked: Commentaires désactivés
+ likes_blocked: Soutiens bloqués
+ likes_enabled: Soutiens activés
events:
blogs:
post_created:
@@ -136,14 +139,22 @@ fr-CA:
author: Le nom du participant qui a fait ce commentaire
body: Le commentaire lui-même
commentable_id: L'identifiant unique du commentaire
+ commentable_type: Le type de l'élément commenté (s'il s'agit d'un résultat, d'une proposition, etc.)
created_at: La date de création de ce commentaire
+ depth: L'endroit où ce commentaire se trouve dans l'arborescence des commentaires (si c'est une réponse ou une réponse à une réponse)
id: L'id de ce commentaire
+ locale: La langue que le participant a utilisé en créant ce commentaire
+ root_commentable_url: L'URL de la ressource liée à ce commentaire
posts:
+ author: Les informations de l'auteur
body: Le corps de l'article
comments_count: Le nombre de commentaires sur cet article
component: Le composant auquel appartient l'article
created_at: La date de création de cet article
+ follows_count: Le nombre de personnes qui suivent cet article
id: L'identifiant unique de cet article
+ likes_count: Le nombre de soutiens à cet article
+ participatory_space: 'À quel espace (ex : Concertation ou Assemblée) appartient cet article'
published_at: La date à laquelle cet article a été publié
title: Le titre de l'article
updated_at: La dernière date de mise à jour de cet article
diff --git a/decidim-blogs/config/locales/fr.yml b/decidim-blogs/config/locales/fr.yml
index c64afa4ab62af..10ab4e8b60f0a 100644
--- a/decidim-blogs/config/locales/fr.yml
+++ b/decidim-blogs/config/locales/fr.yml
@@ -106,6 +106,7 @@ fr:
comment: Commenter
create: Créer
destroy: Supprimer
+ like: Soutenir
update: Mettre à jour
name: Actualités
settings:
@@ -113,7 +114,7 @@ fr:
announcement: Annonce
attachments_allowed: Autoriser les pièces jointes
comments_enabled: Activer le module de commentaire
- comments_max_length: Longueur max des commentaires (laisser 0 pour la valeur par défaut)
+ comments_max_length: Nombre maximum de caractères par commentaire (Laisser 0 pour la valeur par défaut)
creation_enabled_for_participants: Les participants peuvent créer des articles
define_taxonomy_filters: Veuillez définir des filtres pour cet espace participatif avant d'utiliser ce paramètre.
no_taxonomy_filters_found: Aucun filtre de taxonomie trouvé.
@@ -122,6 +123,8 @@ fr:
step:
announcement: Annonce
comments_blocked: Commentaires désactivés
+ likes_blocked: Soutiens bloqués
+ likes_enabled: Soutiens activés
events:
blogs:
post_created:
@@ -136,14 +139,22 @@ fr:
author: Le nom du participant qui a fait ce commentaire
body: Le commentaire lui-même
commentable_id: L'identifiant unique du commentaire
+ commentable_type: Le type de l'élément commenté (s'il s'agit d'un résultat, d'une proposition, etc.)
created_at: La date de création de ce commentaire
+ depth: L'endroit où ce commentaire se trouve dans l'arborescence des commentaires (si c'est une réponse ou une réponse à une réponse)
id: L'id de ce commentaire
+ locale: La langue que le participant a utilisé en créant ce commentaire
+ root_commentable_url: L'URL de la ressource liée à ce commentaire
posts:
+ author: Les informations de l'auteur
body: Le corps de l'article
comments_count: Le nombre de commentaires sur cet article
component: Le composant auquel appartient l'article
created_at: La date de création de cet article
+ follows_count: Le nombre de personnes qui suivent cet article
id: L'identifiant unique de cet article
+ likes_count: Le nombre de soutiens à cet article
+ participatory_space: 'À quel espace (ex : Concertation ou Assemblée) appartient cet article'
published_at: La date à laquelle cet article a été publié
title: Le titre de l'article
updated_at: La dernière date de mise à jour de cet article
diff --git a/decidim-blogs/config/locales/gl.yml b/decidim-blogs/config/locales/gl.yml
index 43db66c1fe8c7..54e9278fb8feb 100644
--- a/decidim-blogs/config/locales/gl.yml
+++ b/decidim-blogs/config/locales/gl.yml
@@ -43,7 +43,6 @@ gl:
global:
announcement: Anuncio
comments_enabled: Comentarios habilitados
- comments_max_length: Lonxitude máxima dos comentarios (0 para valor predefinido)
step:
announcement: Anuncio
comments_blocked: Comentarios bloqueados
diff --git a/decidim-blogs/config/locales/hu.yml b/decidim-blogs/config/locales/hu.yml
index f4e0e38afcb5e..52b2d6d72bf63 100644
--- a/decidim-blogs/config/locales/hu.yml
+++ b/decidim-blogs/config/locales/hu.yml
@@ -73,7 +73,6 @@ hu:
global:
announcement: Közlemény
comments_enabled: Megjegyzések engedélyezve
- comments_max_length: Kommentek maximális hossza (Hagyjon 0 -t az alapértékhez)
step:
announcement: Közlemény
comments_blocked: Megjegyzések letiltva
diff --git a/decidim-blogs/config/locales/it.yml b/decidim-blogs/config/locales/it.yml
index 08a3fd5acb594..ed14f15ff21af 100644
--- a/decidim-blogs/config/locales/it.yml
+++ b/decidim-blogs/config/locales/it.yml
@@ -41,7 +41,6 @@ it:
global:
announcement: Annuncio
comments_enabled: Commenti abilitati
- comments_max_length: Lunghezza massima dei commenti (Lasciare 0 per il valore predefinito)
step:
announcement: Annuncio
comments_blocked: Commenti bloccati
diff --git a/decidim-blogs/config/locales/ja.yml b/decidim-blogs/config/locales/ja.yml
index b89c0c8162888..7ce8bb18f5b1f 100644
--- a/decidim-blogs/config/locales/ja.yml
+++ b/decidim-blogs/config/locales/ja.yml
@@ -112,7 +112,7 @@ ja:
announcement: お知らせ
attachments_allowed: 添付ファイルを許可
comments_enabled: コメントを有効にする
- comments_max_length: コメント最大長 (デフォルト値は 0 のまま)
+ comments_max_length: 各コメントの最大文字数 (0はデフォルト値のまま)
creation_enabled_for_participants: 参加者は投稿を作成できます
define_taxonomy_filters: この設定を使用する前に、参加型スペースのフィルターをいくつか定義してください。
no_taxonomy_filters_found: タクソノミーフィルタが見つかりません。
diff --git a/decidim-blogs/config/locales/ko.yml b/decidim-blogs/config/locales/ko.yml
index ffba1e6deddee..ccd8d7b3c88f2 100644
--- a/decidim-blogs/config/locales/ko.yml
+++ b/decidim-blogs/config/locales/ko.yml
@@ -38,7 +38,6 @@ ko:
global:
announcement: 공지 사항
comments_enabled: 댓글 활성화됨
- comments_max_length: 댓글 최대 길이(기본값은 0으로 남김)
step:
announcement: 공지 사항
comments_blocked: 댓글 차단됨
diff --git a/decidim-blogs/config/locales/lb.yml b/decidim-blogs/config/locales/lb.yml
index 510507a577b54..9a750c2f959a1 100644
--- a/decidim-blogs/config/locales/lb.yml
+++ b/decidim-blogs/config/locales/lb.yml
@@ -41,7 +41,6 @@ lb:
global:
announcement: Ankündigung
comments_enabled: Kommentare aktiviert
- comments_max_length: Maximale Länge der Kommentare (0 für Standardwert)
step:
announcement: Ankündigung
comments_blocked: Kommentare blockiert
diff --git a/decidim-blogs/config/locales/lt.yml b/decidim-blogs/config/locales/lt.yml
index ad0ebab3fd124..f12f874574907 100644
--- a/decidim-blogs/config/locales/lt.yml
+++ b/decidim-blogs/config/locales/lt.yml
@@ -72,7 +72,6 @@ lt:
global:
announcement: Pranešimas
comments_enabled: Komentarai įjungti
- comments_max_length: Maksimalus komentaro ilgis (įrašyti 0 įprastam ilgiui)
step:
announcement: Pranešimas
comments_blocked: Komentarai užblokuoti
diff --git a/decidim-blogs/config/locales/nl.yml b/decidim-blogs/config/locales/nl.yml
index 013392813af94..b73ad19f80131 100644
--- a/decidim-blogs/config/locales/nl.yml
+++ b/decidim-blogs/config/locales/nl.yml
@@ -49,7 +49,6 @@ nl:
global:
announcement: Aankondiging
comments_enabled: Reacties ingeschakeld
- comments_max_length: Commentaar maximale lengte (laat 0 voor standaard waarde)
step:
announcement: Aankondiging
comments_blocked: Reacties geblokkeerd
diff --git a/decidim-blogs/config/locales/no.yml b/decidim-blogs/config/locales/no.yml
index d1f601dbf30b6..46090ebfbc440 100644
--- a/decidim-blogs/config/locales/no.yml
+++ b/decidim-blogs/config/locales/no.yml
@@ -43,7 +43,6 @@
global:
announcement: Kunngjøring
comments_enabled: Kommentarer aktivert
- comments_max_length: Maks lengde på kommentarer (Sett 0 for standardverdi)
step:
announcement: Kunngjøring
comments_blocked: Kommentarer blokkert
diff --git a/decidim-blogs/config/locales/pl.yml b/decidim-blogs/config/locales/pl.yml
index a55187a01404e..5c197e3d93975 100644
--- a/decidim-blogs/config/locales/pl.yml
+++ b/decidim-blogs/config/locales/pl.yml
@@ -75,7 +75,6 @@ pl:
global:
announcement: Ogłoszenie
comments_enabled: Komentarze włączone
- comments_max_length: Maksymalna długość komentarzy (Pozostaw 0 dla wartości domyślnej)
step:
announcement: Ogłoszenie
comments_blocked: Komentarze zablokowane
diff --git a/decidim-blogs/config/locales/pt-BR.yml b/decidim-blogs/config/locales/pt-BR.yml
index c5e68b58d8f05..bf26b14cc8f5d 100644
--- a/decidim-blogs/config/locales/pt-BR.yml
+++ b/decidim-blogs/config/locales/pt-BR.yml
@@ -114,7 +114,6 @@ pt-BR:
announcement: Anúncio
attachments_allowed: Permitir anexos
comments_enabled: Comentários ativados
- comments_max_length: Tamanho máximo de comentários (deixe 0 para o valor padrão)
creation_enabled_for_participants: Os usuários podem criar postagens
define_taxonomy_filters: Por favor, defina alguns filtros para este espaço participativo antes de usar esta configuração.
no_taxonomy_filters_found: Nenhum filtro de taxonomia encontrado.
diff --git a/decidim-blogs/config/locales/pt.yml b/decidim-blogs/config/locales/pt.yml
index b4b5974d873fe..39392b32328ec 100644
--- a/decidim-blogs/config/locales/pt.yml
+++ b/decidim-blogs/config/locales/pt.yml
@@ -106,7 +106,6 @@ pt:
global:
announcement: Anúncio
comments_enabled: Comentários ativados
- comments_max_length: Comprimento máximo dos comentários (Deixar 0 para o valor predefinido)
creation_enabled_for_participants: Os participantes podem criar publicações
step:
announcement: Anúncio
diff --git a/decidim-blogs/config/locales/ro-RO.yml b/decidim-blogs/config/locales/ro-RO.yml
index bdbb7f1cf5493..dc715162c71c9 100644
--- a/decidim-blogs/config/locales/ro-RO.yml
+++ b/decidim-blogs/config/locales/ro-RO.yml
@@ -116,7 +116,6 @@ ro:
announcement: Anunț
attachments_allowed: Permiteți atașamente
comments_enabled: Comentarii activate
- comments_max_length: Lungimea maximă a comentariilor (lăsați 0 pentru valoarea implicită)
creation_enabled_for_participants: Participanții pot crea postări
define_taxonomy_filters: Vă rugăm să definiți niște filtre pentru acest spațiu participativ înainte de a utiliza această setare.
no_taxonomy_filters_found: Nici un filtru de taxonomie găsit.
diff --git a/decidim-blogs/config/locales/ru.yml b/decidim-blogs/config/locales/ru.yml
index e06b60273004b..55a80f20d33b5 100644
--- a/decidim-blogs/config/locales/ru.yml
+++ b/decidim-blogs/config/locales/ru.yml
@@ -71,7 +71,6 @@ ru:
global:
announcement: Объявление
comments_enabled: Комментарии включены
- comments_max_length: Максимальная длина комментариев (оставьте 0 для значения по умолчанию)
step:
announcement: Объявление
comments_blocked: Комментарии отключены
diff --git a/decidim-blogs/config/locales/sk.yml b/decidim-blogs/config/locales/sk.yml
index b5c64bca52903..ebec8e46477d2 100644
--- a/decidim-blogs/config/locales/sk.yml
+++ b/decidim-blogs/config/locales/sk.yml
@@ -118,7 +118,6 @@ sk:
announcement: Oznámenie
attachments_allowed: Povoliť prílohy
comments_enabled: Komentáre povolené
- comments_max_length: Maximálna dĺžka komentárov (Ponechajte 0 pre predvolenú hodnotu)
creation_enabled_for_participants: Účastníci môžu vytvárať príspevky
define_taxonomy_filters: Pred použitím tohto nastavenia definujte nejaké filtre pre tento participatívny priestor.
no_taxonomy_filters_found: Nenašli sa žiadne filtre taxonómie.
diff --git a/decidim-blogs/config/locales/sq-AL.yml b/decidim-blogs/config/locales/sq-AL.yml
index 7e838337d39f0..db8ec228224bc 100644
--- a/decidim-blogs/config/locales/sq-AL.yml
+++ b/decidim-blogs/config/locales/sq-AL.yml
@@ -76,7 +76,6 @@ sq:
global:
announcement: Njoftim
comments_enabled: Komentet janë aktivizuar
- comments_max_length: Gjatësia maksimale e komenteve (Lëre 0 për vlerën e paracaktuar)
step:
announcement: Njoftim
comments_blocked: Komentet të bllokuara
diff --git a/decidim-blogs/config/locales/sv.yml b/decidim-blogs/config/locales/sv.yml
index 47b401c83e774..807206292a030 100644
--- a/decidim-blogs/config/locales/sv.yml
+++ b/decidim-blogs/config/locales/sv.yml
@@ -114,7 +114,6 @@ sv:
announcement: Meddelande
attachments_allowed: Tillåt bilagor
comments_enabled: Aktivera kommentarer
- comments_max_length: Maximal kommentarslängd (ange 0 för att använda standardvärdet)
creation_enabled_for_participants: Deltagarna kan skapa inlägg
define_taxonomy_filters: Ställ in filter innan du använder den här inställningen.
no_taxonomy_filters_found: Inga filter för kategorier hittades.
diff --git a/decidim-blogs/config/locales/tr-TR.yml b/decidim-blogs/config/locales/tr-TR.yml
index dc6703b8fa170..eea175fa9e6d7 100644
--- a/decidim-blogs/config/locales/tr-TR.yml
+++ b/decidim-blogs/config/locales/tr-TR.yml
@@ -6,7 +6,7 @@ tr:
body: Vücut
decidim_author_id: Yazar
published_at: Yayın zamanı
- title: Başlik / Unvani
+ title: Başlik / Unvani
models:
decidim/blogs/create_post_event: Yeni blog yazısı
activerecord:
@@ -44,7 +44,6 @@ tr:
global:
announcement: duyuru
comments_enabled: Yorumlar etkin
- comments_max_length: Maksimum yorum uzunluğu (Varsayılan değer için 0 bırakın)
step:
announcement: duyuru
comments_blocked: Yorumlar engellendi
diff --git a/decidim-blogs/config/locales/zh-CN.yml b/decidim-blogs/config/locales/zh-CN.yml
index d5183a6066194..679c012d24918 100644
--- a/decidim-blogs/config/locales/zh-CN.yml
+++ b/decidim-blogs/config/locales/zh-CN.yml
@@ -36,7 +36,6 @@ zh-CN:
global:
announcement: 通 知
comments_enabled: 评论已启用
- comments_max_length: 评论最大长度 (默认值留0)
step:
announcement: 通 知
comments_blocked: 评论已阻止
diff --git a/decidim-blogs/config/locales/zh-TW.yml b/decidim-blogs/config/locales/zh-TW.yml
index 85283895a55a1..6f5dd2435e39a 100644
--- a/decidim-blogs/config/locales/zh-TW.yml
+++ b/decidim-blogs/config/locales/zh-TW.yml
@@ -64,7 +64,6 @@ zh-TW:
global:
announcement: 公告
comments_enabled: 啟用評論功能
- comments_max_length: 評論字數最大長度(若要使用預設值請輸入0)
step:
announcement: 公告
comments_blocked: 留言已封鎖
diff --git a/decidim-blogs/lib/decidim/blogs/component.rb b/decidim-blogs/lib/decidim/blogs/component.rb
index 00933118550ad..d13946c6e923f 100644
--- a/decidim-blogs/lib/decidim/blogs/component.rb
+++ b/decidim-blogs/lib/decidim/blogs/component.rb
@@ -38,7 +38,7 @@
icon_name: "chat-1-line",
tooltip_key: "comments_count",
tag: :comments do |components, _start_at, _end_at|
- Decidim::Blogs::Post.where(component: components).count
+ Decidim::Blogs::Post.where(component: components).sum(:comments_count)
end
component.actions = %w(create update destroy)
diff --git a/decidim-blogs/lib/decidim/blogs/version.rb b/decidim-blogs/lib/decidim/blogs/version.rb
index d046905a15cf3..6490832cf2d4f 100644
--- a/decidim-blogs/lib/decidim/blogs/version.rb
+++ b/decidim-blogs/lib/decidim/blogs/version.rb
@@ -4,7 +4,7 @@ module Decidim
# This holds the decidim-pages version.
module Blogs
def self.version
- "0.31.4"
+ "0.31.7"
end
end
end
diff --git a/decidim-blogs/spec/controllers/decidim/blogs/posts_controller_spec.rb b/decidim-blogs/spec/controllers/decidim/blogs/posts_controller_spec.rb
index 6351f93ded640..f923e0e3e2403 100644
--- a/decidim-blogs/spec/controllers/decidim/blogs/posts_controller_spec.rb
+++ b/decidim-blogs/spec/controllers/decidim/blogs/posts_controller_spec.rb
@@ -5,25 +5,33 @@
module Decidim
module Blogs
describe PostsController do
+ include Decidim::Core::Engine.routes.url_helpers
+
+ let(:organization) { create(:organization) }
+ let(:participatory_process) { create(:participatory_process, organization:) }
+ let!(:post_component) { create(:post_component, participatory_space: participatory_process) }
+ let!(:published) { create(:post, component: post_component, created_at: 2.days.ago, published_at: 2.days.ago) }
+
+ before do
+ request.env["decidim.current_organization"] = organization
+ request.env["decidim.current_component"] = post_component
+ request.env["decidim.current_participatory_space"] = participatory_process
+ end
+
describe "show" do
context "when the post has not published yet" do
- let(:organization) { create(:organization) }
- let(:participatory_process) { create(:participatory_process, organization:) }
- let!(:post_component) { create(:post_component, participatory_space: participatory_process) }
let!(:unpublished) { create(:post, component: post_component, created_at: 2.days.ago, published_at: 2.days.from_now) }
- let!(:published) { create(:post, component: post_component, created_at: 2.days.ago, published_at: 2.days.ago) }
let!(:another_published) { create(:post, component: post_component, created_at: 3.days.ago, published_at: 1.day.ago) }
let!(:current_user) { create(:user, :admin, :confirmed, organization:) }
- before do
- request.env["decidim.current_organization"] = organization
- request.env["decidim.current_component"] = post_component
- request.env["decidim.current_participatory_space"] = participatory_process
+ it "lists only published posts" do
+ get :index
+ expect(controller.helpers.posts).to match_array([another_published, published]) # rubocop:disable RSpec/MatchArray
end
- it "lists only published posts" do
+ it "orders posts by most recently published first" do
get :index
- expect(controller.helpers.posts).to eq([another_published, published])
+ expect(controller.helpers.paginate_posts).to eq([another_published, published])
end
it "shows published posts" do
@@ -63,6 +71,57 @@ module Blogs
end
end
end
+
+ describe "#destroy" do
+ context "when user is not authenticated" do
+ it "redirects to login page" do
+ delete(:destroy, params: { id: published.id })
+ expect(flash[:alert]).to eq("You need to log in or create an account before continuing.")
+ expect(response).to redirect_to(new_user_session_path)
+ expect(published.reload).to be_present
+ end
+ end
+ end
+
+ describe "#new" do
+ context "when user is not authenticated" do
+ it "redirects to login page" do
+ get :new
+ expect(flash[:alert]).to eq("You need to log in or create an account before continuing.")
+ expect(response).to redirect_to(new_user_session_path)
+ end
+ end
+ end
+
+ describe "#create" do
+ context "when user is not authenticated" do
+ it "redirects to login page" do
+ post(:create, params: { component_id: post_component.id })
+ expect(flash[:alert]).to eq("You need to log in or create an account before continuing.")
+ expect(response).to redirect_to(new_user_session_path)
+ end
+ end
+ end
+
+ describe "#edit" do
+ context "when user is not authenticated" do
+ it "redirects to login page" do
+ get :edit, params: { component_id: post_component.id, id: published.id }
+ expect(flash[:alert]).to eq("You need to log in or create an account before continuing.")
+ expect(response).to redirect_to(new_user_session_path)
+ end
+ end
+ end
+
+ describe "#update" do
+ context "when user is not authenticated" do
+ it "redirects to login page" do
+ put :update, params: { component_id: post_component.id, id: published.id }
+ expect(flash[:alert]).to eq("You need to log in or create an account before continuing.")
+ expect(response).to redirect_to(new_user_session_path)
+ end
+ end
+ end
end
end
end
diff --git a/decidim-blogs/spec/lib/decidim/blogs/component_spec.rb b/decidim-blogs/spec/lib/decidim/blogs/component_spec.rb
index 18084ca658c93..7727124eb1597 100644
--- a/decidim-blogs/spec/lib/decidim/blogs/component_spec.rb
+++ b/decidim-blogs/spec/lib/decidim/blogs/component_spec.rb
@@ -7,6 +7,48 @@
let(:organization) { component.organization }
let!(:current_user) { create(:user, :confirmed, :admin, organization:) }
+ describe "stats" do
+ subject { current_stat[1][:data] }
+
+ let(:raw_stats) do
+ Decidim.component_manifests.map do |component_manifest|
+ component_manifest.stats.filter(name: stats_name).with_context(component).flat_map { |name, data| [component_manifest.name, name, data] }
+ end
+ end
+
+ let(:stats) do
+ raw_stats.select { |stat| stat[0] == :blogs }
+ end
+
+ let!(:post) { create(:post, component:) }
+ let!(:another_post) { create(:post, component:) }
+
+ let(:current_stat) { stats.find { |stat| stat[1][:name] == stats_name } }
+
+ describe "posts_count" do
+ let(:stats_name) { :posts_count }
+
+ it "counts posts in the component" do
+ expect(Decidim::Blogs::Post.where(component:).count).to eq 2
+ expect(subject).to eq 2
+ end
+ end
+
+ describe "comments_count" do
+ let(:stats_name) { :comments_count }
+
+ before do
+ create_list(:comment, 3, commentable: post)
+ create_list(:comment, 5, commentable: another_post)
+ end
+
+ it "counts the comments across all posts in the component" do
+ expect(Decidim::Comments::Comment.count).to eq 8
+ expect(subject).to eq 8
+ end
+ end
+ end
+
describe "on edit", type: :system do
let(:edit_component_path) do
Decidim::EngineRouter.admin_proxy(component.participatory_space).edit_component_path(component.id)
diff --git a/decidim-blogs/spec/system/explore_posts_spec.rb b/decidim-blogs/spec/system/explore_posts_spec.rb
index f8596bad46a51..2d8cdc229d393 100644
--- a/decidim-blogs/spec/system/explore_posts_spec.rb
+++ b/decidim-blogs/spec/system/explore_posts_spec.rb
@@ -117,4 +117,53 @@
it_behaves_like "has embedded video in description", :body
end
end
+
+ context "when filtering posts by TAXONOMY" do
+ let(:root_taxonomy) { create(:taxonomy, organization:) }
+ let!(:taxonomy) { create(:taxonomy, skip_injection: true, name: { en: "Category A" }, parent: root_taxonomy, organization:) }
+ let!(:taxonomy2) { create(:taxonomy, skip_injection: true, name: { en: "Category B" }, parent: root_taxonomy, organization:) }
+ let(:taxonomy_filter) { create(:taxonomy_filter, root_taxonomy:, participatory_space_manifests: [component.participatory_space.manifest.name]) }
+ let!(:taxonomy_filter_item) { create(:taxonomy_filter_item, taxonomy_item: taxonomy, taxonomy_filter:) }
+ let!(:taxonomy_filter_item2) { create(:taxonomy_filter_item, taxonomy_item: taxonomy2, taxonomy_filter:) }
+
+ let!(:posts_with_taxonomy) { create_list(:post, 2, component:, taxonomies: [taxonomy]) }
+ let!(:post_with_taxonomy2) { create(:post, component:, taxonomies: [taxonomy2]) }
+ let!(:post_no_taxonomy) { create(:post, component:, taxonomies: []) }
+
+ before do
+ component.update!(settings: { taxonomy_filters: [taxonomy_filter.id] })
+ visit_component
+ end
+
+ it "shows the taxonomy filter in the sidebar" do
+ within "form.new_filter" do
+ expect(page).to have_text("Category A")
+ expect(page).to have_text("Category B")
+ end
+ end
+
+ context "when selecting one taxonomy" do
+ it "lists only posts with that taxonomy" do
+ within "#dropdown-menu-filters div.filter-container", text: "Category B" do
+ uncheck "All"
+ check decidim_sanitize_translated(taxonomy.name)
+ end
+
+ expect(page).to have_css("#blogs > a", count: 2)
+ end
+ end
+
+ context "when no taxonomy filter is configured" do
+ before do
+ component.update!(settings: { taxonomy_filters: [] })
+ visit_component
+ end
+
+ it "does not show taxonomy filter" do
+ within "form.new_filter" do
+ expect(page).to have_no_text("Category A")
+ end
+ end
+ end
+ end
end
diff --git a/decidim-blogs/spec/system/search_posts_spec.rb b/decidim-blogs/spec/system/search_posts_spec.rb
new file mode 100644
index 0000000000000..480102b9b5892
--- /dev/null
+++ b/decidim-blogs/spec/system/search_posts_spec.rb
@@ -0,0 +1,18 @@
+# frozen_string_literal: true
+
+require "spec_helper"
+
+describe "Search posts" do
+ include ActionView::Helpers::SanitizeHelper
+
+ include_context "with a component"
+ let(:manifest_name) { "blogs" }
+ let!(:searchables) { create_list(:post, 3, component:) }
+ let!(:term) { strip_tags(translated(searchables.first.title)).split.last }
+
+ before do
+ searchables << create(:post, component:, title: { en: "A post with a title" })
+ end
+
+ include_examples "searchable results"
+end
diff --git a/decidim-blogs/spec/system/user_manages_posts_spec.rb b/decidim-blogs/spec/system/user_manages_posts_spec.rb
index 03feba3f7592c..56c0c06beedd0 100644
--- a/decidim-blogs/spec/system/user_manages_posts_spec.rb
+++ b/decidim-blogs/spec/system/user_manages_posts_spec.rb
@@ -70,7 +70,7 @@
fill_in "post_title", with: "My post"
fill_in "post_body", with: "This is my post"
- dynamically_attach_file(:post_documents, Decidim::Dev.asset("city.jpeg"))
+ dynamically_attach_file(:post_attachments, Decidim::Dev.asset("city.jpeg"))
click_on "Create"
expect(page).to have_content "My post"
diff --git a/decidim-blogs/spec/types/integration_schema_spec.rb b/decidim-blogs/spec/types/integration_schema_spec.rb
index c108281253b59..f44a45194a998 100644
--- a/decidim-blogs/spec/types/integration_schema_spec.rb
+++ b/decidim-blogs/spec/types/integration_schema_spec.rb
@@ -124,7 +124,7 @@
}
},
"url" => Decidim::EngineRouter.main_proxy(current_component).root_url,
- "weight" => 0
+ "weight" => current_component.weight
}
end
diff --git a/decidim-budgets/app/cells/decidim/budgets/budget_list_item_cell.rb b/decidim-budgets/app/cells/decidim/budgets/budget_list_item_cell.rb
index 88736ea77789a..53497fc761b4b 100644
--- a/decidim-budgets/app/cells/decidim/budgets/budget_list_item_cell.rb
+++ b/decidim-budgets/app/cells/decidim/budgets/budget_list_item_cell.rb
@@ -47,12 +47,18 @@ def status
# If not (i.e. voting is disabled or finished), then link to the resource itself
def link_to_resource_or_vote(css_class)
if voting_open?
- action_authorized_link_to "vote",
- budget_projects_path(budget, start_voting: true),
- resource: budget,
- data: { "redirect-url": budget_projects_path(budget) },
- class: css_class do
- yield
+ if current_user
+ action_authorized_link_to :vote,
+ budget_projects_path(budget, start_voting: true),
+ resource: budget,
+ class: css_class,
+ data: { "redirect-url": budget_projects_path(budget) } do
+ yield
+ end
+ else
+ link_to budget_projects_path(budget, start_voting: true), class: css_class do
+ yield
+ end
end
else
link_to resource_path, class: css_class do
diff --git a/decidim-budgets/app/commands/decidim/budgets/admin/create_project.rb b/decidim-budgets/app/commands/decidim/budgets/admin/create_project.rb
index 66e06267db52b..49204f97be46e 100644
--- a/decidim-budgets/app/commands/decidim/budgets/admin/create_project.rb
+++ b/decidim-budgets/app/commands/decidim/budgets/admin/create_project.rb
@@ -6,24 +6,24 @@ module Admin
# This command is executed when the user creates a Project from the admin
# panel.
class CreateProject < Decidim::Commands::CreateResource
- include ::Decidim::GalleryMethods
+ include ::Decidim::MultipleAttachmentsMethods
fetch_form_attributes :budget, :taxonomizations, :title, :description, :budget_amount, :address, :latitude, :longitude
private
- attr_reader :gallery
+ attr_reader :attachments
def run_after_hooks
@attached_to = resource
link_proposals
- create_gallery if process_gallery?
+ create_attachments if process_attachments?
end
def run_before_hooks
- return unless process_gallery?
+ return unless process_attachments?
- build_gallery
- raise Decidim::Commands::HookError if gallery_invalid?
+ build_attachments
+ raise Decidim::Commands::HookError if attachments_invalid?
end
def extra_params
diff --git a/decidim-budgets/app/commands/decidim/budgets/admin/update_project.rb b/decidim-budgets/app/commands/decidim/budgets/admin/update_project.rb
index 3cd42cd6d0652..417e0836623f9 100644
--- a/decidim-budgets/app/commands/decidim/budgets/admin/update_project.rb
+++ b/decidim-budgets/app/commands/decidim/budgets/admin/update_project.rb
@@ -6,7 +6,7 @@ module Admin
# This command is executed when the user changes a Project from the admin
# panel.
class UpdateProject < Decidim::Commands::UpdateResource
- include ::Decidim::GalleryMethods
+ include ::Decidim::MultipleAttachmentsMethods
fetch_form_attributes :taxonomizations, :title, :description, :budget_amount, :address, :latitude, :longitude
def initialize(form, project)
@@ -18,15 +18,15 @@ def initialize(form, project)
def run_after_hooks
link_proposals
- create_gallery if process_gallery?
- photo_cleanup!
+ create_attachments if process_attachments?
+ attachment_cleanup!(include_all_attachments: true)
end
def run_before_hooks
- return unless process_gallery?
+ return unless process_attachments?
- build_gallery
- raise Decidim::Commands::HookError if gallery_invalid?
+ build_attachments
+ raise Decidim::Commands::HookError if attachments_invalid?
end
def attributes
diff --git a/decidim-budgets/app/forms/decidim/budgets/admin/project_form.rb b/decidim-budgets/app/forms/decidim/budgets/admin/project_form.rb
index 530e4099dac94..e074aade5b554 100644
--- a/decidim-budgets/app/forms/decidim/budgets/admin/project_form.rb
+++ b/decidim-budgets/app/forms/decidim/budgets/admin/project_form.rb
@@ -22,7 +22,7 @@ class ProjectForm < Decidim::Form
attribute :attachment, AttachmentForm
attribute :selected, Boolean
- attachments_attribute :photos
+ attachments_attribute :attachments
validates :title, translatable_presence: true
validates :description, translatable_presence: true
@@ -36,6 +36,8 @@ class ProjectForm < Decidim::Form
def map_model(model)
self.proposal_ids = model.linked_resources(:proposals, "included_proposals").pluck(:id)
self.selected = model.selected?
+ self.attachments = model.attachments.ids
+ self.add_attachments = model.attachments.map { |att| { id: att.id, title: att.title } }
end
def participatory_space_manifest
@@ -74,7 +76,7 @@ def budget
# an error, the attachment is lost, so we need a way to inform the user of
# this problem.
def notify_missing_attachment_if_errored
- errors.add(:add_photos, :needs_to_be_reattached) if errors.any? && add_photos.present?
+ errors.add(:add_attachments, :needs_to_be_reattached) if errors.any? && add_attachments.present?
end
end
end
diff --git a/decidim-budgets/app/forms/decidim/budgets/admin/project_import_proposals_form.rb b/decidim-budgets/app/forms/decidim/budgets/admin/project_import_proposals_form.rb
index 98275bb6f532a..2f91dd060e60b 100644
--- a/decidim-budgets/app/forms/decidim/budgets/admin/project_import_proposals_form.rb
+++ b/decidim-budgets/app/forms/decidim/budgets/admin/project_import_proposals_form.rb
@@ -14,6 +14,7 @@ class ProjectImportProposalsForm < Decidim::Form
validates :origin_component_id, :origin_component, :current_component, presence: true
validates :default_budget, presence: true, numericality: { greater_than: 0 }
+ validate :valid_states
def states
super.compact_blank
@@ -36,6 +37,18 @@ def origin_components_collection
def budget
@budget ||= context[:budget]
end
+
+ private
+
+ def valid_states
+ return unless origin_component
+ return if states.empty?
+
+ valid_tokens = Decidim::Proposals::ProposalState.where(component: origin_component).pluck(:token) + ["not_answered"]
+ return if states.all? { |state| valid_tokens.include?(state) }
+
+ errors.add(:states, :invalid)
+ end
end
end
end
diff --git a/decidim-budgets/app/packs/stylesheets/budgets.scss b/decidim-budgets/app/packs/stylesheets/budgets.scss
index 9a7c81f5485ae..f4317bdeee0a8 100644
--- a/decidim-budgets/app/packs/stylesheets/budgets.scss
+++ b/decidim-budgets/app/packs/stylesheets/budgets.scss
@@ -1,6 +1,6 @@
.budget {
&-list__map {
- @apply lg:-ml-16 -mt-6 lg:-mt-12 mb-6 aspect-square lg:aspect-[21/9] [&>*]:h-full [&+*]:mt-6 lg:[&+*]:mt-12;
+ @apply lg:-ml-16 -mt-6 lg:-mt-8 mb-0 lg:mb-4 aspect-square lg:aspect-[21/9] [&>*]:h-full [&+*]:mt-6 lg:[&+*]:mt-12;
}
&-summary {
diff --git a/decidim-budgets/app/views/decidim/budgets/admin/projects/_actions.html.erb b/decidim-budgets/app/views/decidim/budgets/admin/projects/_actions.html.erb
index b6e17cd8c282e..864fcdb550e6f 100644
--- a/decidim-budgets/app/views/decidim/budgets/admin/projects/_actions.html.erb
+++ b/decidim-budgets/app/views/decidim/budgets/admin/projects/_actions.html.erb
@@ -57,7 +57,7 @@
<% end %>
<% else %>
diff --git a/decidim-budgets/config/locales/bg.yml b/decidim-budgets/config/locales/bg.yml
index 1e485f71c6e61..30fc78a0106b2 100644
--- a/decidim-budgets/config/locales/bg.yml
+++ b/decidim-budgets/config/locales/bg.yml
@@ -272,7 +272,6 @@ bg:
global:
announcement: Обявление
comments_enabled: Коментарите са активирани
- comments_max_length: Максимална дължина на коментарите (Оставете 0 за стойност по подразбиране)
form:
errors:
budget_voting_rule_only_one: Трябва да бъде активирано само едно правило за гласуване.
diff --git a/decidim-budgets/config/locales/ca-IT.yml b/decidim-budgets/config/locales/ca-IT.yml
index bc16bf7a95903..68d9b50c879b0 100644
--- a/decidim-budgets/config/locales/ca-IT.yml
+++ b/decidim-budgets/config/locales/ca-IT.yml
@@ -347,7 +347,7 @@ ca-IT:
announcement: Avís
clear_all: Netejar-ho tot
comments_enabled: Comentaris habilitats
- comments_max_length: Longitud màxima dels comentaris (deixa 0 si vols mantenir la configuració per defecte)
+ comments_max_length: Caràcters màxims per comentari (deixar a 0 el valor predeterminat)
define_taxonomy_filters: Si us plau, defineix algunes filtres per aquest espai de participació abans de fer servir aquesta configuració.
form:
errors:
diff --git a/decidim-budgets/config/locales/ca.yml b/decidim-budgets/config/locales/ca.yml
index 989f42bee07f2..70a0440c89abe 100644
--- a/decidim-budgets/config/locales/ca.yml
+++ b/decidim-budgets/config/locales/ca.yml
@@ -347,7 +347,7 @@ ca:
announcement: Avís
clear_all: Netejar-ho tot
comments_enabled: Comentaris habilitats
- comments_max_length: Longitud màxima dels comentaris (deixa 0 si vols mantenir la configuració per defecte)
+ comments_max_length: Caràcters màxims per comentari (deixar a 0 el valor predeterminat)
define_taxonomy_filters: Si us plau, defineix algunes filtres per aquest espai de participació abans de fer servir aquesta configuració.
form:
errors:
diff --git a/decidim-budgets/config/locales/cs.yml b/decidim-budgets/config/locales/cs.yml
index 8ce5865c3a36f..0a0faff98352d 100644
--- a/decidim-budgets/config/locales/cs.yml
+++ b/decidim-budgets/config/locales/cs.yml
@@ -367,7 +367,7 @@ cs:
announcement: Oznámení
clear_all: Vymazat vše
comments_enabled: Komentáře povoleny
- comments_max_length: Maximální délka komentáře (ponechte 0 pro výchozí hodnotu)
+ comments_max_length: Maximální počet znaků na komentář (ponechte 0 pro výchozí hodnotu)
define_taxonomy_filters: Před použitím tohoto nastavení prosím definujte některé filtry pro tento participační prostor.
form:
errors:
diff --git a/decidim-budgets/config/locales/de.yml b/decidim-budgets/config/locales/de.yml
index 095a24192bda7..3b8c703e3d63c 100644
--- a/decidim-budgets/config/locales/de.yml
+++ b/decidim-budgets/config/locales/de.yml
@@ -145,6 +145,8 @@ de:
default_budget: Standardbudget
no_components: Es gibt keine weiteren Vorschlagskomponenten in diesem partizipativen Raum, um die Vorschläge in Projekte zu importieren.
origin_component_id: Ursprungskomponente
+ proposal_states: Vorschlagsstatus
+ proposal_states_help: Wählen Sie einen oder mehrere Vorschlagsstatus aus, die in Projekte importiert werden sollen. Wenn Sie keinen auswählen, werden alle veröffentlichten Vorschläge importiert, die noch nicht in andere Budgets dieser Komponente importiert wurden.
select_component: Bitte wählen Sie eine Komponente aus
title: Vorschläge bei Projekten importieren
reminders:
@@ -345,7 +347,7 @@ de:
announcement: Ankündigung
clear_all: Alles löschen
comments_enabled: Kommentare aktiviert
- comments_max_length: Maximale Länge der Kommentare (0 für Standardwert)
+ comments_max_length: Maximale Zeichenanzahl pro Kommentar (0 für Standardwert)
define_taxonomy_filters: Bitte definieren Sie einige Filter für diesen partizipativen Bereich, bevor Sie diese Einstellung verwenden.
form:
errors:
@@ -425,7 +427,7 @@ de:
id: Die eindeutige Bezeichnung des Projekts
latitude: Der Breitengrad des Projekts, falls es einen verortet wurde
longitude: Der Längengrad des Projekts, falls es verortet wurde
- participatory_space: Zu welchem Bereich dieses Projekt gehört (z.B. Partizipationsprozesse oder Gremien)
+ participatory_space: Zu welchem Bereich dieses Projekt gehört (z.B. Partizipationsprozesse oder Versammlungen)
reference: Die eindeutige Referenz des Projekts
related_proposal_titles: Titel der verknüpften Vorschläge
related_proposal_urls: URLs der verknüpften Vorschläge
diff --git a/decidim-budgets/config/locales/el.yml b/decidim-budgets/config/locales/el.yml
index 46ad898cf9560..e7aeb66038b5f 100644
--- a/decidim-budgets/config/locales/el.yml
+++ b/decidim-budgets/config/locales/el.yml
@@ -231,7 +231,6 @@ el:
global:
announcement: Ανακοίνωση
comments_enabled: Τα σχόλια ενεργοποιήθηκαν
- comments_max_length: Μέγιστο μέγεθος σχολίων (Αφήστε το 0 για το προκαθορισμένο μέγεθος)
form:
errors:
budget_voting_rule_only_one: Μόνο ένας κανόνας ψηφοφορίας πρέπει να είναι ενεργοποιημένος.
diff --git a/decidim-budgets/config/locales/en.yml b/decidim-budgets/config/locales/en.yml
index b75dc4d8a733e..3fde5d1e75525 100644
--- a/decidim-budgets/config/locales/en.yml
+++ b/decidim-budgets/config/locales/en.yml
@@ -347,7 +347,7 @@ en:
announcement: Announcement
clear_all: Clear all
comments_enabled: Comments enabled
- comments_max_length: Comments max length (Leave 0 for default value)
+ comments_max_length: Max characters per comment (Leave 0 for default value)
define_taxonomy_filters: Please define some filters for this participatory space before using this setting.
form:
errors:
diff --git a/decidim-budgets/config/locales/es-MX.yml b/decidim-budgets/config/locales/es-MX.yml
index 324c96af4adc4..3515aaacab3f0 100644
--- a/decidim-budgets/config/locales/es-MX.yml
+++ b/decidim-budgets/config/locales/es-MX.yml
@@ -344,7 +344,7 @@ es-MX:
announcement: Anuncio
clear_all: Limpiar todo
comments_enabled: Comentarios habilitados
- comments_max_length: Longitud máxima de los comentarios (deja 0 si quieres mantener la configuración por defecto)
+ comments_max_length: Caracteres máximos por comentario (dejar 0 para el valor predeterminado)
define_taxonomy_filters: Por favor, define algunos filtros para este espacio de participación antes de utilizar esta configuración.
form:
errors:
diff --git a/decidim-budgets/config/locales/es-PY.yml b/decidim-budgets/config/locales/es-PY.yml
index 752a28df90a43..b83f5f8fde0e4 100644
--- a/decidim-budgets/config/locales/es-PY.yml
+++ b/decidim-budgets/config/locales/es-PY.yml
@@ -347,7 +347,7 @@ es-PY:
announcement: Anuncio
clear_all: Limpiar todo
comments_enabled: Comentarios habilitados
- comments_max_length: Longitud máxima de los comentarios (deja 0 si quieres mantener la configuración por defecto)
+ comments_max_length: Caracteres máximos por comentario (dejar 0 para el valor predeterminado)
define_taxonomy_filters: Por favor, define algunos filtros para este espacio de participación antes de utilizar esta configuración.
form:
errors:
diff --git a/decidim-budgets/config/locales/es.yml b/decidim-budgets/config/locales/es.yml
index 725cf4adae8b6..34d31e987cd7d 100644
--- a/decidim-budgets/config/locales/es.yml
+++ b/decidim-budgets/config/locales/es.yml
@@ -347,7 +347,7 @@ es:
announcement: Aviso
clear_all: Limpiar todo
comments_enabled: Comentarios habilitados
- comments_max_length: Longitud máxima de los comentarios (deja 0 si quieres mantener la configuración por defecto)
+ comments_max_length: Caracteres máximos por comentario (dejar 0 para el valor predeterminado)
define_taxonomy_filters: Por favor, define algunos filtros para este espacio de participación antes de utilizar esta configuración.
form:
errors:
diff --git a/decidim-budgets/config/locales/eu.yml b/decidim-budgets/config/locales/eu.yml
index 4c08aa38e2be9..c0bd875d3b423 100644
--- a/decidim-budgets/config/locales/eu.yml
+++ b/decidim-budgets/config/locales/eu.yml
@@ -153,7 +153,7 @@ eu:
orders:
description: Parte-hatzaileek mezu elektroniko bat jasoko dute, eskaera bat egiteke duten aurrekontuetarako estekekin.
title:
- one: Gogorarazpen bat bidaltzear zaude posta elektronikoz %{count} partte-hartzaileari
+ one: Gogorarazpen bat bidaltzear zaude posta elektronikoz %{count} erabiltzaileri
other: Gogorarazpen bat bidaltzear zaude posta elektronikoz %{count} parte-hartzaileri
admin_log:
budget:
@@ -176,11 +176,11 @@ eu:
budgets_list:
budgets: Aurrekontuak
cancel_order:
- more_than_one: ezabatu zure botoa hemen %{name} eta hasi berriro
+ more_than_one: ezabatu %{name} aukerari emandako babesa eta hasi berriro
only_one: ezabatu zure babesa eta hasi berriro.
completed: Amaituta
count:
- one: "%{count} aurrekontu"
+ one: "Aurrekontu %{count}"
other: "%{count} aurrekontu"
empty: Oraindik ez dago aurrekonturik
finished_message: Amaitu duzu babesa emateko prozesua. Eskerrik asko parte hartzeagatik!
@@ -218,26 +218,26 @@ eu:
id: ID
map: Mapa
taxonomies: Taxonomiak
- title: Titulua
+ title: Izenburua
order:
status:
- continue_voting: Jarraitu bozkatzen
+ continue_voting: Babesa ematen jarraitu
download_vote: Deskargatu zure hautaketa
pending_to_vote_budgets:
- one: Beste aurrekontu batean bozkatu dezakezu
+ one: Beste aurrekontu batean eman dezakezu babesa
other: Beste aurrekontu batzuetan bozkatu dezakezu
- share_text: "Botoa eman diet nire proiekturik gogokoenei hemen %{space_name}! 🎉 Eman botoa orain: %{component_url}"
+ share_text: "Nire proiektu gogokoenei babesa eman berri diet %{space_name} partaidetza-espazioan! 🎉 Eman babesa orain: %{component_url}"
share_vote: Aldatu zure babesa
- title: Zure botua zuzen onartu da
+ title: Zure babesa zuzen onartu da
view_votes:
- one: Ikusi babesa
- other: Ikusi botoak
+ one: Babesa ikusi
+ other: Babesak ikusi
votes_count:
- one: 'Zure babesa honentzat: %{budget_name} erregistratu da.'
- other: 'Zure %{count} botoak honentzat: %{budget_name} erregistratu dira.'
+ one: Zure %{count} babesak dagoeneko erregistratu dira %{budget_name} aurrekontuan.
+ other: Zure %{count} babesak dagoeneko erregistratu dira %{budget_name} aurrekontuan.
order_pdf:
- text: Botoa eman duzu hemen %{space_name}, honako proiektu hauetan
- title: Zure botua zuzen onartu da.
+ text: Babesa eman duzu %{space_name} partaidetza-espazioan, honako proiektu hauei
+ title: Zure babesa zuzen onartu da.
order_summary_mailer:
order_summary:
selected_projects: 'Hautatu dituzun proiektuak hauek dira:'
@@ -253,19 +253,19 @@ eu:
title: Baieztatu babesa
budget_excess:
budget_excess:
- description: Proiektu honek gehieneko aurrekontua gainditzen du, eta ezin da gehitu. Nahi baduzu, jada hautatua duzun proiektu bat ezaba dezakezu, zure lehenespenen arabera emateko botoa.
+ description: Proiektu honek gehieneko aurrekontua gainditzen du, eta ezin da gehitu. Nahi baduzu, jada hautatua duzun proiektu bat ezaba dezakezu, zure hobespenen arabera babesa emateko.
title: Gehieneko aurrekontua gainditu egin da
- description: Proiektu honek gehieneko aurrekontua gainditzen du, eta ezin da gehitu. Nahi baduzu, jada hautatua duzun proiektu bat ezaba dezakezu, zure lehenespenen arabera emateko babesa.
+ description: Proiektu honek gehieneko aurrekontua gainditzen du, eta ezin da gehitu. Nahi baduzu, jada hautatua duzun proiektu bat ezaba dezakezu, zure hobespenen arabera babesa emateko.
ok: Ados
projects_excess:
- description: Proiektu honek gehieneko aurrekontua gainditzen du, eta ezin da gehitu. Nahi baduzu, jada hautatua duzun proiektu bat ezaba dezakezu, zure lehenespenen arabera emateko babesa.
+ description: Proiektu honek gehieneko aurrekontua gainditzen du, eta ezin da gehitu. Nahi baduzu, jada hautatua duzun proiektu bat ezaba dezakezu, zure hobespenen arabera babesa emateko.
title: Gehieneko proiektu kopurua gainditu egin da
budget_summary:
are_you_sure: Ziur zaude zure babesa ezeztatu nahi duzula?
- cancel_order: Ezabatu ezazu botoa
+ cancel_order: Ezabatu ezazu zure babesa
checked_out:
description: Jada babesa eman duzu aurrekonturako. Iritzia aldatu baduzu, ezabatu ahal duzu zure babesa.
- title: Aurrekontuen bozketa amaituta
+ title: Aurrekontuko babes ematea osatu da
vote: Aurrekontuari babesa eman
count:
projects_count:
@@ -273,10 +273,10 @@ eu:
other: "%{count} proiektu"
empty: Oraindik ez dago proiekturik
exit_modal:
- cancel: Itzuli bozketara
+ cancel: Berriro babesa eman
exit: Irten bozketatik
message: Zure babesa ez da erregistratu, oraindik ez duzulako osatu bozketa-prozesua. Ziur zaude bozketatik irten nahi duzula?
- title: Oraindik ez duzu bozkatu
+ title: Oraindik ez duzu babesik eman
filters:
search: Bilatu
status: Egoera
@@ -291,18 +291,18 @@ eu:
minimum_reached: Gutxieneko babesak lortu dituzu
minimum: Gutxienekoa
minimum_projects_rule:
- description: "Hautatu gutxienez %{minimum_number} proiektu eta bozkatu zure lehentasunen arabera."
+ description: "Aukeratu nahi dituzun gutxienez %{minimum_number} proiektu eta eman babesa zure hobespenen arabera."
projects_rule:
- description: "Hautatu gutxienez %{maximum_number} eta %{minimum_number} %{maximum_number} nahi dituzun proiektuak, eta eman botoa zure lehentasunen arabera."
+ description: "Aukeratu nahi dituzun gutxienez %{minimum_number} eta gehienez %{maximum_number} proiektu eta eman babesa zure hobespenen arabera."
projects_rule_maximum_only:
- description: "Hautatu nahi dituzun proiektuen %{maximum_number} arte, eta bozkatu zure lehentasunen arabera."
+ description: "Aukeratu nahi dituzun gehienez %{maximum_number} proiektu eta eman babesa zure hobespenen arabera."
vote_threshold_percent_rule:
- description: "Banatu gutxienez %{minimum_budget} nahi dituzun proiektuei, eta eman botoa zure lehentasunen arabera."
+ description: "Esleitu gutxienez %{minimum_budget} nahi dituzun proiektuei eta eman babesa zure hobespenen arabera."
orders:
highest_cost: Kostu handiena
label: Antolatu proiektuak honen arabera
lowest_cost: Kostu txikiena
- most_voted: Bozkatuenak
+ most_voted: Babes gehien dituztenak
random: Ausazko ordena
selected: Hautatua
project:
@@ -325,17 +325,17 @@ eu:
select_projects: Gehitu proiektuak
show:
budget: Aurrekontua
- votes: Botoak
+ votes: Babesak
prompt: Aukeratu aurrekontua
vote_reminder_mailer:
vote_reminder:
- email_budgets: 'Arlo hauetan duzu amaitu gabeko bozketa:'
- email_intro: Aurrekontu parte-hartzaileen bozketa hasi duzu, baina ez duzu osatu.
- email_link: 'Joan hona: Jarraitu bozkatzen'
- email_outro: Mesedez, gogoratu bozketa osatzea. Botoa emateko, lehenik eta behin, zein proiekturi buruz bozkatu nahi duzun aukeratu behar duzu, eta, ondoren, zure botoa berretsi, "Bozkatu" botoia sakatuz.
+ email_budgets: 'Amaitu gabeko babesa duzun arloak:'
+ email_intro: Partaidetza-aurrekontuan babesa ematen hasi zara, baina ez duzu amaitu.
+ email_link: 'Joan hona: Jarraitu babesa emanten'
+ email_outro: Gogoratu babesa emateko prozesua osatzea. Babesa emateko, lehenik babesa eman nahi diozun proposamena edo proposamenak hautatu behar dituzu, eta ondoren zure babesa berretsi "Eman babesa" botoiarekin.
email_subject:
one: Aurrekontu parte-hartzaileen babes ematea amaitu gabeko babes bat duzu
- other: Aurrekontu parte-hartzaileen babes jasotzea amaitu gabeko babesak dituzu
+ other: AurreAmaitu gabeko babesak dituzu partaidetza-aurrekontuko babes-prozesuan
components:
budgets:
actions:
@@ -347,8 +347,8 @@ eu:
announcement: Oharra
clear_all: Garbitu dena
comments_enabled: Iruzkinak gaituta
- comments_max_length: Iruzkinen gehieneko luzera (uzti 0 defektuz konfigurazioa mantendu nahi baduzu)
- define_taxonomy_filters: Mesedez, eszenatoki hau erabili aurretik, zehaztu espazio parte-hartzaile honetarako iragazki batzuk.
+ comments_max_length: Iruzkin bakoitzeko gehieneko karaktereak (utzi 0 aurrez zehaztutako baliorako)
+ define_taxonomy_filters: Mesedez, eszenatoki hau erabili aurretik, zehaztu partaidetza-espazio honetarako iragazki batzuk.
form:
errors:
budget_voting_rule_only_one: Soilik bozketa-arau bat gaitu behar da.
@@ -363,13 +363,13 @@ eu:
taxonomy_filters_add: Erantsi iragazkia
title: Izenburua
total_budget: Aurrekontu osoa
- vote_minimum_budget_projects_number: Bozkatzeko gutxieneko proiektu kopurua
- vote_rule_minimum_budget_projects_enabled: 'Aktibatu araua: Bozkatzeko gutxieneko proiektu kopurua'
- vote_rule_selected_projects_enabled: 'Gaitu araua: Bozkatzeko gutxieneko eta gehieneko proiektu kopurua'
+ vote_minimum_budget_projects_number: Babesa eman beharreko gutxieneko proiektu kopurua
+ vote_rule_minimum_budget_projects_enabled: 'Gaitu araua: babesa eman beharreko gutxieneko proiektu kopurua'
+ vote_rule_selected_projects_enabled: 'Gaitu araua: babesa eman beharreko gutxieneko eta gehieneko proiektu kopurua'
vote_rule_threshold_percent_enabled: 'Aktibatu araua: aurrekontuaren gutxieneko ehunekoa'
vote_selected_projects_maximum: Gehieneko proiektu kopurua hautatzeko
vote_selected_projects_minimum: Gutxieneko proiektu kopurua hautatzeko
- vote_threshold_percent: Bozketen ehunekoa
+ vote_threshold_percent: Babes-atalasearen ehunekoa
voting_rule: Bozketa mota
voting_rule_choices:
minimum_projects: Bozkatuko diren proiektuen gutxieneko kopurua
@@ -378,7 +378,7 @@ eu:
workflow: Lan-fluxua
workflow_choices:
all: 'Bozkatu guztietan: utzi parte-hartzaileei aurrekontu guztietan babesa ematen.'
- one: 'Bozkatu batean: utzi parte-hartzaileei edozein aurrekontutan babesa ematen, baina batean baino ez.'
+ one: 'Aurrekontu bakarrean babesa eman: parte-hartzaileei edozein aurrekontutan babesa emateko aukera ematen die, baina bakar batean soilik.'
step:
announcement: Iragarpena
comments_blocked: Iruzkinak blokeatuta
@@ -386,13 +386,13 @@ eu:
landing_page_content: Aurrekontuen hasierako orrialdea
list_heading: Zerrendaren izenburua
more_information_modal: '"Informazio gehiago" leihoa'
- show_votes: Erakutsi babesak
+ show_votes: Babesak erakutsi
title: Izenburua
- votes: Bozketa
+ votes: Babes ematea
votes_choices:
- disabled: Bozketa desgaituta
+ disabled: Babes-ematea desgaituta
enabled: Babes ematea gaituta
- finished: Bozketa amaituta
+ finished: Babes ematea amaituta
download_your_data:
help:
orders:
@@ -401,14 +401,14 @@ eu:
component: Osagaien ordena honako hau da
created_at: Zein datatan eta zein ordutan sortu zen ordena
id: Ordenaren identifikatzaile bakarra
- projects: Proiektuak ordena honetan bozkatu dira
+ projects: Eskaeraren bidez babesa eman zaien proiektuak
updated_at: Zein datatan eta zein ordutan eguneratu zen ordena
show:
projects: Esportatu proiektuak
events:
budgets:
budget_published:
- email_intro: '%{resource_title} urratsa aktibo dago %{participatory_space_title} espziorako. Orrialde honetatik ikus dezakezu:'
+ email_intro: '%{resource_title} aurrekontua aktibo dago orain %{participatory_space_title} partaidetza-espazioan. Orri honetatik ikus dezakezu:'
email_outro: Jakinarazpen hau jaso duzu %{participatory_space_title} jarraitzen ari zarelako. Jakinarazpenak jasotzeari utzi ahal diozu aurreko lotura jarraituz.
email_subject: '%{resource_title} osagaia aktibatu egin da %{participatory_space_title} espazioan.'
notification_title: %{resource_title} aurrekontua aktibo dago hemen %{participatory_space_title}.
@@ -442,13 +442,13 @@ eu:
error: Arazo bat egon da zure babesa prozesatzean.
destroy:
error: Arazo bat egon da zure babesa ezeztatzean.
- success: Zure botoa behar bezala ezeztatu da.
+ success: Zure babesa zuzen ezeztatu da.
resource_links:
included_proposals:
project_proposal: Proiektu honetan sartuta dauden proposamenak
statistics:
orders_count: Aldeko babesak
projects_count: Aurrekontuak
- projects_count_tooltip: Aurrekontu parte-hartzaileen kopurua eta emandako boto guztiak.
+ projects_count_tooltip: Aurrekontu parte-hartzaileen kopurua eta emandako babes guztiak.
index:
confirmed_orders_count: Babesen zenbaketa
diff --git a/decidim-budgets/config/locales/fr-CA.yml b/decidim-budgets/config/locales/fr-CA.yml
index 67c26618114fc..79276049e8a75 100644
--- a/decidim-budgets/config/locales/fr-CA.yml
+++ b/decidim-budgets/config/locales/fr-CA.yml
@@ -336,8 +336,9 @@ fr-CA:
settings:
global:
announcement: Annonce
+ clear_all: Tout effacer
comments_enabled: Activer le module de commentaire
- comments_max_length: Longueur max des commentaires (laisser 0 pour la valeur par défaut)
+ comments_max_length: Nombre maximum de caractères par commentaire (Laisser 0 pour la valeur par défaut)
define_taxonomy_filters: Veuillez définir des filtres pour cet espace participatif avant d'utiliser ce paramètre.
form:
errors:
diff --git a/decidim-budgets/config/locales/fr.yml b/decidim-budgets/config/locales/fr.yml
index 8ea82f2dee6b2..5216fdf3214c5 100644
--- a/decidim-budgets/config/locales/fr.yml
+++ b/decidim-budgets/config/locales/fr.yml
@@ -209,6 +209,7 @@ fr:
fields:
id: ID
map: Carte
+ taxonomies: Taxonomies
title: Titre
order:
status:
@@ -336,8 +337,9 @@ fr:
settings:
global:
announcement: Annonce
+ clear_all: Tout effacer
comments_enabled: Activer le module de commentaire
- comments_max_length: Longueur max des commentaires (laisser 0 pour la valeur par défaut)
+ comments_max_length: Nombre maximum de caractères par commentaire (Laisser 0 pour la valeur par défaut)
define_taxonomy_filters: Veuillez définir des filtres pour cet espace participatif avant d'utiliser ce paramètre.
form:
errors:
@@ -346,8 +348,10 @@ fr:
geocoding_enabled: Cartes activées
landing_page_content: Page d'accueil des budgets
more_information_modal: Plus d’informations
+ no_taxonomy_filters_found: Aucun filtre de taxonomie n'a été trouvé.
projects_per_page: Projets par page
resources_permissions_enabled: Les autorisations d'actions peuvent être définies pour chaque projet
+ taxonomy_filters_add: Ajouter un filtre
title: Titre
total_budget: Budget total
vote_minimum_budget_projects_number: Nombre minimum de projets à voter
@@ -400,6 +404,7 @@ fr:
participatory_space: 'À quel espace (ex : Processus participatif ou Assemblée) appartient ce projet'
reference: La référence unique du projet
selected_at: L'heure à laquelle le projet a été sélectionné
+ taxonomies: Les taxonomies du projet
title: Le titre du projet
updated_at: La dernière date de mise à jour du projet
url: L'URL du projet
diff --git a/decidim-budgets/config/locales/gl.yml b/decidim-budgets/config/locales/gl.yml
index c1d23922d7e4d..2bc921b1c93ef 100644
--- a/decidim-budgets/config/locales/gl.yml
+++ b/decidim-budgets/config/locales/gl.yml
@@ -166,7 +166,6 @@ gl:
global:
announcement: Anuncio
comments_enabled: Comentarios habilitados
- comments_max_length: Lonxitude máxima dos comentarios (0 para valor predefinido)
projects_per_page: Proxectos por páxina
title: Título
total_budget: Orzamento total
diff --git a/decidim-budgets/config/locales/hu.yml b/decidim-budgets/config/locales/hu.yml
index a1172ae7e996c..46d7343b87c9c 100644
--- a/decidim-budgets/config/locales/hu.yml
+++ b/decidim-budgets/config/locales/hu.yml
@@ -255,7 +255,6 @@ hu:
global:
announcement: Közlemény
comments_enabled: Megjegyzések engedélyezve
- comments_max_length: Kommentek maximális hossza (Hagyjon 0 -t az alapértékhez)
form:
errors:
budget_voting_rule_only_one: Csak egy szavazási szabály állítható be.
diff --git a/decidim-budgets/config/locales/it.yml b/decidim-budgets/config/locales/it.yml
index aa5866f53472a..020e3baae8059 100644
--- a/decidim-budgets/config/locales/it.yml
+++ b/decidim-budgets/config/locales/it.yml
@@ -170,7 +170,6 @@ it:
global:
announcement: Annuncio
comments_enabled: Commenti abilitati
- comments_max_length: Lunghezza massima dei commenti (Lasciare 0 per il valore predefinito)
landing_page_content: Pagina iniziale dei budget
more_information_modal: Finestra modale "Maggiori informazioni"
projects_per_page: Progetti per pagina
diff --git a/decidim-budgets/config/locales/ja.yml b/decidim-budgets/config/locales/ja.yml
index 8fe6e177b03a4..8d63dd4b623c7 100644
--- a/decidim-budgets/config/locales/ja.yml
+++ b/decidim-budgets/config/locales/ja.yml
@@ -337,7 +337,7 @@ ja:
announcement: お知らせ
clear_all: すべてクリア
comments_enabled: コメントを有効にする
- comments_max_length: コメント最大長 (デフォルト値は 0 のまま)
+ comments_max_length: 各コメントの最大文字数 (0はデフォルト値のまま)
define_taxonomy_filters: この設定を使用する前に、参加型スペースのフィルターをいくつか定義してください。
form:
errors:
diff --git a/decidim-budgets/config/locales/lb.yml b/decidim-budgets/config/locales/lb.yml
index 261fe0716ec5e..a77b0a2599767 100644
--- a/decidim-budgets/config/locales/lb.yml
+++ b/decidim-budgets/config/locales/lb.yml
@@ -148,7 +148,6 @@ lb:
global:
announcement: Ankündigung
comments_enabled: Kommentare aktiviert
- comments_max_length: Maximale Länge der Kommentare (0 für Standardwert)
landing_page_content: Budgets Landingpage
more_information_modal: Weitere Informationen
projects_per_page: Projekte pro Seite
diff --git a/decidim-budgets/config/locales/lt.yml b/decidim-budgets/config/locales/lt.yml
index be57962b208c5..173e85d3f3fa8 100644
--- a/decidim-budgets/config/locales/lt.yml
+++ b/decidim-budgets/config/locales/lt.yml
@@ -257,7 +257,6 @@ lt:
global:
announcement: Pranešimas
comments_enabled: Komentarai aktyvuoti
- comments_max_length: Maksimalus komentaro ilgis (įrašyti 0 įprastam ilgiui)
form:
errors:
budget_voting_rule_only_one: Turi būti įjungta tik viena balsavimo taisyklė.
diff --git a/decidim-budgets/config/locales/nl.yml b/decidim-budgets/config/locales/nl.yml
index 342cfeeba9406..f7a7eb5c12236 100644
--- a/decidim-budgets/config/locales/nl.yml
+++ b/decidim-budgets/config/locales/nl.yml
@@ -196,7 +196,6 @@ nl:
global:
announcement: Aankondiging
comments_enabled: Reacties ingeschakeld
- comments_max_length: Commentaar maximale lengte (laat 0 voor standaardwaarde)
landing_page_content: Budgetten landingspagina
more_information_modal: Meer informatie
projects_per_page: Projecten per pagina
diff --git a/decidim-budgets/config/locales/no.yml b/decidim-budgets/config/locales/no.yml
index e8804dd492ebe..92a9f6248b6ca 100644
--- a/decidim-budgets/config/locales/no.yml
+++ b/decidim-budgets/config/locales/no.yml
@@ -187,7 +187,6 @@
global:
announcement: Kunngjøring
comments_enabled: Kommentarer aktivert
- comments_max_length: Maks lengde på kommentarer (Sett 0 for standardverdi)
landing_page_content: Landingsside budsjett
more_information_modal: Mer informasjon
projects_per_page: Prosjekter per side
diff --git a/decidim-budgets/config/locales/pl.yml b/decidim-budgets/config/locales/pl.yml
index 5cb6d34251035..e6979573e016a 100644
--- a/decidim-budgets/config/locales/pl.yml
+++ b/decidim-budgets/config/locales/pl.yml
@@ -268,7 +268,6 @@ pl:
global:
announcement: Ogłoszenie
comments_enabled: Komentarze włączone
- comments_max_length: Maksymalna długość komentarzy (Pozostaw 0 dla wartości domyślnej)
form:
errors:
budget_voting_rule_only_one: Może być włączona tylko jedna reguła głosowania.
diff --git a/decidim-budgets/config/locales/pt-BR.yml b/decidim-budgets/config/locales/pt-BR.yml
index 10a9d7e1dbaa1..b9380c38eca07 100644
--- a/decidim-budgets/config/locales/pt-BR.yml
+++ b/decidim-budgets/config/locales/pt-BR.yml
@@ -347,7 +347,6 @@ pt-BR:
announcement: Anúncio
clear_all: Limpar tudo
comments_enabled: Comentários ativados
- comments_max_length: Tamanho máximo de comentários (deixe 0 para o valor padrão)
define_taxonomy_filters: Por favor, defina alguns filtros para este espaço participativo antes de usar esta configuração.
form:
errors:
diff --git a/decidim-budgets/config/locales/pt.yml b/decidim-budgets/config/locales/pt.yml
index 41f3d44c78227..af34438442cb6 100644
--- a/decidim-budgets/config/locales/pt.yml
+++ b/decidim-budgets/config/locales/pt.yml
@@ -158,7 +158,6 @@ pt:
global:
announcement: Anúncio
comments_enabled: Comentários ativados
- comments_max_length: Comprimento máximo dos comentários (Deixar 0 para o valor predefinido)
landing_page_content: Página de entrada dos orçamentos
more_information_modal: Mais informações modal
projects_per_page: Projetos por página
diff --git a/decidim-budgets/config/locales/ro-RO.yml b/decidim-budgets/config/locales/ro-RO.yml
index f8c105067f9ff..c6b3c9dd8f426 100644
--- a/decidim-budgets/config/locales/ro-RO.yml
+++ b/decidim-budgets/config/locales/ro-RO.yml
@@ -191,7 +191,6 @@ ro:
global:
announcement: Anunţ
comments_enabled: Comentarii activate
- comments_max_length: Lungimea maximă a comentariilor (lăsați 0 pentru valoarea implicită)
landing_page_content: Pagina pentru bugetare participativă
more_information_modal: Mai multe informații
projects_per_page: Proiecte pe pagină
diff --git a/decidim-budgets/config/locales/sk.yml b/decidim-budgets/config/locales/sk.yml
index 1a542710dbe15..a9918cf415c68 100644
--- a/decidim-budgets/config/locales/sk.yml
+++ b/decidim-budgets/config/locales/sk.yml
@@ -367,7 +367,6 @@ sk:
announcement: Oznámenie
clear_all: Vymazať všetko
comments_enabled: Komentáre povolené
- comments_max_length: Maximálna dĺžka komentárov (Ponechajte 0 pre predvolenú hodnotu)
define_taxonomy_filters: Pred použitím tohto nastavenia definujte nejaké filtre pre tento participatívny priestor.
form:
errors:
diff --git a/decidim-budgets/config/locales/sv.yml b/decidim-budgets/config/locales/sv.yml
index ff729959319e5..55236474bf116 100644
--- a/decidim-budgets/config/locales/sv.yml
+++ b/decidim-budgets/config/locales/sv.yml
@@ -233,8 +233,8 @@ sv:
one: Visa röst
other: Visa röster
votes_count:
- one: Din röst på %{budget_name} har redan registrerats.
- other: Dina %{count} röster för %{budget_name} har redan registrerats.
+ one: Din röst på %{budget_name} har registrerats.
+ other: Dina %{count} röster för %{budget_name} har registrerats.
order_pdf:
text: Du har röstat på följande projekt i %{space_name}
title: Din röst har tagits emot.
@@ -347,7 +347,6 @@ sv:
announcement: Meddelande
clear_all: Återställ
comments_enabled: Aktivera kommentarer
- comments_max_length: Maximal kommentarslängd (ange 0 för att använda standardvärdet)
define_taxonomy_filters: Ställ in filter innan du använder den här inställningen.
form:
errors:
diff --git a/decidim-budgets/config/locales/tr-TR.yml b/decidim-budgets/config/locales/tr-TR.yml
index bfabb4f5d3b82..a83e5cfd668b8 100644
--- a/decidim-budgets/config/locales/tr-TR.yml
+++ b/decidim-budgets/config/locales/tr-TR.yml
@@ -155,7 +155,6 @@ tr:
global:
announcement: Duyurular
comments_enabled: Yorumlar etkin
- comments_max_length: Maksimum yorum uzunluğu (Varsayılan değer için 0 bırakın)
landing_page_content: Bütçeler ana sayfası
more_information_modal: Daha fazla bilgi
projects_per_page: Sayfa başına projeler
diff --git a/decidim-budgets/config/locales/zh-CN.yml b/decidim-budgets/config/locales/zh-CN.yml
index cfcb603f99283..e80f8c7440641 100644
--- a/decidim-budgets/config/locales/zh-CN.yml
+++ b/decidim-budgets/config/locales/zh-CN.yml
@@ -141,7 +141,6 @@ zh-CN:
global:
announcement: 通 知
comments_enabled: 评论已启用
- comments_max_length: 评论最大长度 (默认值留0)
landing_page_content: 预算登陆页
more_information_modal: 更多信息模式
projects_per_page: 每页项目数
diff --git a/decidim-budgets/config/locales/zh-TW.yml b/decidim-budgets/config/locales/zh-TW.yml
index 94b36f96f63f1..e3397e647bb25 100644
--- a/decidim-budgets/config/locales/zh-TW.yml
+++ b/decidim-budgets/config/locales/zh-TW.yml
@@ -227,7 +227,6 @@ zh-TW:
global:
announcement: 公告
comments_enabled: 啟用評論功能
- comments_max_length: 評論字數最大長度(若要使用預設值請輸入0)
form:
errors:
budget_voting_rule_only_one: 僅能啟用一個投票規則。
diff --git a/decidim-budgets/lib/decidim/budgets/version.rb b/decidim-budgets/lib/decidim/budgets/version.rb
index f442f7caab540..0eab77753e10a 100644
--- a/decidim-budgets/lib/decidim/budgets/version.rb
+++ b/decidim-budgets/lib/decidim/budgets/version.rb
@@ -4,7 +4,7 @@ module Decidim
# This holds the decidim-budgets version.
module Budgets
def self.version
- "0.31.4"
+ "0.31.7"
end
end
end
diff --git a/decidim-budgets/spec/commands/decidim/budgets/admin/create_project_spec.rb b/decidim-budgets/spec/commands/decidim/budgets/admin/create_project_spec.rb
index 6f2c900d8617d..7ab4bf1038fcd 100644
--- a/decidim-budgets/spec/commands/decidim/budgets/admin/create_project_spec.rb
+++ b/decidim-budgets/spec/commands/decidim/budgets/admin/create_project_spec.rb
@@ -11,8 +11,8 @@ module Decidim::Budgets
let(:participatory_process) { create(:participatory_process, organization:) }
let(:current_component) { create(:component, manifest_name: :budgets, participatory_space: participatory_process) }
let(:budget) { create(:budget, component: current_component) }
- let(:uploaded_photos) { [] }
- let(:photos) { [] }
+ let(:uploaded_attachments) { [] }
+ let(:attachments) { [] }
let(:address) { nil }
let(:latitude) { 40.1234 }
let(:longitude) { 2.1234 }
@@ -42,8 +42,8 @@ module Decidim::Budgets
longitude:,
taxonomizations:,
proposal_ids: proposals.map(&:id),
- photos:,
- add_photos: uploaded_photos,
+ attachments:,
+ add_attachments: uploaded_attachments,
budget:
)
end
diff --git a/decidim-budgets/spec/commands/decidim/budgets/admin/import_proposals_to_budgets_spec.rb b/decidim-budgets/spec/commands/decidim/budgets/admin/import_proposals_to_budgets_spec.rb
index 777160ec5ffe9..71927799f89ca 100644
--- a/decidim-budgets/spec/commands/decidim/budgets/admin/import_proposals_to_budgets_spec.rb
+++ b/decidim-budgets/spec/commands/decidim/budgets/admin/import_proposals_to_budgets_spec.rb
@@ -88,6 +88,18 @@ module Admin
end
end
+ context "when there are no states" do
+ let(:internal_states) { [] }
+
+ it "broadcasts ok" do
+ expect { command.call }.to broadcast(:ok)
+ end
+
+ it "imports all proposals" do
+ expect { command.call }.to change { Project.where(budget:).count }.by(3)
+ end
+ end
+
context "when a proposal was already imported" do
let(:second_proposal) { create(:proposal, :accepted, component: proposal.component) }
diff --git a/decidim-budgets/spec/commands/decidim/budgets/admin/update_project_spec.rb b/decidim-budgets/spec/commands/decidim/budgets/admin/update_project_spec.rb
index 013972c7ee142..f970bf277cc2b 100644
--- a/decidim-budgets/spec/commands/decidim/budgets/admin/update_project_spec.rb
+++ b/decidim-budgets/spec/commands/decidim/budgets/admin/update_project_spec.rb
@@ -11,12 +11,12 @@ module Decidim::Budgets
let(:organization) { budget.component.organization }
let(:participatory_process) { budget.component.participatory_space }
let(:current_user) { create(:user, :admin, :confirmed, organization:) }
- let(:uploaded_photos) { [] }
+ let(:uploaded_attachments) { [] }
let(:selected) { nil }
let(:address) { "something" }
let(:latitude) { 40.1234 }
let(:longitude) { 2.1234 }
- let(:current_photos) { [] }
+ let(:current_attachments) { [] }
let(:taxonomizations) do
2.times.map { build(:taxonomization, taxonomy: create(:taxonomy, :with_parent, organization:), taxonomizable: nil) }
end
@@ -40,8 +40,8 @@ module Decidim::Budgets
proposal_ids: proposals.map(&:id),
taxonomizations:,
selected:,
- photos: current_photos,
- add_photos: uploaded_photos,
+ attachments: current_attachments,
+ add_attachments: uploaded_attachments,
address:,
latitude:,
longitude:
diff --git a/decidim-budgets/spec/forms/decidim/budgets/admin/project_import_proposals_form_spec.rb b/decidim-budgets/spec/forms/decidim/budgets/admin/project_import_proposals_form_spec.rb
index 18a581be82b8d..790f5262228a7 100644
--- a/decidim-budgets/spec/forms/decidim/budgets/admin/project_import_proposals_form_spec.rb
+++ b/decidim-budgets/spec/forms/decidim/budgets/admin/project_import_proposals_form_spec.rb
@@ -68,6 +68,50 @@ module Admin
expect(form.origin_components.length).to eq(1)
end
end
+
+ describe "valid_states validation" do
+ context "when all selected states are valid" do
+ let(:states) { %w(accepted rejected) }
+
+ it { is_expected.to be_valid }
+ end
+
+ context "when including the special not_answered state" do
+ let(:states) { %w(accepted not_answered) }
+
+ it { is_expected.to be_valid }
+ end
+
+ context "when only not_answered is selected" do
+ let(:states) { %w(not_answered) }
+
+ it { is_expected.to be_valid }
+ end
+
+ context "when some states are invalid" do
+ let(:states) { %w(accepted invalid_state) }
+
+ it { is_expected.to be_invalid }
+
+ it "adds an error to the states attribute" do
+ form.valid?
+ expect(form.errors[:states]).to be_present
+ end
+ end
+
+ context "when all states are invalid" do
+ let(:states) { %w(nonexistent_state another_invalid) }
+
+ it { is_expected.to be_invalid }
+ end
+
+ context "when there is no origin component" do
+ let(:origin_component) { nil }
+ let(:states) { %w(invalid_state) }
+
+ it { is_expected.to be_invalid }
+ end
+ end
end
end
end
diff --git a/decidim-budgets/spec/lib/decidim/budgets/component_spec.rb b/decidim-budgets/spec/lib/decidim/budgets/component_spec.rb
new file mode 100644
index 0000000000000..b2dad701694c8
--- /dev/null
+++ b/decidim-budgets/spec/lib/decidim/budgets/component_spec.rb
@@ -0,0 +1,35 @@
+# frozen_string_literal: true
+
+require "spec_helper"
+
+describe "Budgets component" do # rubocop:disable RSpec/DescribeClass
+ let!(:component) { create(:budgets_component) }
+
+ describe "stats" do
+ subject { current_stat[1][:data] }
+
+ let(:raw_stats) do
+ Decidim.component_manifests.map do |component_manifest|
+ component_manifest.stats.filter(name: stats_name).with_context(component).flat_map { |name, data| [component_manifest.name, name, data] }
+ end
+ end
+
+ let(:stats) { raw_stats.select { |stat| stat[0] == :budgets } }
+ let!(:budget) { create(:budget, component:) }
+ let!(:project) { create(:project, budget:) }
+ let(:current_stat) { stats.find { |stat| stat[1][:name] == stats_name } }
+
+ describe "comments_count" do
+ let(:stats_name) { :comments_count }
+
+ before do
+ create_list(:comment, 3, commentable: project)
+ end
+
+ it "counts the comments" do
+ expect(Decidim::Comments::Comment.count).to eq 3
+ expect(subject).to eq 3
+ end
+ end
+ end
+end
diff --git a/decidim-budgets/spec/system/admin_manages_projects_spec.rb b/decidim-budgets/spec/system/admin_manages_projects_spec.rb
index 3a70f38b2f2b3..38a7ef2bd5d85 100644
--- a/decidim-budgets/spec/system/admin_manages_projects_spec.rb
+++ b/decidim-budgets/spec/system/admin_manages_projects_spec.rb
@@ -125,6 +125,101 @@
end
end
+ context "when a project has an attachment" do
+ let!(:budget_with_attachment) { create(:budget, component: current_component) }
+ let!(:project_with_attachment) do
+ create(:project, budget: budget_with_attachment)
+ end
+
+ let!(:attachment) { create(:attachment, :with_image, attached_to: project_with_attachment) }
+
+ before do
+ visit_component_admin
+
+ within "tr", text: translated(budget_with_attachment.title) do
+ find("button[data-controller='dropdown']").click
+ click_on "Add projects"
+ end
+ end
+
+ it "can remove an attachment" do
+ within "tr", text: translated(project_with_attachment.title) do
+ find("button[data-controller='dropdown']").click
+ click_on "Edit"
+ end
+
+ click_on("Edit attachments")
+ within "li[data-filename='#{attachment.file.blob.filename}']" do
+ click_on("Remove")
+ end
+
+ click_on("Save")
+
+ expect(page).to have_no_css("img[src*='#{attachment.file.blob.filename}']")
+ end
+
+ it "can attach a file" do
+ within "tr", text: translated(project_with_attachment.title) do
+ find("button[data-controller='dropdown']").click
+ click_on "Edit"
+ end
+
+ click_on("Edit attachments")
+
+ filename = attachment.file.blob.filename.to_s
+ within ".upload-modal" do
+ find("input[type='file']", visible: :all).attach_file(Decidim::Dev.asset(filename))
+ within "li[data-filename='#{filename}']:not([data-attachment-id])" do
+ expect(page).to have_css("progress[value='100']")
+ end
+ expect(page).to have_css("button[data-dropzone-save]:not([disabled])")
+ click_on("Save")
+ end
+
+ expect(page).to have_no_css(".upload-modal")
+
+ click_on("Update")
+
+ expect(page).to have_text("Project successfully updated.")
+
+ within "tr", text: translated_attribute(project_with_attachment.title) do
+ find("button[data-controller='dropdown']").click
+ click_on "Edit"
+ end
+
+ expect(page).to have_css("img[src*='#{attachment.file.blob.filename}']")
+ end
+
+ it "can edit a project with an attachment" do
+ within "tr", text: translated(project_with_attachment.title) do
+ find("button[data-controller='dropdown']").click
+ click_on "Edit"
+ end
+
+ expect(page.html).to include(attachment.file.blob.filename.to_s)
+
+ fill_in_i18n(:project_title, "#project-title-tabs", en: "Updated project title with attachments")
+ click_on "Update"
+
+ expect(page).to have_content "Project successfully updated."
+
+ visit_component_admin
+
+ within "tr", text: translated(budget_with_attachment.title) do
+ find("button[data-controller='dropdown']").click
+ click_on "Add projects"
+ end
+
+ within "tr", text: "Updated project title with attachments" do
+ find("button[data-controller='dropdown']").click
+ click_on "Edit"
+ end
+
+ expect(page).to have_field("project_title_en", with: "Updated project title with attachments")
+ expect(page.html).to include(attachment.file.blob.filename.to_s)
+ end
+ end
+
private
def format_title(budget)
diff --git a/decidim-budgets/spec/system/admin_reminds_users_with_pending_orders_spec.rb b/decidim-budgets/spec/system/admin_reminds_users_with_pending_orders_spec.rb
index fceedc7646cf7..860cc5a7c0c91 100644
--- a/decidim-budgets/spec/system/admin_reminds_users_with_pending_orders_spec.rb
+++ b/decidim-budgets/spec/system/admin_reminds_users_with_pending_orders_spec.rb
@@ -34,8 +34,10 @@
end
it "sends reminders" do
- perform_enqueued_jobs { click_on "Send" }
- expect(page).to have_content("2 users will be reminded")
+ perform_enqueued_jobs do
+ click_on "Send"
+ expect(page).to have_content("2 users will be reminded")
+ end
expect(emails.count).to eq(2)
emails.each do |email|
@@ -46,11 +48,15 @@
end
it "does not send reminders twice" do
- perform_enqueued_jobs { click_on "Send" }
- expect(page).to have_content("2 users will be reminded")
+ perform_enqueued_jobs do
+ click_on "Send"
+ expect(page).to have_content("2 users will be reminded")
+ end
click_on "Send voting reminders"
- perform_enqueued_jobs { click_on "Send" }
- expect(page).to have_content("0 users will be reminded")
+ perform_enqueued_jobs do
+ click_on "Send"
+ expect(page).to have_content("0 users will be reminded")
+ end
end
end
end
diff --git a/decidim-budgets/spec/system/explore_budgets_spec.rb b/decidim-budgets/spec/system/explore_budgets_spec.rb
index 2b392fb32516a..694c4f6d705ef 100644
--- a/decidim-budgets/spec/system/explore_budgets_spec.rb
+++ b/decidim-budgets/spec/system/explore_budgets_spec.rb
@@ -107,9 +107,8 @@
end
context "and the voting is open" do
- it "links to the authorization modal" do
- expect(item).to have_link(translated(budget.title), href: budget_path(budget))
- expect(item).to have_css("a[data-dialog-open='loginModal']")
+ it "links the vote CTA to the budget projects" do
+ expect(item).to have_css(".budget__card__highlight-vote[href='#{budget_projects_path(budget)}']")
end
end
@@ -203,8 +202,9 @@
expect(item).to have_content("Delete your vote")
within item do
accept_confirm { click_on "Delete your vote" }
- expect(Decidim::Budgets::Order.where(budget:)).to be_blank
end
+ expect(page).to have_content("Your vote has been successfully canceled.")
+ expect(Decidim::Budgets::Order.where(budget:)).to be_blank
end
context "and the voting is disabled" do
diff --git a/decidim-budgets/spec/system/import_proposals_to_projects_spec.rb b/decidim-budgets/spec/system/import_proposals_to_projects_spec.rb
index 1372101c966ae..d75ca331a09f9 100644
--- a/decidim-budgets/spec/system/import_proposals_to_projects_spec.rb
+++ b/decidim-budgets/spec/system/import_proposals_to_projects_spec.rb
@@ -115,5 +115,21 @@
expect(Decidim::Budgets::Project.where(budget:).count).to eq(2)
end
end
+
+ context "when no states are selected" do
+ let!(:proposals) { create_list(:proposal, 3, :published, component: origin_component) }
+
+ it "imports all proposals" do
+ within ".import_proposals" do
+ select origin_component.name["en"], from: "Origin component"
+ fill_in "Default budget", with: 1000
+ end
+
+ click_on "Import proposals to projects"
+
+ expect(page).to have_content("3 proposals successfully imported")
+ expect(Decidim::Budgets::Project.where(budget:).count).to eq(3)
+ end
+ end
end
end
diff --git a/decidim-budgets/spec/types/integration_schema_spec.rb b/decidim-budgets/spec/types/integration_schema_spec.rb
index d164389d7087d..31bed9c46ae76 100644
--- a/decidim-budgets/spec/types/integration_schema_spec.rb
+++ b/decidim-budgets/spec/types/integration_schema_spec.rb
@@ -119,7 +119,7 @@
]
},
"url" => Decidim::EngineRouter.main_proxy(current_component).root_url,
- "weight" => 0
+ "weight" => current_component.weight
}
end
diff --git a/decidim-collaborative_texts/app/views/decidim/collaborative_texts/admin/documents/_actions.html.erb b/decidim-collaborative_texts/app/views/decidim/collaborative_texts/admin/documents/_actions.html.erb
index d3cb99a05d783..c4636b334c464 100644
--- a/decidim-collaborative_texts/app/views/decidim/collaborative_texts/admin/documents/_actions.html.erb
+++ b/decidim-collaborative_texts/app/views/decidim/collaborative_texts/admin/documents/_actions.html.erb
@@ -68,7 +68,7 @@
<% end %>
<% else %>
diff --git a/decidim-comments/app/views/decidim/comments/comments/reload.js.erb b/decidim-comments/app/views/decidim/comments/comments/reload.js.erb
index 8fee7536997ad..b2a3f42b99540 100644
--- a/decidim-comments/app/views/decidim/comments/comments/reload.js.erb
+++ b/decidim-comments/app/views/decidim/comments/comments/reload.js.erb
@@ -3,6 +3,10 @@
var $comments = $("#" + rootCommentableId);
var component = $comments.data("comments");
+
+ // Save the focused element id to restore focus after reload
+ var activeElementId = document.activeElement ? document.activeElement.id : null;
+
component.unmountComponent();
var commentsHtml = '<%== j(inline_comments_for(commentable, order:).inline).strip %>';
@@ -16,4 +20,12 @@
// Update the comments count
$(".comments-count", $comments).text(<%== t("decidim.components.comments.title", count: @comments_count).to_json %>);
+ // Restore focus to the previously focused element if it still exists
+ if (activeElementId) {
+ var newActiveElement = document.getElementById(activeElementId);
+ if (newActiveElement) {
+ newActiveElement.focus();
+ }
+ }
+
}());
diff --git a/decidim-comments/config/locales/ar.yml b/decidim-comments/config/locales/ar.yml
index d7b7b50529c78..6652ae33b6e47 100644
--- a/decidim-comments/config/locales/ar.yml
+++ b/decidim-comments/config/locales/ar.yml
@@ -122,12 +122,10 @@ ar:
email_intro: "%{author_name} ترك تعليق في %{resource_title}. يمكنك قراءتها في هذه الصفحة:"
email_outro: لقد تلقيت هذا الإشعار لأنك تتابع %{author_name}. يمكنك إلغاء تتبع هذا المستخدم من صفحة ملفه الشخصي.
email_subject: هناك تعليق جديد مِن %{author_name} على %{resource_title}
- notification_title: هناك تعليق جديد مِن %{author_name} %{author_nickname} على %{resource_title}.
comment_created:
email_intro: "%{resource_title} تم التعليق. يمكنك قراءة التعليق في هذه الصفحة:"
email_outro: لقد تلقيت هذا الإشعار لأنك تتابع "%{resource_title}" أو مؤلفه. يمكنك إلغاء تتبعه من الرابط السابق.
email_subject: هناك تعليق جديد من %{author_name} في %{resource_title}
- notification_title: هناك تعليق جديد مِن %{author_name} %{author_nickname} على %{resource_title}
comment_downvoted:
email_intro: تم خفض تعليقك في "%{resource_title}". الآن يحتوي على ما مجموعه %{upvotes} أصوات أعلى و %{downvotes} أصوات أدنى.
email_outro: لقد تلقيت هذا الإشعار لأنك مؤلف هذا التعليق.
@@ -142,9 +140,7 @@ ar:
email_intro: "%{author_name} رد على تعليقك في %{resource_title}. يمكنك قراءتها في هذه الصفحة:"
email_outro: لقد تلقيت هذا الإشعار لأنه تم الرد على تعليقك.
email_subject: "%{author_name} رد على تعليقك في %{resource_title}"
- notification_title: %{author_name} %{author_nickname} رد على تعليقك في %{resource_title}
user_mentioned:
email_intro: لقد ذكرت
email_outro: لقد تلقيت هذا الإشعار لأنك ذكرت في %{resource_title}.
email_subject: لقد ذكرت في %{resource_title}
- notification_title: لقد ذكرت في %{resource_title} من %{author_name} %{author_nickname}
diff --git a/decidim-comments/config/locales/bg.yml b/decidim-comments/config/locales/bg.yml
index 148a4aa89f35a..d8230f1ec7b74 100644
--- a/decidim-comments/config/locales/bg.yml
+++ b/decidim-comments/config/locales/bg.yml
@@ -129,12 +129,10 @@ bg:
email_intro: "%{author_name} остави коментар в %{resource_title}. Можете да го прочетете на тази страница:"
email_outro: Получихте това известие, защото следвате %{author_name}. Можете да спрете да следвате този потребител от страницата на неговия профил.
email_subject: Има нов коментар от %{author_name} в(ъв) %{resource_title}
- notification_title: Има нов коментар от %{author_name} %{author_nickname} в(ъв) %{resource_title}.
comment_created:
email_intro: "%{resource_title} получи коментар. Можете да прочетете коментара на тази страница:"
email_outro: Получавате това известие, защото следвате „%{resource_title}“ или неговия автор. Можете да прекратите следването от предходната връзка.
email_subject: Има нов коментар от %{author_name} по %{resource_title}
- notification_title: Има нов коментар от %{author_name} %{author_nickname} по %{resource_title}
comment_downvoted:
email_intro: Вашият коментар в „%{resource_title}“ беше гласуван против. Вече има общо %{upvotes} гласа за и %{downvotes} гласа против.
email_outro: Получихте това известие, защото вие сте авторът на този коментар.
@@ -149,12 +147,10 @@ bg:
email_intro: "%{author_name} отговори на вашия коментар в %{resource_title}. Можете да го прочетете на тази страница:"
email_outro: Получавате това известие, защото някой отговори на коментара Ви.
email_subject: "%{author_name} отговори на коментара Ви по %{resource_title}"
- notification_title: %{author_name} %{author_nickname} отговори на коментара Ви по %{resource_title}
user_mentioned:
email_intro: Бяхте споменати
email_outro: Получавате това известие, защото бяхте споменати в(ъв) %{resource_title}.
email_subject: Бяхте споменати в(ъв) %{resource_title}
- notification_title: %{author_name} %{author_nickname} Ви спомена в(ъв) %{resource_title}
errors:
messages:
cannot_have_comments: не може да има коментари
diff --git a/decidim-comments/config/locales/ca-IT.yml b/decidim-comments/config/locales/ca-IT.yml
index a2adcbabcc8b8..0beab37df1e6e 100644
--- a/decidim-comments/config/locales/ca-IT.yml
+++ b/decidim-comments/config/locales/ca-IT.yml
@@ -166,12 +166,12 @@ ca-IT:
email_intro: "%{author_name} ha deixat un comentari a %{resource_title}. Podeu llegir-lo en aquesta pàgina:"
email_outro: Has rebut aquesta notificació perquè estàs seguint el comentari "%{author_name}". Pots deixar de seguir a aquesta participant des de la seva pàgina de perfil.
email_subject: Hi ha un nou comentari de %{author_name} en %{resource_title}
- notification_title: Hi ha un nou comentari per %{author_name} %{author_nickname} a %{resource_title}.
+ notification_title: Hi ha un nou comentari de %{author_name} a%{resource_title}.
comment_created:
email_intro: "Algú ha deixat un comentari a \"%{resource_title}\". Pots llegir el comentari a través del següent enllaç:"
email_outro: Has rebut aquesta notificació perquè estàs seguint el comentari "%{resource_title}" o la seva autora. Pots deixar de seguir-la des de l'enllaç anterior.
email_subject: Hi ha un nou comentari de %{author_name} a %{resource_title}
- notification_title: Hi ha un nou comentari de %{author_name} %{author_nickname} en %{resource_title}
+ notification_title: Hi ha un nou comentari de %{author_name} a%{resource_title}
comment_downvoted:
email_intro: El teu comentari a "%{resource_title}" ha rebut un vot negatiu. Ara té un total de %{upvotes} vots positius i %{downvotes} vots negatius.
email_outro: Has rebut aquesta notificació perquè vas fer aquest comentari.
@@ -186,12 +186,12 @@ ca-IT:
email_intro: "%{author_name} ha respost el teu comentari a %{resource_title}. Pots llegir-lo en aquesta pàgina:"
email_outro: Has rebut aquesta notificació perquè s'ha respost el teu comentari.
email_subject: "%{author_name} ha respost el teu comentari a %{resource_title}"
- notification_title: %{author_name} %{author_nickname} ha respost el teu comentari a %{resource_title}
+ notification_title: %{author_name} ha respost el teu comentari a %{resource_title}
user_mentioned:
email_intro: Has estat esmentada
email_outro: Has rebut aquesta notificació perquè t'han esmentat al comentari "%{resource_title}".
email_subject: Has estat esmentada a %{resource_title}
- notification_title: Has estat esmentada a %{resource_title} per %{author_name} %{author_nickname}
+ notification_title: Has estat esmentada per %{author_name} a %{resource_title}
errors:
messages:
cannot_have_comments: no es poden fer comentaris
diff --git a/decidim-comments/config/locales/ca.yml b/decidim-comments/config/locales/ca.yml
index b91461cd0ea6a..c27215d561743 100644
--- a/decidim-comments/config/locales/ca.yml
+++ b/decidim-comments/config/locales/ca.yml
@@ -166,12 +166,12 @@ ca:
email_intro: "%{author_name} ha deixat un comentari a %{resource_title}. Podeu llegir-lo en aquesta pàgina:"
email_outro: Has rebut aquesta notificació perquè estàs seguint el comentari "%{author_name}". Pots deixar de seguir a aquesta participant des de la seva pàgina de perfil.
email_subject: Hi ha un nou comentari de %{author_name} en %{resource_title}
- notification_title: Hi ha un nou comentari per %{author_name} %{author_nickname} a %{resource_title}.
+ notification_title: Hi ha un nou comentari de %{author_name} a%{resource_title}.
comment_created:
email_intro: "Algú ha deixat un comentari a \"%{resource_title}\". Pots llegir el comentari a través del següent enllaç:"
email_outro: Has rebut aquesta notificació perquè estàs seguint el comentari "%{resource_title}" o la seva autora. Pots deixar de seguir-la des de l'enllaç anterior.
email_subject: Hi ha un nou comentari de %{author_name} a %{resource_title}
- notification_title: Hi ha un nou comentari de %{author_name} %{author_nickname} en %{resource_title}
+ notification_title: Hi ha un nou comentari de %{author_name} a%{resource_title}
comment_downvoted:
email_intro: El teu comentari a "%{resource_title}" ha rebut un vot negatiu. Ara té un total de %{upvotes} vots positius i %{downvotes} vots negatius.
email_outro: Has rebut aquesta notificació perquè vas fer aquest comentari.
@@ -186,12 +186,12 @@ ca:
email_intro: "%{author_name} ha respost el teu comentari a %{resource_title}. Pots llegir-lo en aquesta pàgina:"
email_outro: Has rebut aquesta notificació perquè s'ha respost el teu comentari.
email_subject: "%{author_name} ha respost el teu comentari a %{resource_title}"
- notification_title: %{author_name} %{author_nickname} ha respost el teu comentari a %{resource_title}
+ notification_title: %{author_name} ha respost el teu comentari a %{resource_title}
user_mentioned:
email_intro: Has estat esmentada
email_outro: Has rebut aquesta notificació perquè t'han esmentat al comentari "%{resource_title}".
email_subject: Has estat esmentada a %{resource_title}
- notification_title: Has estat esmentada a %{resource_title} per %{author_name} %{author_nickname}
+ notification_title: Has estat esmentada per %{author_name} a %{resource_title}
errors:
messages:
cannot_have_comments: no es poden fer comentaris
diff --git a/decidim-comments/config/locales/cs.yml b/decidim-comments/config/locales/cs.yml
index 4aaa8f11c10db..88e3474a81b7e 100644
--- a/decidim-comments/config/locales/cs.yml
+++ b/decidim-comments/config/locales/cs.yml
@@ -172,12 +172,12 @@ cs:
email_intro: "%{author_name} zanechal komentář v %{resource_title}. Můžete si je přečíst na této stránce:"
email_outro: Toto oznámení jste obdrželi, protože jste sledovali %{author_name}. Tento uživatel můžete zrušit ze své profilové stránky.
email_subject: K dispozici je nový komentář %{author_name} v %{resource_title}
- notification_title: Je tu nový komentář %{author_name} %{author_nickname} v %{resource_title}.
+ notification_title: Nový komentář od %{author_name} v %{resource_title}.
comment_created:
email_intro: "%{resource_title} bylo komentováno. Můžete si přečíst komentář na této stránce:"
email_outro: Toto oznámení jste obdrželi, protože jste sledovali "%{resource_title}" nebo jeho autora. Můžete jej odhlásit od předchozího odkazu.
email_subject: K dispozici je nový komentář od %{author_name} do %{resource_title}
- notification_title: Je tu nový komentář od %{author_name} %{author_nickname} do %{resource_title}
+ notification_title: Nový komentář od %{author_name} v %{resource_title}
comment_downvoted:
email_intro: Váš komentář v "%{resource_title}" byl nepodpořen. Nyní má celkem %{upvotes} hlasů podpory a %{downvotes} hlasuje proti.
email_outro: Obdrželi jste toto oznámení, protože jste autorem tohoto komentáře.
@@ -192,12 +192,10 @@ cs:
email_intro: "%{author_name} odpověděl váš komentář v %{resource_title}. Můžete si je přečíst na této stránce:"
email_outro: Toto oznámení jste obdrželi, protože váš komentář byl zodpovězen.
email_subject: "%{author_name} odpověděl váš komentář v %{resource_title}"
- notification_title: %{author_name} %{author_nickname} odpověděl na váš komentář v %{resource_title}
user_mentioned:
email_intro: Byl jste zmíněn
email_outro: Toto oznámení jste obdrželi, protože jste byli uvedeni v %{resource_title}.
email_subject: Byl jste zmíněn v %{resource_title}
- notification_title: Byli jste zmíněni v %{resource_title} od %{author_name} %{author_nickname}
errors:
messages:
cannot_have_comments: nelze komentovat
diff --git a/decidim-comments/config/locales/de.yml b/decidim-comments/config/locales/de.yml
index a5e2d02f4bf41..fabe105c75535 100644
--- a/decidim-comments/config/locales/de.yml
+++ b/decidim-comments/config/locales/de.yml
@@ -166,12 +166,12 @@ de:
email_intro: "%{author_name} hat einen Kommentar zu %{resource_title} hinterlassen. Sie können diesen auf dieser Seite lesen:"
email_outro: Sie haben diese Benachrichtigung erhalten, weil Sie %{author_name} folgen. Falls Sie keine solchen Benachrichtigungen mehr erhalten möchten, besuchen Sie die Profil-Seite dieses Benutzers.
email_subject: Neuer Kommentar von %{author_name} zu %{resource_title}
- notification_title: Es gibt einen neuen Kommentar von %{author_name} %{author_nickname} zu %{resource_title}.
+ notification_title: Es gibt einen neuen Kommentar von %{author_name} zu %{resource_title}.
comment_created:
email_intro: "%{resource_title} wurde kommentiert. Sie können den Kommentar auf dieser Seite lesen:"
email_outro: Sie haben diese Benachrichtigung erhalten, weil Sie "%{resource_title}" oder seinem Autor folgen. Falls Sie keine solchen Benachrichtigungen mehr erhalten möchten, besuchen Sie den obigen Link.
email_subject: Neuer Kommentar von %{author_name} zu %{resource_title}
- notification_title: Es gibt einen neuen Kommentar von %{author_name} %{author_nickname} zu %{resource_title}
+ notification_title: Es gibt einen neuen Kommentar von %{author_name} zu %{resource_title}
comment_downvoted:
email_intro: Ihr Kommentar in "%{resource_title}" wurde negativ bewertet. Er hat nun insgesamt %{upvotes} positive und %{downvotes} negative Stimmen.
email_outro: Sie haben diese Benachrichtigung erhalten, weil Sie der Autor des Vorschlags sind.
@@ -186,12 +186,12 @@ de:
email_intro: "%{author_name} hat auf Ihren Kommentar zu %{resource_title} geantwortet. Sie können das auf dieser Seite lesen:"
email_outro: Sie haben diese Benachrichtigung erhalten, weil Ihr Kommentar beantwortet wurde.
email_subject: "%{author_name} hat auf Ihren Kommentar zu %{resource_title} geantwortet"
- notification_title: %{author_name} %{author_nickname} hat auf Ihren Kommentar in %{resource_title} geantwortet
+ notification_title: %{author_name} hat auf Ihren Kommentar zu %{resource_title} geantwortet
user_mentioned:
email_intro: Sie wurden erwähnt
email_outro: Sie haben diese Benachrichtigung erhalten, weil Sie in %{resource_title} erwähnt wurden.
email_subject: Sie wurden in %{resource_title} erwähnt
- notification_title: Sie wurden in %{resource_title} von %{author_name} %{author_nickname} erwähnt
+ notification_title: Sie wurden von %{author_name} in %{resource_title} erwähnt
errors:
messages:
cannot_have_comments: kann keine Kommentare haben
diff --git a/decidim-comments/config/locales/el.yml b/decidim-comments/config/locales/el.yml
index 491e626b53ad4..19c60dd301383 100644
--- a/decidim-comments/config/locales/el.yml
+++ b/decidim-comments/config/locales/el.yml
@@ -118,12 +118,10 @@ el:
email_intro: "Ο συντάκτης %{author_name} έκανε ένα σχόλιο στο στοιχείο %{resource_title}. Μπορείτε να το διαβάσετε σε αυτήν τη σελίδα:"
email_outro: Λάβατε αυτήν την ειδοποίηση επειδή ακολουθείτε τον συντάκτη %{author_name}. Μπορείτε να σταματήσετε να ακολουθείτε αυτόν τον χρήστη από τη σελίδα προφίλ του.
email_subject: Υπάρχει ένα νέο σχόλιο από τον συντάκτη %{author_name} στο στοιχείο %{resource_title}
- notification_title: Υπάρχει ένα νέο σχόλιο από τον συντάκτη %{author_name} %{author_nickname} στο στοιχείο %{resource_title}.
comment_created:
email_intro: "Το στοιχείο %{resource_title} έχει σχολιαστεί. Μπορείτε να διαβάσετε το σχόλιο σε αυτήν τη σελίδα:"
email_outro: Λάβατε αυτήν την ειδοποίηση επειδή ακολουθείτε το στοιχείο «%{resource_title}» ή τον συντάκτη του. Μπορείτε να σταματήσετε να την ακολουθείτε από τον προηγούμενο σύνδεσμο.
email_subject: Υπάρχει ένα νέο σχόλιο από τον συντάκτη %{author_name} στο στοιχείο %{resource_title}
- notification_title: Υπάρχει ένα νέο σχόλιο από τον συντάκτη%{author_name} %{author_nickname} στο στοιχείο %{resource_title}
comment_downvoted:
email_intro: Το σχόλιό σας στο "%{resource_title}" έχει καταψηφιστεί. Τώρα έχει συνολικές ψήφους %{upvotes} υπέρ και %{downvotes} κατά.
email_outro: Λάβατε αυτή την ειδοποίηση επειδή είστε ο συγγραφέας αυτού του σχολίου.
@@ -138,12 +136,10 @@ el:
email_intro: "Ο συντάκτης %{author_name} απάντησε στο σχόλιό σας στο στοιχείο %{resource_title}. Μπορείτε να το διαβάσετε σε αυτήν τη σελίδα:"
email_outro: Λάβατε αυτήν την ειδοποίηση, επειδή το σχόλιό σας απαντήθηκε.
email_subject: "Ο συντάκτης %{author_name} απάντησε στο σχόλιό σας στο στοιχείο %{resource_title}"
- notification_title: Ο συντάκτης %{author_name} %{author_nickname} απάντησε στο σχόλιό σας στο στοιχείο %{resource_title}
user_mentioned:
email_intro: Έγινε αναφορά σε εσάς
email_outro: Λάβατε αυτήν την ειδοποίηση επειδή έγινε αναφορά σε εσάς στο στοιχείο %{resource_title}.
email_subject: Έγινε αναφορά σε εσάς στο στοιχείο %{resource_title}
- notification_title: Έγινε αναφορά σε εσάς στο στοιχείο %{resource_title} από τον συντάκτη %{author_name} %{author_nickname}
errors:
messages:
cannot_have_comments: δεν μπορεί να έχει σχόλια
diff --git a/decidim-comments/config/locales/en.yml b/decidim-comments/config/locales/en.yml
index c3149702743ef..4748259a425ff 100644
--- a/decidim-comments/config/locales/en.yml
+++ b/decidim-comments/config/locales/en.yml
@@ -166,12 +166,12 @@ en:
email_intro: "%{author_name} has left a comment in %{resource_title}. You can read it in this page:"
email_outro: You have received this notification because you are following %{author_name}. You can unfollow this user from their profile page.
email_subject: There is a new comment by %{author_name} in %{resource_title}
- notification_title: There is a new comment by %{author_name} %{author_nickname} in %{resource_title}.
+ notification_title: There is a new comment by %{author_name} in %{resource_title}.
comment_created:
email_intro: "%{resource_title} has been commented. You can read the comment in this page:"
email_outro: You have received this notification because you are following "%{resource_title}" or its author. You can unfollow it from the previous link.
email_subject: There is a new comment from %{author_name} in %{resource_title}
- notification_title: There is a new comment from %{author_name} %{author_nickname} in %{resource_title}
+ notification_title: There is a new comment from %{author_name} in %{resource_title}
comment_downvoted:
email_intro: Your comment in "%{resource_title}" has been downvoted. It now has a total of %{upvotes} upvotes and %{downvotes} downvotes.
email_outro: You have received this notification because you are the author of this comment.
@@ -186,12 +186,12 @@ en:
email_intro: "%{author_name} has replied your comment in %{resource_title}. You can read it in this page:"
email_outro: You have received this notification because your comment was replied.
email_subject: "%{author_name} has replied your comment in %{resource_title}"
- notification_title: %{author_name} %{author_nickname} has replied your comment in %{resource_title}
+ notification_title: %{author_name} has replied your comment in %{resource_title}
user_mentioned:
email_intro: You have been mentioned
email_outro: You have received this notification because you have been mentioned in %{resource_title}.
email_subject: You have been mentioned in %{resource_title}
- notification_title: You have been mentioned in %{resource_title} by %{author_name} %{author_nickname}
+ notification_title: You have been mentioned in %{resource_title} by %{author_name}
errors:
messages:
cannot_have_comments: cannot have comments
diff --git a/decidim-comments/config/locales/es-MX.yml b/decidim-comments/config/locales/es-MX.yml
index 3ba43c315d2f7..65456a3e7347c 100644
--- a/decidim-comments/config/locales/es-MX.yml
+++ b/decidim-comments/config/locales/es-MX.yml
@@ -166,12 +166,12 @@ es-MX:
email_intro: "%{author_name} ha dejado un comentario en %{resource_title}. Puedes leerlo en esta página:"
email_outro: Has recibido esta notificación porque sigues "%{author_name}". Puedes dejar de seguirlo desde el enlace anterior.
email_subject: Hay un nuevo comentario de %{author_name} en %{resource_title}
- notification_title: Hay un nuevo comentario de %{author_name} %{author_nickname} en %{resource_title}.
+ notification_title: Hay un nuevo comentario de %{author_name} en %{resource_title}.
comment_created:
email_intro: "%{resource_title} ha sido comentado. Puedes leer el comentario en esta página:"
email_outro: Has recibido esta notificación porque está siguiendo "%{resource_title}" o su autor. Puedes dejar de seguirlo desde el enlace anterior.
email_subject: Hay un nuevo comentario de %{author_name} en %{resource_title}
- notification_title: Hay un nuevo comentario de %{author_name} %{author_nickname} en %{resource_title}
+ notification_title: Hay un nuevo comentario de %{author_name} en %{resource_title}
comment_downvoted:
email_intro: Tu comentario en "%{resource_title}" ha sido votado negativamente. Ahora tiene un total de %{upvotes} votos positivos y %{downvotes} votos negativos.
email_outro: Has recibido esta notificación porque eres la autora de este comentario.
@@ -186,12 +186,12 @@ es-MX:
email_intro: "%{author_name} ha respondido a tu comentario en %{resource_title}. Puedes leerlo en esta página:"
email_outro: Has recibido esta notificación porque tu comentario fue respondido.
email_subject: "%{author_name} ha respondido a tu comentario en %{resource_title}"
- notification_title: %{author_name} %{author_nickname} ha respondido a tu comentario en %{resource_title}
+ notification_title: %{author_name} ha respondido a tu comentario en %{resource_title}
user_mentioned:
email_intro: Has sido mencionado
email_outro: Has recibido esta notificación porque has sido mencionado en %{resource_title}.
email_subject: Has sido mencionado en %{resource_title}
- notification_title: Has sido mencionado en %{resource_title} por %{author_name} %{author_nickname}
+ notification_title: Has sido mencionada por %{author_name} en %{resource_title}
errors:
messages:
cannot_have_comments: no se pueden hacer comentarios
diff --git a/decidim-comments/config/locales/es-PY.yml b/decidim-comments/config/locales/es-PY.yml
index 3aa3da9c833c6..3450516a3e2ee 100644
--- a/decidim-comments/config/locales/es-PY.yml
+++ b/decidim-comments/config/locales/es-PY.yml
@@ -166,12 +166,12 @@ es-PY:
email_intro: "%{author_name} ha dejado un comentario en %{resource_title}. Puedes leerlo en esta página:"
email_outro: Has recibido esta notificación porque sigues "%{author_name}". Puedes dejar de seguirlo desde el enlace anterior.
email_subject: Hay un nuevo comentario de %{author_name} en %{resource_title}
- notification_title: Hay un nuevo comentario de %{author_name} %{author_nickname} en %{resource_title}.
+ notification_title: Hay un nuevo comentario de %{author_name} en %{resource_title}.
comment_created:
email_intro: "%{resource_title} ha sido comentado. Puedes leer el comentario en esta página:"
email_outro: Has recibido esta notificación porque está siguiendo "%{resource_title}" o su autor. Puedes dejar de seguirlo desde el enlace anterior.
email_subject: Hay un nuevo comentario de %{author_name} en %{resource_title}
- notification_title: Hay un nuevo comentario de %{author_name} %{author_nickname} en %{resource_title}
+ notification_title: Hay un nuevo comentario de %{author_name} en %{resource_title}
comment_downvoted:
email_intro: Tu comentario en "%{resource_title}" ha sido votado negativamente. Ahora tiene un total de %{upvotes} votos positivos y %{downvotes} votos negativos.
email_outro: Has recibido esta notificación porque eres la autora de este comentario.
@@ -186,12 +186,12 @@ es-PY:
email_intro: "%{author_name} ha respondido a tu comentario en %{resource_title}. Puedes leerlo en esta página:"
email_outro: Has recibido esta notificación porque tu comentario fue respondido.
email_subject: "%{author_name} ha respondido a tu comentario en %{resource_title}"
- notification_title: %{author_name} %{author_nickname} ha respondido a tu comentario en %{resource_title}
+ notification_title: %{author_name} ha respondido a tu comentario en %{resource_title}
user_mentioned:
email_intro: Has sido mencionado
email_outro: Has recibido esta notificación porque has sido mencionado en %{resource_title}.
email_subject: Has sido mencionado en %{resource_title}
- notification_title: Has sido mencionado en %{resource_title} por %{author_name} %{author_nickname}
+ notification_title: Has sido mencionada por %{author_name} en %{resource_title}
errors:
messages:
cannot_have_comments: no se pueden hacer comentarios
diff --git a/decidim-comments/config/locales/es.yml b/decidim-comments/config/locales/es.yml
index b1541a7e81abf..3c9bbf72e8560 100644
--- a/decidim-comments/config/locales/es.yml
+++ b/decidim-comments/config/locales/es.yml
@@ -166,12 +166,12 @@ es:
email_intro: "%{author_name} ha dejado un comentario en %{resource_title}. Puedes leerlo en esta página:"
email_outro: Has recibido esta notificación porque sigues a "%{author_name}". Puedes dejar de seguir a esta participante desde su página de perfil.
email_subject: Hay un nuevo comentario de %{author_name} en %{resource_title}
- notification_title: Hay un nuevo comentario de %{author_name} %{author_nickname} en %{resource_title}.
+ notification_title: Hay un nuevo comentario de %{author_name} en %{resource_title}.
comment_created:
email_intro: "Alguien ha dejado un comentario en \"%{resource_title}\". Puedes leer el comentario a través del siguiente enlace:"
email_outro: Has recibido esta notificación porque estás siguiendo el comentario "%{resource_title}" o a su autora. Puedes dejar de seguirla desde el enlace anterior.
email_subject: Hay un nuevo comentario de %{author_name} en %{resource_title}
- notification_title: Hay un nuevo comentario de %{author_name} %{author_nickname} en %{resource_title}
+ notification_title: Hay un nuevo comentario de %{author_name} en %{resource_title}
comment_downvoted:
email_intro: Tu comentario en "%{resource_title}" ha sido votado negativamente. Ahora tiene un total de %{upvotes} votos positivos y %{downvotes} votos negativos.
email_outro: Has recibido esta notificación porque hiciste este comentario.
@@ -186,12 +186,12 @@ es:
email_intro: "%{author_name} ha respondido a tu comentario en %{resource_title}. Puedes leerlo en esta página:"
email_outro: Has recibido esta notificación porque han respondido a tu comentario.
email_subject: "%{author_name} ha respondido a tu comentario en %{resource_title}"
- notification_title: %{author_name} %{author_nickname} ha respondido a tu comentario en %{resource_title}
+ notification_title: %{author_name} ha respondido a tu comentario en %{resource_title}
user_mentioned:
email_intro: Has sido mencionada
email_outro: Has recibido esta notificación porque te han mencionado en el comentario "%{resource_title}".
email_subject: Has sido mencionada en %{resource_title}
- notification_title: Has sido mencionada en %{resource_title} por %{author_name} %{author_nickname}
+ notification_title: Has sido mencionada por %{author_name} en %{resource_title}
errors:
messages:
cannot_have_comments: no se pueden hacer comentarios
diff --git a/decidim-comments/config/locales/eu.yml b/decidim-comments/config/locales/eu.yml
index 7e3e6c3881fe4..52a87d647454f 100644
--- a/decidim-comments/config/locales/eu.yml
+++ b/decidim-comments/config/locales/eu.yml
@@ -166,12 +166,12 @@ eu:
email_intro: "%{author_name} egileak iruzkin bat utzi du %{resource_title} helbidean. Orri honetan irakur dezakezu:"
email_outro: Jakinarazpen hau jaso duzu %{author_name} parte-hartzailea jarraitzen duzulako. Nahi izatekotan erabiltzaile hori bere profil-orritik jarraitzeari utz diezaiokezu.
email_subject: '%{author_name} egileak beste iruzkin bat egin du hemen: %{resource_title}'
- notification_title: '%{author_name} %{author_nickname} parte-hartzaileak iruzkin berri bat egin du hemen: %{resource_title}.'
+ notification_title: '%{author_name} egileak beste iruzkin bat egin du hemen: %{resource_title}.'
comment_created:
email_intro: "Norbaitek iruzkin bat egin du hemen: %{resource_title}. Orri honetan irakur dezakezu:"
email_outro: Jakinarazpen hau jaso duzu "%{resource_title}" edo bere egilea jarraitzen duzulako. Aurreko estekan jarrai dezakezu.
email_subject: '%{author_name} egileak beste iruzkin berri bat egin du hemen: %{resource_title}'
- notification_title: '%{author_name} %{author_nickname} parte-hartzaileak iruzkin berri bat egin du hemen: %{resource_title}'
+ notification_title: '%{author_name} egileak beste iruzkin bat egin du hemen: %{resource_title}'
comment_downvoted:
email_intro: Zure iruzkina hemen "%{resource_title}" negatiboki bozkatu da. Orain %{upvotes} babes positibo eta %{downvotes} boto negatibo dituzu guztira.
email_outro: Jakinarazpen hau jaso duzu iruzkin honen egilea zarelako.
@@ -186,12 +186,12 @@ eu:
email_intro: "%{author_name} egileak zure iruzkina erantzun du hemen: %{resource_title}. Orri honetan irakur dezakezu:"
email_outro: Jakinarazpen hau jaso duzu zure iruzkinak erantzuna izan duelako.
email_subject: "%{author_name} parte-hartzaileak zure iruzkina erantzun du hemen: %{resource_title}"
- notification_title: %{author_name} %{author_nickname} -k zure iruzkinari erantzun dio hemen %{resource_title}
+ notification_title: '%{author_name} parte-hartzaileak zure iruzkina erantzun du hemen: %{resource_title}'
user_mentioned:
email_intro: Aipatu zaituzte
email_outro: 'Jakinarazpen hau jaso duzu hemen aipatu zaituztelako: %{resource_title}.'
email_subject: 'Hemen: %{resource_title} aipatu zaituzte'
- notification_title: 'Hemen: %{group_name} %{group_nickname} egile honek: %{author_name} %{author_nickname} aipatu zaitu'
+ notification_title: '%{author_name} parte-hartzaileak aipatu zaitu hemen: %{resource_title}'
errors:
messages:
cannot_have_comments: ezin zaio iruzkinik egin
diff --git a/decidim-comments/config/locales/fi-plain.yml b/decidim-comments/config/locales/fi-plain.yml
index dc5c1766f4c64..104ce2ddd8a1f 100644
--- a/decidim-comments/config/locales/fi-plain.yml
+++ b/decidim-comments/config/locales/fi-plain.yml
@@ -166,12 +166,12 @@ fi-pl:
email_intro: "%{author_name} on jättänyt kommentin %{resource_title}. Voit lukea sen tällä sivulla:"
email_outro: Tämä ilmoitus on lähetetty sinulle, koska seuraat %{author_name}. Voit perua seuraamisen kyseisen käyttäjän profiilisivulta.
email_subject: '%{author_name} on jättänyt uuden kommentin kohtaan %{resource_title}'
- notification_title: %{author_name} %{author_nickname} on jättänyt uuden kommentin kohtaan %{resource_title}.
+ notification_title: Uusi kommentti osallistujalta %{author_name} kohteeseen %{resource_title}.
comment_created:
email_intro: "%{resource_title} on kommentoitu. Voit lukea kommentin tällä sivulla:"
email_outro: Tämä ilmoitus on lähetetty sinulle, koska seuraat "%{resource_title}" tai sen kirjoittajaa. Voit lopettaa seuraamisen edellä esitetyn linkin kautta.
email_subject: '%{author_name} on jättänyt uuden kommentin kohtaan %{resource_title}'
- notification_title: %{author_name} %{author_nickname}on jättänyt uuden kommentin kohtaan %{resource_title}
+ notification_title: Uusi kommentti osallistujalta %{author_name} kohteeseen %{resource_title}
comment_downvoted:
email_intro: Kommenttisi kohteessa "%{resource_title}" sai miinusäänen. Sillä on yhteensä %{upvotes} ääntä ja %{downvotes} miinusääntä.
email_outro: Tämä ilmoitus on lähetetty sinulle, koska olet jättänyt tämän kommentin.
@@ -186,12 +186,12 @@ fi-pl:
email_intro: "%{author_name} on vastannut kommentiisi kohdassa %{resource_title}. Voit lukea sen tällä sivulla:"
email_outro: Tämä ilmoitus on lähetetty sinulle, koska kommenttiisi vastattiin.
email_subject: "%{author_name} on vastannut kommentiisi %{resource_title}"
- notification_title: %{author_name} %{author_nickname} on vastannut kommentiisi kohdassa %{resource_title}
+ notification_title: %{author_name} vastasi kommenttiisi kohteessa %{resource_title}
user_mentioned:
email_intro: Sinut on mainittu
email_outro: Tämä ilmoitus on lähetetty sinulle, koska sinut on mainittu kohdssa %{resource_title}.
email_subject: Sinut on mainittu kohdassa %{resource_title}
- notification_title: %{author_name} %{author_nickname} on maininnut sinut kohdassa %{resource_title}
+ notification_title: %{author_name} on maininnut sinut kohteessa %{resource_title}
errors:
messages:
cannot_have_comments: ei voi sisältää kommentteja
diff --git a/decidim-comments/config/locales/fi.yml b/decidim-comments/config/locales/fi.yml
index a023942f43431..0cd2cd3e01c3e 100644
--- a/decidim-comments/config/locales/fi.yml
+++ b/decidim-comments/config/locales/fi.yml
@@ -166,12 +166,12 @@ fi:
email_intro: "%{author_name} on jättänyt kommentin kohteessa %{resource_title}. Voit lukea sen sivulta:"
email_outro: Tämä ilmoitus on lähetetty sinulle, koska seuraat osallistujaa %{author_name}. Voit perua seuraamisen kyseisen osallistujan profiilisivulta.
email_subject: '%{author_name} on jättänyt uuden kommentin kohteessa %{resource_title}'
- notification_title: %{author_name} %{author_nickname} on jättänyt uuden kommentin kohteessa %{resource_title}.
+ notification_title: Uusi kommentti osallistujalta %{author_name} kohteeseen %{resource_title}.
comment_created:
email_intro: "%{resource_title} on kommentoitu. Voit lukea kommentin sivulta:"
email_outro: Tämä ilmoitus on lähetetty sinulle, koska seuraat "%{resource_title}" tai sen kirjoittajaa. Voit lopettaa seuraamisen edellä esitetyn linkin kautta.
email_subject: '%{author_name} on jättänyt uuden kommentin kohteessa %{resource_title}'
- notification_title: %{author_name} %{author_nickname}on jättänyt uuden kommentin kohteessa %{resource_title}
+ notification_title: Uusi kommentti osallistujalta %{author_name} kohteeseen %{resource_title}
comment_downvoted:
email_intro: Kommenttisi kohteessa "%{resource_title}" sai miinusäänen. Sillä on yhteensä %{upvotes} ääntä ja %{downvotes} miinusääntä.
email_outro: Tämä ilmoitus on lähetetty sinulle, koska olet jättänyt tämän kommentin.
@@ -186,12 +186,12 @@ fi:
email_intro: "%{author_name} on vastannut kommentiisi kohdassa %{resource_title}. Voit lukea sen sivulta:"
email_outro: Tämä ilmoitus on lähetetty sinulle, koska kommenttiisi vastattiin.
email_subject: "%{author_name} on vastannut kommentiisi %{resource_title}"
- notification_title: %{author_name} %{author_nickname} on vastannut kommentiisi kohteessa %{resource_title}
+ notification_title: %{author_name} vastasi kommenttiisi kohteessa %{resource_title}
user_mentioned:
email_intro: Sinut on mainittu
email_outro: Tämä ilmoitus on lähetetty sinulle, koska sinut on mainittu kohteessa %{resource_title}.
email_subject: Sinut on mainittu kohdassa %{resource_title}
- notification_title: %{author_name} %{author_nickname} on maininnut sinut kohteessa %{resource_title}
+ notification_title: %{author_name} on maininnut sinut kohteessa %{resource_title}
errors:
messages:
cannot_have_comments: ei voi sisältää kommentteja
diff --git a/decidim-comments/config/locales/fr-CA.yml b/decidim-comments/config/locales/fr-CA.yml
index cb0342cb75e31..66679775951f5 100644
--- a/decidim-comments/config/locales/fr-CA.yml
+++ b/decidim-comments/config/locales/fr-CA.yml
@@ -160,12 +160,10 @@ fr-CA:
email_intro: "%{author_name} a laissé un commentaire dans %{resource_title}. Vous pouvez le lire sur la page suivante :"
email_outro: Vous avez reçu cette notification, car vous suivez %{author_name}. Vous pouvez vous désabonner de cet utilisateur depuis sa page de profil.
email_subject: Un nouveau commentaire vient d'être déposé par %{author_name} dans %{resource_title}
- notification_title: Un nouveau commentaire a été publié par %{author_name} %{author_nickname} dans %{resource_title}.
comment_created:
email_intro: "%{resource_title} a été commenté. Vous pouvez lire le commentaire sur cette page :"
email_outro: Vous venez de recevoir cette notification parce que vous suivez "%{resource_title}" ou son auteur. Vous pouvez vous désabonner à partir du lien précédant.
email_subject: Un nouveau commentaire vient d'être publié par %{author_name} dans %{resource_title}
- notification_title: Un nouveau commentaire de %{author_name} %{author_nickname} vient d'être publié dans %{resource_title}
comment_downvoted:
email_intro: Votre commentaire sur "%{resource_title}" a reçu un vote défavorable. Il a maintenant un total de %{upvotes} votes positifs et %{downvotes} votes négatifs.
email_outro: Vous avez reçu cette notification parce que vous êtes l'auteur de ce commentaire.
@@ -180,12 +178,10 @@ fr-CA:
email_intro: "%{author_name} a répondu à votre commentaire dans %{resource_title}. Vous pouvez le lire depuis la page suivante :"
email_outro: Vous venez de recevoir une notification à votre commentaire.
email_subject: "%{author_name} a répondu à votre commentaire dans %{resource_title}"
- notification_title: %{author_name} %{author_nickname} a réagi à votre commentaire sur %{resource_title}
user_mentioned:
email_intro: Vous avez été mentionné
email_outro: Vous avez reçu cette notification parce que vous avez été mentionné dans %{resource_title}.
email_subject: Vous avez été mentionné dans %{resource_title}
- notification_title: Vous avez été mentionné dans %{resource_title} par %{author_name} %{author_nickname}
errors:
messages:
cannot_have_comments: ne peut pas avoir de commentaires
diff --git a/decidim-comments/config/locales/fr.yml b/decidim-comments/config/locales/fr.yml
index a65c86b2d6405..6b324317a8a36 100644
--- a/decidim-comments/config/locales/fr.yml
+++ b/decidim-comments/config/locales/fr.yml
@@ -146,6 +146,7 @@ fr:
comment_votes:
id: L'id du vote
comments:
+ author: Le nom du participant qui a laissé ce commentaire
body: Le commentaire lui-même
commentable_id: L'identifiant unique de l"élément commenté
commentable_type: Le type de l'élément commenté (si c'était un résultat, une proposition, etc.)
@@ -160,12 +161,10 @@ fr:
email_intro: "%{author_name} a laissé un commentaire dans %{resource_title}. Vous pouvez le lire sur la page suivante :"
email_outro: Vous avez reçu cette notification, car vous suivez %{author_name}. Vous pouvez vous désabonner de cet utilisateur depuis sa page de profil, ou bien vous rendre dans l'onglet “Mon compte” > “Paramètres des notifications”.
email_subject: Un nouveau commentaire vient d'être déposé par %{author_name} dans %{resource_title}
- notification_title: Un nouveau commentaire a été publié par %{author_name} %{author_nickname} dans %{resource_title}.
comment_created:
email_intro: "%{resource_title} a été commenté. Vous pouvez lire le commentaire sur cette page :"
email_outro: Vous venez de recevoir cette notification parce que vous suivez "%{resource_title}" ou son auteur. Si vous souhaitez vous désabonner des notifications, connectez-vous à la plateforme, puis rendez-vous dans l'onglet “Mon compte” > “Paramètres des notifications”.
email_subject: Un nouveau commentaire vient d'être publié par %{author_name} dans %{resource_title}
- notification_title: Un nouveau commentaire de %{author_name} %{author_nickname} vient d'être publié dans %{resource_title}
comment_downvoted:
email_intro: Votre commentaire sur "%{resource_title}" a reçu un vote défavorable. Il a maintenant un total de %{upvotes} votes positifs et %{downvotes} votes négatifs.
email_outro: Vous avez reçu cette notification parce que vous êtes l'auteur de ce commentaire. Si vous souhaitez vous désabonner des notifications, connectez-vous à la plateforme, puis rendez-vous dans l'onglet “Mon compte” > “Paramètres des notifications”.
@@ -180,12 +179,10 @@ fr:
email_intro: "%{author_name} a répondu à votre commentaire dans %{resource_title}. Vous pouvez le lire depuis la page suivante :"
email_outro: Vous avez reçu cette notification parce que votre commentaire a reçu une réponse. Si vous souhaitez vous désabonner des notifications, connectez-vous à la plateforme, puis rendez-vous dans l'onglet “Mon compte” > “Paramètres des notifications”.
email_subject: "%{author_name} a répondu à votre commentaire dans %{resource_title}"
- notification_title: %{author_name} %{author_nickname} a réagi à votre commentaire sur %{resource_title}
user_mentioned:
email_intro: Vous avez été mentionné
email_outro: Vous avez reçu cette notification parce que vous avez été mentionné dans %{resource_title}. Si vous souhaitez vous désabonner des notifications, connectez-vous à la plateforme, puis rendez-vous dans l'onglet “Mon compte” > “Paramètres des notifications”.
email_subject: Vous avez été mentionné dans %{resource_title}
- notification_title: Vous avez été mentionné dans %{resource_title} par %{author_name} %{author_nickname}
errors:
messages:
cannot_have_comments: ne peut pas avoir de commentaires
diff --git a/decidim-comments/config/locales/gl.yml b/decidim-comments/config/locales/gl.yml
index fe35e52385796..b6285b22841f9 100644
--- a/decidim-comments/config/locales/gl.yml
+++ b/decidim-comments/config/locales/gl.yml
@@ -109,19 +109,15 @@ gl:
email_intro: "%{author_name} deixou un comentario en %{resource_title}. Podes lelo nesta páxina:"
email_outro: Recibiches esta notificación porque estás seguindo %{author_name}. Podes deixar de seguir este usuario desde a súa páxina de perfil.
email_subject: Hai un novo comentario por %{author_name} en %{resource_title}
- notification_title: Hai un novo comentario %{author_name} %{author_nickname} en %{resource_title}.
comment_created:
email_intro: "Comentouse %{resource_title} . Podes ler o comentario nesta páxina:"
email_outro: Recibiches esta notificación porque estás seguindo "%{resource_title}" ou o seu autor. Podes deixar de seguir desde a ligazón anterior.
email_subject: Hai un novo comentario de %{author_name} en %{resource_title}
- notification_title: Hai un novo comentario de %{author_name} %{author_nickname} en %{resource_title}
reply_created:
email_intro: "%{author_name} respondeu o teu comentario en %{resource_title}. Podes lelo nesta páxina:"
email_outro: Recibiches esta notificación porque o teu comentario foi respondido.
email_subject: "%{author_name} respondeu o teu comentario en %{resource_title}"
- notification_title: %{author_name} %{author_nickname} respondeu o seu comentario en %{resource_title}
user_mentioned:
email_intro: Foi mencionado
email_outro: Recibiches esta notificación porque foi mencionado en %{resource_title}.
email_subject: Foi mencionado en %{resource_title}
- notification_title: Foi mencionado en %{resource_title} por %{author_name} %{author_nickname}
diff --git a/decidim-comments/config/locales/hu.yml b/decidim-comments/config/locales/hu.yml
index 53184bc357bbc..b1c86df2eb59b 100644
--- a/decidim-comments/config/locales/hu.yml
+++ b/decidim-comments/config/locales/hu.yml
@@ -120,12 +120,10 @@ hu:
email_intro: "%{author_name} megjegyzést hagyott itt: %{resource_title}. Ezen az oldalon megtalálod:"
email_outro: 'Ezt az értesítést azért kaptad, mert ezt követed: "%{author_name}". Leiratkozás az előző link segítségével.'
email_subject: '%{author_name} új megjegyzése itt: %{resource_title}'
- notification_title: 'Új megjegyzés: %{author_name} %{author_nickname}%{resource_title}.'
comment_created:
email_intro: "A \"%{resource_title}\" témához megjegyzést fűzött valaki. Itt tudod elolvasni:"
email_outro: 'Ezt az értesítést azért kaptad, mert ezt (vagy ennek szerzőjét) követed: "%{resource_title}". Ha szeretnél, a link segítségével leiratkozhatsz.'
email_subject: 'Új megjegyzés érkezett ehhez: %{resource_title}, tőle: %{author_name}'
- notification_title: 'Új megjegyzés tőle: %{author_name} %{author_nickname}, ehhez: %{resource_title}'
comment_downvoted:
email_intro: A hozzászólásod itt %{resource_title} leszavazásra került. Most %{upvotes} szavazat van mellette és %{downvotes} ellene.
email_outro: Ezt az értesítést kaptad, mert te vagy a hozzászólás szerzője.
@@ -140,12 +138,10 @@ hu:
email_intro: "%{author_name} megjegyzést fűzött ehhez: %{resource_title}. Ezen az oldalon megtalálod:"
email_outro: Ezt az értesítést azért kaptad, mert valaki választolt a mejegyzésedre.
email_subject: "%{author_name} megjegyzést tett a kommentedhez itt: %{resource_title}"
- notification_title: '%{author_name} %{author_nickname} válaszolt a megjegyzésedre itt: %{resource_title}'
user_mentioned:
email_intro: Valaki említette a neved
email_outro: Ezt az értesítést azért kaptad, mert korábban megemlítettek a(z) "%{resource_title}" témában.
email_subject: Megemlítettek a(z) %{resource_title} témában
- notification_title: '%{author_name} %{author_nickname} megemlített itt: %{resource_title}'
errors:
messages:
cannot_have_comments: nem adhat hozzá hozzászólásokat
diff --git a/decidim-comments/config/locales/id-ID.yml b/decidim-comments/config/locales/id-ID.yml
index b35bbcea8c149..d73359f9d99a5 100644
--- a/decidim-comments/config/locales/id-ID.yml
+++ b/decidim-comments/config/locales/id-ID.yml
@@ -63,19 +63,15 @@ id:
email_intro: "%{author_name} telah menulis komentar dalam %{resource_title}. Anda dapat membacanya di halaman ini:"
email_outro: Anda telah menerima pemberitahuan ini karena Anda mengikuti %{author_name}. Anda dapat berhenti mengikuti pengguna ini dari halaman profil mereka.
email_subject: Ada komentar baru dengan %{author_name} in %{resource_title}
- notification_title: Ada komentar baru oleh %{author_name} %{author_nickname} di %{resource_title}.
comment_created:
email_intro: "%{resource_title} telah dikomentari. Anda dapat membaca komentar di halaman ini:"
email_outro: Anda telah menerima pemberitahuan ini karena Anda mengikuti "%{resource_title}" atau penulisnya. Anda dapat berhenti mengikutinya dari tautan sebelumnya.
email_subject: Ada komentar baru dari %{author_name} in %{resource_title}
- notification_title: Ada komentar baru dari %{author_name} %{author_nickname} di %{resource_title}
reply_created:
email_intro: "%{author_name} telah membalas komentar Anda dalam %{resource_title}. Anda dapat membacanya di halaman ini:"
email_outro: Anda telah menerima pemberitahuan ini karena komentar Anda dijawab.
email_subject: "%{author_name} telah membalas komentar Anda dalam %{resource_title}"
- notification_title: %{author_name} %{author_nickname} telah menjawab komentar Anda di %{resource_title}
user_mentioned:
email_intro: Anda telah disebutkan
email_outro: Anda telah menerima pemberitahuan ini karena Anda telah disebutkan dalam %{resource_title}.
email_subject: Anda telah disebutkan dalam %{resource_title}
- notification_title: Anda telah disebutkan dalam %{resource_title} oleh %{author_name} %{author_nickname}
diff --git a/decidim-comments/config/locales/is-IS.yml b/decidim-comments/config/locales/is-IS.yml
index c5fe3702d91a8..8226c8af09682 100644
--- a/decidim-comments/config/locales/is-IS.yml
+++ b/decidim-comments/config/locales/is-IS.yml
@@ -41,19 +41,15 @@ is:
email_intro: "%{author_name} hefur skilið eftir athugasemd í %{resource_title}. Þú getur lesið það á þessari síðu:"
email_outro: Þú hefur fengið þessa tilkynningu vegna þess að þú fylgist með %{author_name}. Þú getur sleppt þessari notanda frá prófílssíðunni sinni.
email_subject: Það er nýtt ummæli um %{author_name} í %{resource_title}
- notification_title: Það er nýtt ummæli við %{author_name} %{author_nickname} í %{resource_title}.
comment_created:
email_intro: "%{resource_title} hefur verið skrifað ummæli. Þú getur lesið athugasemdina á þessari síðu:"
email_outro: Þú hefur fengið þessa tilkynningu vegna þess að þú fylgist með "%{resource_title}" eða höfundinum. Þú getur sleppt því frá fyrri tengilinn.
email_subject: Það er nýtt ummæli frá %{author_name} í %{resource_title}
- notification_title: Það er nýtt ummæli frá %{author_name} %{author_nickname} í %{resource_title}
reply_created:
email_intro: "%{author_name} hefur svarað ummæli þín í %{resource_title}. Þú getur lesið það á þessari síðu:"
email_outro: Þú hefur fengið þessa tilkynningu vegna þess að ummæli þín voru svarað.
email_subject: "%{author_name} hefur svarað ummæli þín í %{resource_title}"
- notification_title: %{author_name} %{author_nickname} hefur svarað athugasemd þinni í %{resource_title}
user_mentioned:
email_intro: Þú hefur verið nefndur
email_outro: Þú hefur fengið þessa tilkynningu vegna þess að þú hefur verið nefndur í %{resource_title}.
email_subject: Þú hefur verið nefndur í %{resource_title}
- notification_title: Þú hefur verið nefndur í %{resource_title} af %{author_name} %{author_nickname}
diff --git a/decidim-comments/config/locales/it.yml b/decidim-comments/config/locales/it.yml
index da5e388dd0cae..9e6b2bd99fef5 100644
--- a/decidim-comments/config/locales/it.yml
+++ b/decidim-comments/config/locales/it.yml
@@ -109,12 +109,10 @@ it:
email_intro: "%{author_name} ha lasciato un commento in %{resource_title}. Puoi leggerlo in questa pagina:"
email_outro: Hai ricevuto questa notifica perché stai seguendo %{author_name}. Puoi smettere di seguire questo utente dalla pagina del profilo.
email_subject: C'è un nuovo commento di %{author_name} in %{resource_title}
- notification_title: C'è un nuovo commento di %{author_name} %{author_nickname} in %{resource_title}.
comment_created:
email_intro: "%{resource_title} è stato commentato. Puoi leggere il commento in questa pagina:"
email_outro: Hai ricevuto questa notifica perché stai seguendo "%{resource_title}" o il suo autore. Puoi smettere di seguirlo dal link precedente.
email_subject: C'è un nuovo commento da %{author_name} in %{resource_title}
- notification_title: C'è un nuovo commento da %{author_name} %{author_nickname} in %{resource_title}
comment_downvoted:
email_intro: Il tuo commento in "%{resource_title}" ha ricevuto un voto negativo. Ora ha un totale di %{upvotes} voti positivi e %{downvotes} voti negativi.
email_outro: Hai ricevuto questa notifica perché sei l'autore di questo commento.
@@ -129,9 +127,7 @@ it:
email_intro: "%{author_name} ha risposto il tuo commento in %{resource_title}. Puoi leggerlo in questa pagina:"
email_outro: Hai ricevuto questa notifica perché il tuo commento è stato risposto.
email_subject: "%{author_name} ha risposto il tuo commento in %{resource_title}"
- notification_title: %{author_name} %{author_nickname} ha risposto il tuo commento in %{resource_title}
user_mentioned:
email_intro: Sei stato menzionato
email_outro: Hai ricevuto questa notifica perché sei stato citato in %{resource_title}.
email_subject: Sei stato menzionato in %{resource_title}
- notification_title: Sei stato citato in %{resource_title} di %{author_name} %{author_nickname}
diff --git a/decidim-comments/config/locales/ja.yml b/decidim-comments/config/locales/ja.yml
index cd756fe4b7909..f33b4314274f7 100644
--- a/decidim-comments/config/locales/ja.yml
+++ b/decidim-comments/config/locales/ja.yml
@@ -158,12 +158,12 @@ ja:
email_intro: "%{author_name} は %{resource_title}にコメントを残しました。このページで読むことができます:"
email_outro: '%{author_name}をフォローしているため、この通知を受け取りました。プロフィールページからこのユーザーのフォローを解除することができます。'
email_subject: '%{author_name} から %{resource_title} に対して新しいコメントがあります'
- notification_title: %{author_name} %{author_nickname} より %{resource_title} に対して新しいコメントがあります.
+ notification_title: %{author_name} が%{resource_title} にコメントしました。
comment_created:
email_intro: "%{resource_title} にコメントがありました。このページでコメントを読むことができます:"
email_outro: '"%{resource_title}" 、またはその参加者をフォローしているためこの通知を受け取りました。前のリンクからフォローを解除することができます。'
email_subject: '%{author_name} から %{resource_title} に対して新しいコメントがあります'
- notification_title: %{author_name} %{author_nickname} から %{resource_title} に対して新しいコメントがあります
+ notification_title: %{author_name} が%{resource_title} にコメントしました
comment_downvoted:
email_intro: '"%{resource_title}" でのあなたの意見への反対票がありました。現在の合計は、賛成票が %{upvotes} 件、反対票が %{downvotes} 件です。'
email_outro: このコメントの作成者であるため、この通知を受け取りました。
@@ -178,12 +178,12 @@ ja:
email_intro: "%{author_name} は %{resource_title}であなたのコメントを返信しました。このページで読むことができます:"
email_outro: コメントが返信されたため、この通知を受信しました。
email_subject: "%{author_name} が %{resource_title} であなたのコメントに返信しました"
- notification_title: %{author_name} %{author_nickname} が %{resource_title} であなたのコメントに返信しました
+ notification_title: %{author_name} が%{resource_title} でのあなたのコメントに返答しました
user_mentioned:
email_intro: あなたはメンションされています
email_outro: あなたが %{resource_title}でメンションされたため、この通知を受け取りました。
email_subject: あなたは %{resource_title} でメンションされました
- notification_title: あなたは %{resource_title} で %{author_name} %{author_nickname}によってメンションされました
+ notification_title: %{author_name} が%{resource_title} でのコメントであなたに言及しました
errors:
messages:
cannot_have_comments: コメントを持つことはできません
diff --git a/decidim-comments/config/locales/lb.yml b/decidim-comments/config/locales/lb.yml
index 392f2beb05fc1..e7b20246d4156 100644
--- a/decidim-comments/config/locales/lb.yml
+++ b/decidim-comments/config/locales/lb.yml
@@ -101,12 +101,10 @@ lb:
email_intro: "%{author_name} hat einen Kommentar zu %{resource_title} hinterlassen. Sie können diesen auf dieser Seite lesen:"
email_outro: Sie haben diese Benachrichtigung erhalten, weil Sie %{author_name} folgen. Falls Sie keine solchen Benachrichtigungen mehr erhalten möchten, besuchen Sie die Profil-Seite dieses Benutzers.
email_subject: Neuer Kommentar von %{author_name} zu %{resource_title}
- notification_title: Es gibt einen neuen Kommentar von %{author_name} %{author_nickname} zu %{resource_title}.
comment_created:
email_intro: "%{resource_title} wurde kommentiert. Sie können den Kommentar auf dieser Seite lesen:"
email_outro: Sie haben diese Benachrichtigung erhalten, weil Sie "%{resource_title}" oder seinem Autor folgen. Falls Sie keine solchen Benachrichtigungen mehr erhalten möchten, besuchen Sie den obigen Link.
email_subject: Neuer Kommentar von %{author_name} zu %{resource_title}
- notification_title: Es gibt einen neuen Kommentar von %{author_name} %{author_nickname} zu %{resource_title}
comment_downvoted:
email_intro: Ihr Kommentar in "%{resource_title}" wurde negativ bewertet. Er hat nun insgesamt %{upvotes} positive und %{downvotes} negative Stimmen.
email_outro: Sie haben diese Benachrichtigung erhalten, weil Sie der Autor des Vorschlags sind.
@@ -121,9 +119,7 @@ lb:
email_intro: "%{author_name} hat auf Ihren Kommentar zu %{resource_title} geantwortet. Sie können das auf dieser Seite lesen:"
email_outro: Sie haben diese Benachrichtigung erhalten, weil Ihr Kommentar beantwortet wurde.
email_subject: "%{author_name} hat auf Ihren Kommentar zu %{resource_title} geantwortet"
- notification_title: %{author_name} %{author_nickname} hat auf Ihren Kommentar in %{resource_title} geantwortet
user_mentioned:
email_intro: Sie wurden erwähnt
email_outro: Sie haben diese Benachrichtigung erhalten, weil Sie in %{resource_title} erwähnt wurden.
email_subject: Sie wurden in %{resource_title} erwähnt
- notification_title: Sie wurden in %{resource_title} von %{author_name} %{author_nickname} erwähnt
diff --git a/decidim-comments/config/locales/lt.yml b/decidim-comments/config/locales/lt.yml
index 005741749ad0a..9e8958cb8fd90 100644
--- a/decidim-comments/config/locales/lt.yml
+++ b/decidim-comments/config/locales/lt.yml
@@ -131,12 +131,10 @@ lt:
email_intro: "%{author_name} pakomentavo %{resource_title}. Komentarą galite perskaityti:"
email_outro: Gavote šį pranešimą nes sekate %{author_name}. Galite pasirinkti nebesekti šio naudotojo jo profilio puslapyje.
email_subject: Naujas komentaras %{resource_title} iš %{author_name}
- notification_title: Naujas komentaras %{resource_title} iš %{author_name}%{author_nickname}.
comment_created:
email_intro: "%{resource_title} pateiktas komentaras. Komentarą galite perskaityti šiame puslapyje:"
email_outro: Šį pranešimą gavote dėl to, kad sekate „%{resource_title}“ arba jo autorių. Jūs galite jo nebesekti spustelėdami aukščiau esančią nuorodą.
email_subject: '%{author_name} paliko naują komentarą %{resource_title}'
- notification_title: %{author_name} %{author_nickname} paliko naują komentarą %{resource_title}
comment_downvoted:
email_intro: Jūsų komentaras %{resource_title} buvo nepakaikyas. Komentaras dabar turi %{upvotes} palaikymus ir %{downvotes} nepalaikymus.
email_outro: Šį pranešimą gavote dėl to, kad esate pasiūlymo autorius.
@@ -151,12 +149,10 @@ lt:
email_intro: "%{author_name} atsakė į komentarą %{resource_title}. Galite jį perskaityti:"
email_outro: Gavote šį pranešimą nes į Jūsų komentarą buvo atsakyta.
email_subject: "%{author_name} atsakė į komentarą %{resource_title}"
- notification_title: %{author_name}%{author_nickname} atsakė į komentarą %{resource_title}
user_mentioned:
email_intro: Buvote paminėta(-s)
email_outro: Gavote šį pranešimą nes buvote paminėta(-s) %{resource_title}.
email_subject: Buvote paminėta(-s) %{resource_title}
- notification_title: Buvote paminėta(-s) %{resource_title}%{author_name}%{author_nickname}
errors:
messages:
cannot_have_comments: negali turėti komentarų
diff --git a/decidim-comments/config/locales/lv.yml b/decidim-comments/config/locales/lv.yml
index 6d84a2784b68c..fde112fc1cda8 100644
--- a/decidim-comments/config/locales/lv.yml
+++ b/decidim-comments/config/locales/lv.yml
@@ -69,19 +69,15 @@ lv:
email_intro: "%{author_name} ir atstājis komentāru %{resource_title}. Jūs to varat izlasīt šajā lapā:"
email_outro: Jūs saņēmāt šo paziņojumu, jo sekojat %{author_name}. Jūs varat atsekot šim lietotājam viņa profila lapā.
email_subject: '%{resource_title} ir jauns%{author_name} komentārs'
- notification_title: %{author_name}%{author_nickname} ir jauns komentārs %{resource_title}.
comment_created:
email_intro: "%{resource_title} ir komentēts. Jūs varat izlasīt komentāru šajā lapā:"
email_outro: Jūs saņēmāt šo paziņojumu, jo sekojat "%{resource_title}" vai tā autoram. Jūs varat atsekot tam no iepriekšējās saites.
email_subject: '%{resource_title} ir jauns %{author_name} komentārs'
- notification_title: %{author_name}%{author_nickname} ir jauns komentārs %{resource_title}
reply_created:
email_intro: "%{author_name} atbildēja uz jūsu komentāru %{resource_title}. Jūs to varat izlasīt šajā lapā:"
email_outro: Jūs saņēmāt šo paziņojumu, jo kāds atbildēja uz jūsu komentāru.
email_subject: "%{author_name} atbildēja uz jūsu komentāru %{resource_title}"
- notification_title: %{author_name} %{author_nickname} atbildēja uz jūsu komentāru %{resource_title}
user_mentioned:
email_intro: Jūs esat pieminēts
email_outro: Jūs saņēmāt šo paziņojumu, jo esat pieminēts %{resource_title}.
email_subject: Jūs esat pieminēts %{resource_title}
- notification_title: %{resource_title} jūs pieminēja %{author_name} %{author_nickname}
diff --git a/decidim-comments/config/locales/nl.yml b/decidim-comments/config/locales/nl.yml
index e2d1d916e6cb6..19446a09b9cdb 100644
--- a/decidim-comments/config/locales/nl.yml
+++ b/decidim-comments/config/locales/nl.yml
@@ -110,12 +110,10 @@ nl:
email_intro: "%{author_name} heeft een reactie achtergelaten in %{resource_title}. Je kan het lezen op deze pagina:"
email_outro: Je hebt deze melding ontvangen omdat je %{author_name}volgt. Je kan deze gebruiker ontvolgen via zijn profielpagina.
email_subject: Er is een nieuwe reactie van %{author_name} in %{resource_title}
- notification_title: Er is een nieuwe reactie van %{author_name} %{author_nickname} in %{resource_title}.
comment_created:
email_intro: "%{resource_title} heeft een reactie ontvangen. Je kan de opmerking op deze pagina lezen:"
email_outro: Je hebt deze melding ontvangen omdat je '%{resource_title}' of de auteur ervan volgt. Ontvolgen kan door te klikken op de vorige link.
email_subject: Er is een nieuwe reactie van %{author_name} in %{resource_title}
- notification_title: Er is een nieuwe reactie van %{author_name} %{author_nickname} in %{resource_title}
comment_downvoted:
email_intro: Je reactie in "%{resource_title}" kreeg een tegenstem. Het heeft nu een totaal van %{upvotes} stemmen 'voor' en %{downvotes} stemmen 'tegen'.
email_outro: Je hebt deze melding ontvangen omdat je de auteur bent van deze reactie.
@@ -130,9 +128,7 @@ nl:
email_intro: "%{author_name} heeft gereageerd op jouw opmerking in %{resource_title}. Lees het via deze link:"
email_outro: Je hebt deze melding ontvangen omdat je reactie beantwoord is.
email_subject: "%{author_name} heeft op je comment gereageerd in %{resource_title}"
- notification_title: %{author_name} %{author_nickname} heeft gereageerd op je opmerking in %{resource_title}
user_mentioned:
email_intro: Iemand heeft je getagd
email_outro: Je hebt deze melding ontvangen omdat je bent getagd in %{resource_title}.
email_subject: Je bent getagd in %{resource_title}
- notification_title: Je bent getagd in %{resource_title} door %{author_name} %{author_nickname}
diff --git a/decidim-comments/config/locales/no.yml b/decidim-comments/config/locales/no.yml
index 141047a49485b..98f455b3d04f6 100644
--- a/decidim-comments/config/locales/no.yml
+++ b/decidim-comments/config/locales/no.yml
@@ -108,12 +108,10 @@
email_intro: "%{author_name} har lagt igjen en kommentar i %{resource_title}. Du kan lese den på denne siden:"
email_outro: Du har mottatt denne varslingen fordi du følger %{author_name}. Du kan slutte å følge denne brukeren fra dems profil side.
email_subject: Det er en ny kommentar av %{author_name} i %{resource_title}
- notification_title: Det er en ny kommentar av %{author_name} %{author_nickname} i %{resource_title}.
comment_created:
email_intro: "%{resource_title} har blitt kommentert. Du kan lese kommentaren på denne siden:"
email_outro: Du har mottatt denne varslingen fordi du følger "%{resource_title}" eller dens forfatter. Du kan slutte å følge den fra den forrige lenken.
email_subject: Det er en ny kommentar fra %{author_name} i %{resource_title}
- notification_title: Det er en ny kommentar fra %{author_name} %{author_nickname} i %{resource_title}
comment_downvoted:
email_intro: Din kommentar i "%{resource_title}" har blitt stemt ned. Den har nå totalt %{upvotes} stemmer opp og %{downvotes} stemmer ned.
email_outro: Du har mottatt dette varselet fordi du er forfatteren av denne kommentaren.
@@ -128,9 +126,7 @@
email_intro: "%{author_name} har svart kommentaren din i %{resource_title}. Du kan lese den på denne siden:"
email_outro: Du har mottatt denne varslingen fordi din kommentar er besvart.
email_subject: "%{author_name} har svart kommentaren din i %{resource_title}"
- notification_title: %{author_name} %{author_nickname} har svart kommentaren din i %{resource_title}
user_mentioned:
email_intro: Du har blitt nevnt
email_outro: Du har mottatt denne varslingen fordi du er nevnt i %{resource_title}.
email_subject: Du har blitt nevnt i %{resource_title}
- notification_title: Du har blitt nevnt i %{resource_title} av %{author_name} %{author_nickname}
diff --git a/decidim-comments/config/locales/pl.yml b/decidim-comments/config/locales/pl.yml
index aaaa5e2eeec42..9e4aaf2ee5be3 100644
--- a/decidim-comments/config/locales/pl.yml
+++ b/decidim-comments/config/locales/pl.yml
@@ -134,12 +134,10 @@ pl:
email_intro: "%{author_name} dodał(a) komentarz do %{resource_title}. Możesz przeczytać go na tej stronie:"
email_outro: Otrzymałeś to powiadomienie, ponieważ obserwujesz %{author_name}. Możesz usunąć użytkownika z obserwowanych na jego stronie profilowej.
email_subject: Jest nowy komentarz dodany przez %{author_name} do %{resource_title}
- notification_title: Pojawił się nowy komentarz dodany przez %{author_name} %{author_nickname} do %{resource_title}.
comment_created:
email_intro: "Nowy komentarz: %{resource_title}. Możesz go przeczytać na tej stronie:"
email_outro: Otrzymujesz to powiadomienie, ponieważ obserwujesz "%{resource_title}" lub jego autora. Możesz przestać go obserwować po kliknięciu w poprzedni link.
email_subject: Jest nowy komentarz od %{author_name} do %{resource_title}
- notification_title: Pojawił się nowy komentarz %{author_name} %{author_nickname} do %{resource_title}
comment_downvoted:
email_intro: Twój komentarz do "%{resource_title}" dostał głos przeciw. Teraz ma %{upvotes} głosów za i %{downvotes} głosów przeciw.
email_outro: Otrzymałeś to powiadomienie, ponieważ jesteś autorem komentarza.
@@ -154,12 +152,10 @@ pl:
email_intro: "%{author_name} odpowiedział na Twój komentarz do %{resource_title}. Możesz przeczytać go na tej stronie:"
email_outro: Otrzymałeś to powiadomienie, ponieważ odpowiedziano na Twój komentarz.
email_subject: "%{author_name} odpowiedział(a) na Twój komentarz do %{resource_title}"
- notification_title: %{author_name} %{author_nickname} odpowiedział(a) na Twój komentarz do %{resource_title}
user_mentioned:
email_intro: Wspomniano o Tobie
email_outro: Otrzymałeś to powiadomienie, ponieważ wspomniano o Tobie w %{resource_title}.
email_subject: Wspomniano o Tobie w %{resource_title}
- notification_title: %{author_name} %{author_nickname} wspomniał(a) o Tobie w %{resource_title}
errors:
messages:
cannot_have_comments: nie może mieć komentarzy
diff --git a/decidim-comments/config/locales/pt-BR.yml b/decidim-comments/config/locales/pt-BR.yml
index a9853f9b2495b..a23e8ffbbf47e 100644
--- a/decidim-comments/config/locales/pt-BR.yml
+++ b/decidim-comments/config/locales/pt-BR.yml
@@ -166,12 +166,10 @@ pt-BR:
email_intro: "%{author_name} deixou um comentário em %{resource_title}. Você pode lê-lo nesta página:"
email_outro: Você recebeu esta notificação porque está seguindo %{author_name}. Você pode deixar de seguir esse usuário em sua página de perfil.
email_subject: Há um novo comentário por %{author_name} em %{resource_title}
- notification_title: Há um novo comentário por %{author_name} %{author_nickname} em %{resource_title}.
comment_created:
email_intro: "%{resource_title} foi comentado. Você pode ler o comentário nesta página:"
email_outro: Você recebeu esta notificação porque você está seguindo "%{resource_title}" ou seu autor. Você pode ignorá-lo do link anterior.
email_subject: Há um novo comentário de %{author_name} em %{resource_title}
- notification_title: Há um novo comentário de %{author_name} %{author_nickname} em %{resource_title}
comment_downvoted:
email_intro: Seu comentário em%{resource_title}" foi negado. Agora tem um total de %{upvotes} votos positivos e %{downvotes} votos negativos.
email_outro: Você recebeu esta notificação porque é o autor deste comentário.
@@ -186,12 +184,10 @@ pt-BR:
email_intro: "%{author_name} respondeu seu comentário em %{resource_title}. Você pode lê-lo nesta página:"
email_outro: Você recebeu esta notificação porque o seu comentário foi respondido.
email_subject: "%{author_name} respondeu seu comentário em %{resource_title}"
- notification_title: %{author_name} %{author_nickname} respondeu seu comentário em %{resource_title}
user_mentioned:
email_intro: Você foi mencionado
email_outro: Você recebeu esta notificação porque você foi mencionado em %{resource_title}.
email_subject: Você foi mencionado em %{resource_title}
- notification_title: Você foi mencionado em %{resource_title} por %{author_name} %{author_nickname}
errors:
messages:
cannot_have_comments: não pode ter comentários
diff --git a/decidim-comments/config/locales/pt.yml b/decidim-comments/config/locales/pt.yml
index 1ea9bbef8f17f..5541416c12964 100644
--- a/decidim-comments/config/locales/pt.yml
+++ b/decidim-comments/config/locales/pt.yml
@@ -108,12 +108,10 @@ pt:
email_intro: "%{author_name} deixou um comentário em %{resource_title}. Pode lê-lo nesta página:"
email_outro: Recebeu esta notificação porque segue %{author_name}. pode deixar de seguir este utilizador a partir da respetiva página de perfil.
email_subject: Há um novo comentário por %{author_name} em %{resource_title}
- notification_title: Há um novo comentário por %{author_name} %{author_nickname} em %{resource_title}.
comment_created:
email_intro: "%{resource_title} foi comentado. Você pode ler o comentário nesta página:"
email_outro: Recebeu esta notificação porque segue "%{resource_title}" ou o seu autor. Pode deixar de segui-lo a partir da ligação anterior.
email_subject: Há um novo comentário de %{author_name} em %{resource_title}
- notification_title: Há um novo comentário de %{author_name} %{author_nickname} em %{resource_title}
comment_downvoted:
email_intro: O seu comentário em "%{resource_title}” foi desvalorizado. Tem agora um total de %{upvotes} valorizações e %{downvotes} desvalorizações.
email_outro: Recebeu esta notificação porque é o autor deste comentário.
@@ -128,9 +126,7 @@ pt:
email_intro: "%{author_name} respondeu ao seu comentário em %{resource_title}. Pode lê-lo nesta página:"
email_outro: Recebeu esta notificação porque responderam ao seu comentário.
email_subject: "%{author_name} respondeu ao seu comentário em %{resource_title}"
- notification_title: %{author_name} %{author_nickname} respondeu ao seu comentário em %{resource_title}
user_mentioned:
email_intro: Foi mencionado(a)
email_outro: Recebeu esta notificação porque foi mencionado(a) em %{resource_title}.
email_subject: Foi mencionado(a) em %{resource_title}
- notification_title: Você foi mencionado em %{resource_title} por %{author_name} %{author_nickname}
diff --git a/decidim-comments/config/locales/ro-RO.yml b/decidim-comments/config/locales/ro-RO.yml
index fe554b523ab3b..de053d3bf306e 100644
--- a/decidim-comments/config/locales/ro-RO.yml
+++ b/decidim-comments/config/locales/ro-RO.yml
@@ -174,12 +174,10 @@ ro:
email_intro: "%{author_name} a lăsat un comentariu în %{resource_title}. Îl puteți citi pe această pagină:"
email_outro: Ați primit această notificare deoarece urmăriți activitatea lui %{author_name}. Puteți să nu urmăriți acest utilizator de pe pagina lui de profil.
email_subject: Există un nou comentariu de la %{author_name} pentru %{resource_title}
- notification_title: Există un comentariu nou de la %{author_name} %{author_nickname} pentru %{resource_title}.
comment_created:
email_intro: "%{resource_title} a primit un comentariu. Poți citi comentariul pe această pagină:"
email_outro: Ați primit această notificare deoarece urmăriți „%{resource_title}” sau pe autorii săi. Puteți anula abonarea de la link-ul anterior.
email_subject: Există un comentariu nou de la %{author_name} pentru %{resource_title}
- notification_title: Există un comentariu nou de la %{author_name} %{author_nickname} pentru %{resource_title}
comment_downvoted:
email_intro: Comentariul dumneavoastră pentru "%{resource_title}" a primit un vot nefavorabil. Acesta are acum un total de %{upvotes} voturi favorabile și %{downvotes} voturi nefavorabile.
email_outro: Ați primit această notificare deoarece sunteți autorul acestui comentariu.
@@ -194,12 +192,10 @@ ro:
email_intro: "%{author_name} a răspuns la comentariul dumneavoastră pentru %{resource_title}. Îl poți citi în această pagină:"
email_outro: Ați primit această notificare deoarece comentariul dumneavoastră a fost răspuns.
email_subject: "%{author_name} a răspuns la comentariul dumneavoastră pentru %{resource_title}"
- notification_title: %{author_name} %{author_nickname} a răspuns la comentariul dumneavoastră pentru %{resource_title}
user_mentioned:
email_intro: Ați fost menționat(ă)
email_outro: Ați primit această notificare deoarece ați fost menționat(ă) în %{resource_title}.
email_subject: Ați fost menționat(ă) în %{resource_title}
- notification_title: Ați fost menționat(ă) în %{resource_title} de către %{author_name} %{author_nickname}
errors:
messages:
cannot_have_comments: nu poate avea comentarii
diff --git a/decidim-comments/config/locales/ru.yml b/decidim-comments/config/locales/ru.yml
index 1df6b707d2032..18e7a32da63c6 100644
--- a/decidim-comments/config/locales/ru.yml
+++ b/decidim-comments/config/locales/ru.yml
@@ -69,19 +69,15 @@ ru:
email_intro: "%{author_name} оставил комментарий в %{resource_title}. Вы можете прочитать его на странице:"
email_outro: Вы получили это уведомление, потому что вы следите за %{author_name}. Вы можете отписаться от таких уведомлений, перейдя на страницу профиля этого участника.
email_subject: В %{resource_title} появился новый комментарий от %{author_name}
- notification_title: В %{resource_title} появился новый комментарий от %{author_name} %{author_nickname}.
comment_created:
email_intro: "%{resource_title} прокомментировали. Вы можете прочитать комментарий на странице:"
email_outro: Вы получили это уведомление, потому что вы следите за «%{resource_title}». Вы можете перестать за ним следить, перейдя по приведенной выше ссылке.
email_subject: В %{resource_title} появился новый комментарий от %{author_name}
- notification_title: В %{resource_title} появился новый комментарий от %{author_name} %{author_nickname}
reply_created:
email_intro: "%{author_name} ответил на ваш комментарий в %{resource_title}. Вы можете прочитать его на странице:"
email_outro: Вы получили это уведомление, потому что на ваш комментарий был дан ответ.
email_subject: "%{author_name} ответил на ваш комментарий в %{resource_title}"
- notification_title: %{author_name} %{author_nickname} ответил на ваш комментарий в %{resource_title}
user_mentioned:
email_intro: Вы были упомянуты
email_outro: Вы получили это уведомление, потому что вы были упомянуты в %{resource_title}.
email_subject: Вы были упомянуты в %{resource_title}
- notification_title: %{author_name} %{author_nickname} упомянул вас в %{resource_title}
diff --git a/decidim-comments/config/locales/sk.yml b/decidim-comments/config/locales/sk.yml
index 4743f6531fa1c..1cb3212e7a7ac 100644
--- a/decidim-comments/config/locales/sk.yml
+++ b/decidim-comments/config/locales/sk.yml
@@ -182,12 +182,10 @@ sk:
email_intro: "%{author_name} komentoval na %{resource_title}. Môžete si to prečítať na stránke:"
email_outro: Túto notifikáciu ste dostali, pretože sledujete autora "%{author_name}". Notifikácie môžete zrušiť po kliknutí na predchádzajúci odkaz.
email_subject: Je nový komentár od %{author_name} na %{resource_title}
- notification_title: Je nový komentár od %{author_name}%{author_nickname} na %{resource_title}.
comment_created:
email_intro: "%{resource_title} bol okomentovaný. Komentár si môžete prečítať na stránke:"
email_outro: Túto notifikáciu ste dostali, pretože sledujete "%{resource_title}" alebo autora. Notifikácie môžete zrušiť po kliknutí na predchádzajúci odkaz.
email_subject: Je nový komentár od %{author_name} na %{resource_title}
- notification_title: Je nový komentár od %{author_name}%{author_nickname} na %{resource_title}
comment_downvoted:
email_intro: Váš komentár v „%{resource_title}“ získal negatívny hlas. Teraz má celkovo %{upvotes} pozitívnych hlasov a %{downvotes} negatívnych hlasov.
email_outro: Toto upozornenie ste dostali, pretože ste autorom tohto komentára.
@@ -202,12 +200,10 @@ sk:
email_intro: "%{author_name} odpovedal na váš komentár na %{resource_title}. Môžete si to prečítať na stránke:"
email_outro: Túto notifikáciu ste dostali, pretože niekto odpovedal na Váš komentár.
email_subject: "%{author_name} odpovedal na Váš komentár na %{resource_title}"
- notification_title: %{author_name}%{author_nickname} odpovedal na váš komentár na %{resource_title}
user_mentioned:
email_intro: Niekto vás spomenul
email_outro: Túto notifikáciu ste dostali, pretože ste boli spomenutí na %{resource_title}.
email_subject: Boli ste spomenutí na %{resource_title}
- notification_title: Boli ste spomenutí %{author_name}%{author_nickname} na %{resource_title}
errors:
messages:
cannot_have_comments: nemôže mať komentáre
diff --git a/decidim-comments/config/locales/sv.yml b/decidim-comments/config/locales/sv.yml
index 1afde3b57dfeb..4bd842908c214 100644
--- a/decidim-comments/config/locales/sv.yml
+++ b/decidim-comments/config/locales/sv.yml
@@ -166,12 +166,12 @@ sv:
email_intro: "%{author_name} har lämnat en kommentar i %{resource_title}. Du kan läsa den på den här sidan:"
email_outro: Du har fått den här notisen eftersom du följer %{author_name}. Du kan avfölja den här användaren från deras profilsida.
email_subject: Det finns en ny kommentar av %{author_name} i %{resource_title}
- notification_title: Det finns en ny kommentar av %{author_name} %{author_nickname} i %{resource_title}.
+ notification_title: Det finns en ny kommentar av %{author_name} i %{resource_title}.
comment_created:
email_intro: "%{resource_title} har kommenterats. Du kan läsa kommentaren på den här sidan:"
email_outro: Du har fått det här meddelandet eftersom du följer "%{resource_title}" eller dess författare. Du kan avfölja det från föregående länk.
email_subject: Det finns en ny kommentar från %{author_name} i %{resource_title}
- notification_title: Det finns en ny kommentar från %{author_name} %{author_nickname} i %{resource_title}
+ notification_title: Det finns en ny kommentar från %{author_name} i %{resource_title}
comment_downvoted:
email_intro: Din kommentar i "%{resource_title}" har blivit nedröstad. Den har nu totalt %{upvotes} uppröster och %{downvotes} nedröster.
email_outro: Du har fått det här meddelandet eftersom du är författare till denna kommentar.
@@ -186,12 +186,12 @@ sv:
email_intro: "%{author_name} har svarat din kommentar i %{resource_title}. Du kan läsa den på den här sidan:"
email_outro: Du har fått denna notis eftersom din kommentar blev besvarad.
email_subject: "%{author_name} har svarat din kommentar i %{resource_title}"
- notification_title: %{author_name} %{author_nickname} har svarat din kommentar i %{resource_title}
+ notification_title: %{author_name} besvarade din kommentar i %{resource_title}
user_mentioned:
email_intro: Du har nämnts
email_outro: Du har fått denna notis eftersom du har nämnts i %{resource_title}.
email_subject: Du har nämnts i %{resource_title}
- notification_title: Du har nämnts i %{resource_title} av %{author_name} %{author_nickname}
+ notification_title: Du har nämnts i %{resource_title} av %{author_name}
errors:
messages:
cannot_have_comments: kan inte ha kommentarer
diff --git a/decidim-comments/config/locales/tr-TR.yml b/decidim-comments/config/locales/tr-TR.yml
index e9a58de9904d6..5f0b63ef52039 100644
--- a/decidim-comments/config/locales/tr-TR.yml
+++ b/decidim-comments/config/locales/tr-TR.yml
@@ -82,19 +82,15 @@ tr:
email_intro: "%{author_name} grubu %{resource_title} alanında bir yorum bıraktı. Bu sayfada okuyabilirsiniz:"
email_outro: Bu bildirimi %{author_name} adlı yazarı takip ettiğiniz için aldınız. Bu grubu profil sayfasından takip etmeyi bırakabilirsiniz.
email_subject: '%{author_name} %{resource_title} alanında yeni bir yorum yaptı'
- notification_title: %{resource_title} içinde %{author_name} %{author_nickname} tarafından yeni bir yorum var.
comment_created:
email_intro: "%{resource_title} alanında yorum yapıldı. Bu sayfadaki yorumu okuyabilirsiniz:"
email_outro: '"%{resource_title}" alanında veya yazarı takip ettiğiniz için bu bildirimi aldınız. Bunu önceki linkten takip edebilirsiniz.'
email_subject: '%{author_name}, %{resource_title} alanında yeni bir yorum yaptı'
- notification_title: %{resource_title} içinde %{author_name} %{author_nickname} tarafından yeni bir yorum var
reply_created:
email_intro: "%{author_name}, yorumunuzu %{resource_title} alanında yanıtladı. Bu sayfada okuyabilirsiniz:"
email_outro: Yorumunuz yanıtlandığı için bu bildirimi aldınız.
email_subject: "%{author_name}, yorumunuzu %{resource_title} alanında yanıtladı"
- notification_title: %{author_name} %{author_nickname}%{resource_title} alanında yorumunuzu yanıtladı
user_mentioned:
email_intro: Sen bahsedildin
email_outro: Bu bildirimi, sizden %{resource_title} alanında bahsedildiği için aldınız.
email_subject: '%{resource_title} alanında bahsedildiniz'
- notification_title: %{resource_title} alanında %{author_name} %{author_nickname} tarafından bahsedildi
diff --git a/decidim-comments/config/locales/uk.yml b/decidim-comments/config/locales/uk.yml
index c04966696aacb..b7e8ad3cc80c2 100644
--- a/decidim-comments/config/locales/uk.yml
+++ b/decidim-comments/config/locales/uk.yml
@@ -64,19 +64,15 @@ uk:
email_intro: "%{author_name} залишив коментар у %{resource_title}. Ви можете прочитати його на сторінці:"
email_outro: Ви отримали це сповіщення, тому що ви стежите за %{author_name}. Ви можете припинити стежити за ним на сторінці його профілю.
email_subject: У %{resource_title} з'явився новий коментар від %{author_name}
- notification_title: У %{resource_title} з'явився новий коментар від %{author_name} %{author_nickname}.
comment_created:
email_intro: "%{resource_title} прокоментували. Ви можете прочитати коментар на сторінці:"
email_outro: Ви отримали це сповіщення, тому що ви стежите за "%{resource_title}". Ви можете припинити стежити за ним, перейшовши за наведеним вище посиланням.
email_subject: У %{resource_title} з'явився новий коментар від %{author_name}
- notification_title: У %{resource_title} з'явився новий коментар від %{author_name} %{author_nickname}
reply_created:
email_intro: "%{author_name} відповів на ваш коментар у %{resource_title}. Ви можете прочитати його на сторінці:"
email_outro: Ви отримали це сповіщення, оскільки на ваш коментар відповіли.
email_subject: "%{author_name} відповів на ваш коментар у %{resource_title}"
- notification_title: %{author_name} %{author_nickname} відповів на ваш коментар у %{resource_title}
user_mentioned:
email_intro: Вас згадали
email_outro: Ви отримали це сповіщення, оскільки вас згадали в %{resource_title}.
email_subject: Вас згадали у %{resource_title}
- notification_title: %{author_name} %{author_nickname} згадав вас у %{resource_title}
diff --git a/decidim-comments/config/locales/zh-CN.yml b/decidim-comments/config/locales/zh-CN.yml
index 46135b9a3213d..f31df3c8ef66e 100644
--- a/decidim-comments/config/locales/zh-CN.yml
+++ b/decidim-comments/config/locales/zh-CN.yml
@@ -70,19 +70,15 @@ zh-CN:
email_intro: "%{author_name} 在 %{resource_title}留下了一条评论。您可以在这个页面阅读:"
email_outro: 您收到此通知是因为您正在关注 %{author_name}。您可以从其个人资料页面取消关注此用户。
email_subject: '%{author_name} 在 %{resource_title} 有一个新评论'
- notification_title: %{author_name} %{author_nickname} 在 %{resource_title} 有新的评论。
comment_created:
email_intro: "%{resource_title} 已被评论。您可以阅读此页面中的评论:"
email_outro: 您收到此通知是因为您正在关注"%{resource_title}"或其作者。您可以从上一个链接取消关注它。
email_subject: '%{author_name} 在 %{resource_title} 有一个新评论'
- notification_title: 来自 %{author_name} %{author_nickname} 的新评论 %{resource_title}
reply_created:
email_intro: "%{author_name} 在 %{resource_title}回复了您的评论。您可以在这个页面阅读:"
email_outro: 您收到此通知是因为您的评论已被回复。
email_subject: "%{author_name} 在 %{resource_title} 回复了您的评论"
- notification_title: %{author_name} %{author_nickname} 回复了您在 %{resource_title}
user_mentioned:
email_intro: 您已被提到。
email_outro: 您收到此通知是因为您已在 %{resource_title} 中被提及。
email_subject: 您已在 %{resource_title} 中被提及了
- notification_title: 您在 %{resource_title}中提到%{author_name} %{author_nickname}
diff --git a/decidim-comments/config/locales/zh-TW.yml b/decidim-comments/config/locales/zh-TW.yml
index 5dedceaba11aa..32834b5a6d4d6 100644
--- a/decidim-comments/config/locales/zh-TW.yml
+++ b/decidim-comments/config/locales/zh-TW.yml
@@ -114,12 +114,10 @@ zh-TW:
email_intro: "%{author_name} 在%{resource_title} 留下了一則評論。您可以在此頁面上閱讀它:"
email_outro: 您收到此通知是因為您正在關注%{author_name}。您可以從他們的個人資料頁面取消關注該用戶。
email_subject: '%{author_name} 在%{resource_title} 發表了一則新的評論'
- notification_title: 在%{resource_title}中,%{author_name} %{author_nickname}有了一個新的評論。
comment_created:
email_intro: "%{resource_title} 已被評論。您可以在此頁面中閱讀評論:"
email_outro: 您收到此通知是因為您正在關注「%{resource_title}」或其作者。您可以從上面的連結取消關注。
email_subject: '%{resource_title}」有新的評論來自 %{author_name}'
- notification_title: 在 %{resource_title}有新的評論來自 %{author_name} %{author_nickname}
comment_downvoted:
email_intro: 您在「%{resource_title}」的評論已經倒讚。它現在的評分是 %{upvotes} 個讚和 %{downvotes} 個倒讚。
email_outro: 您收到此通知是因為您是此評論的作者。
@@ -134,12 +132,10 @@ zh-TW:
email_intro: "%{author_name} 已回覆你在%{resource_title} 中的評論。你可以在此頁面上閱讀:"
email_outro: 你收到此通知是因為有人回覆了你的評論。
email_subject: "%{author_name} 回覆了你在 %{resource_title} 中的評論。"
- notification_title: %{author_name} %{author_nickname} 在 %{resource_title} 中回覆了你的評論。
user_mentioned:
email_intro: 您已被提及
email_outro: 您收到了此通知,因為您被提及在 %{resource_title} 中。
email_subject: 您被提及在 %{resource_title} 中
- notification_title: 您被 %{author_name} %{author_nickname} 在 %{resource_title} 中提及。
errors:
messages:
cannot_have_comments: 無法評論
diff --git a/decidim-comments/lib/decidim/comments/engine.rb b/decidim-comments/lib/decidim/comments/engine.rb
index 19ffe5ee7a258..9dc0165676ef0 100644
--- a/decidim-comments/lib/decidim/comments/engine.rb
+++ b/decidim-comments/lib/decidim/comments/engine.rb
@@ -34,17 +34,6 @@ class Engine < ::Rails::Engine
Decidim::Api::MutationType.include MutationExtensions
end
- initializer "decidim_comments.stats" do
- Decidim.stats.register :comments_count,
- priority: StatsRegistry::HIGH_PRIORITY,
- icon_name: "chat-1-line",
- tooltip_key: "comments_count" do |organization|
- Decidim.component_manifests.sum do |component|
- component.stats.filter(tag: :comments).with_context(organization.published_components).map { |_name, value| value }.compact_blank.sum
- end
- end
- end
-
initializer "decidim_comments.register_icons" do
common_parameters = { category: "action", engine: :comments }
diff --git a/decidim-comments/lib/decidim/comments/version.rb b/decidim-comments/lib/decidim/comments/version.rb
index 471472f070ffd..cc6c8accfc11c 100644
--- a/decidim-comments/lib/decidim/comments/version.rb
+++ b/decidim-comments/lib/decidim/comments/version.rb
@@ -4,7 +4,7 @@ module Decidim
# This holds the decidim-comments version.
module Comments
def self.version
- "0.31.4"
+ "0.31.7"
end
end
end
diff --git a/decidim-comments/spec/events/decidim/comments/comment_by_followed_user_event_spec.rb b/decidim-comments/spec/events/decidim/comments/comment_by_followed_user_event_spec.rb
index 857bb1906fbea..6717c6db40f03 100644
--- a/decidim-comments/spec/events/decidim/comments/comment_by_followed_user_event_spec.rb
+++ b/decidim-comments/spec/events/decidim/comments/comment_by_followed_user_event_spec.rb
@@ -12,7 +12,7 @@ module Comments
let(:email_subject) { "There is a new comment by #{author_name} in #{resource_title}" }
let(:email_intro) { "#{author_name} has left a comment in #{resource_title}. You can read it in this page:" }
let(:email_outro) { "You have received this notification because you are following #{author_name}. You can unfollow this user from their profile page." }
- let(:notification_title) { "There is a new comment by #{author_name} #{author_nickname} in #{resource_title}." }
+ let(:notification_title) { "There is a new comment by #{author_name} in #{resource_title}." }
it_behaves_like "a simple event email"
it_behaves_like "a simple event notification"
diff --git a/decidim-comments/spec/events/decidim/comments/comment_created_event_spec.rb b/decidim-comments/spec/events/decidim/comments/comment_created_event_spec.rb
index c64f9f2f3526e..4c4c29dd828a5 100644
--- a/decidim-comments/spec/events/decidim/comments/comment_created_event_spec.rb
+++ b/decidim-comments/spec/events/decidim/comments/comment_created_event_spec.rb
@@ -8,7 +8,7 @@
let(:email_subject) { "There is a new comment from #{comment_author.name} in #{resource_title}" }
let(:email_intro) { "#{resource_title} has been commented. You can read the comment in this page:" }
let(:email_outro) { "You have received this notification because you are following \"#{resource_title}\" or its author. You can unfollow it from the previous link." }
- let(:notification_title) { "There is a new comment from #{comment_author.name} @#{comment_author.nickname} in #{resource_title}" }
+ let(:notification_title) { "There is a new comment from #{comment_author.name} in #{resource_title}" }
it_behaves_like "a simple event email"
it_behaves_like "a simple event notification"
diff --git a/decidim-comments/spec/events/decidim/comments/reply_created_event_spec.rb b/decidim-comments/spec/events/decidim/comments/reply_created_event_spec.rb
index f234f31ab892d..0ab0483ee18e5 100644
--- a/decidim-comments/spec/events/decidim/comments/reply_created_event_spec.rb
+++ b/decidim-comments/spec/events/decidim/comments/reply_created_event_spec.rb
@@ -11,7 +11,7 @@
let(:email_subject) { "#{comment_author_name} has replied your comment in #{resource_title}" }
let(:email_intro) { "#{comment_author_name} has replied your comment in #{resource_title}. You can read it in this page:" }
let(:email_outro) { "You have received this notification because your comment was replied." }
- let(:notification_title) { "#{comment_author_name} @#{comment_author.nickname} has replied your comment in #{resource_title}" }
+ let(:notification_title) { "#{comment_author_name} has replied your comment in #{resource_title}" }
it_behaves_like "a simple event email"
it_behaves_like "a simple event notification"
diff --git a/decidim-comments/spec/events/decidim/comments/user_mentioned_event_spec.rb b/decidim-comments/spec/events/decidim/comments/user_mentioned_event_spec.rb
index eff70c46b9ab7..3140401efa54b 100644
--- a/decidim-comments/spec/events/decidim/comments/user_mentioned_event_spec.rb
+++ b/decidim-comments/spec/events/decidim/comments/user_mentioned_event_spec.rb
@@ -22,7 +22,7 @@
let(:author) { create(:user, organization:) }
let!(:comment) { create(:comment, body:, author:, commentable:) }
let(:user) { create(:user, organization:, locale: "ca") }
- let(:notification_title) { "You have been mentioned in #{resource_title} by #{author.name} @#{author.nickname}" }
+ let(:notification_title) { "You have been mentioned in #{resource_title} by #{author.name}" }
let(:email_subject) { "You have been mentioned in #{resource_title}" }
let(:email_intro) { "You have been mentioned" }
let(:email_outro) { "You have received this notification because you have been mentioned in #{resource_title}." }
@@ -34,7 +34,7 @@
describe "resource_text" do
it "correctly renders comments with mentions" do
expect(subject.resource_text).not_to include("gid://")
- expect(subject.resource_text).to include("@#{author.nickname}")
+ expect(subject.resource_text).to include(author.nickname)
end
end
diff --git a/decidim-comments/spec/system/order_comments_spec.rb b/decidim-comments/spec/system/order_comments_spec.rb
index 840e481d93339..2ef4d6e3bd00d 100644
--- a/decidim-comments/spec/system/order_comments_spec.rb
+++ b/decidim-comments/spec/system/order_comments_spec.rb
@@ -51,6 +51,20 @@
expect(page).to have_select("order", selected: "Best rated", wait: 5)
end
+ it "keeps the focus on the sort dropdown after changing the order", :js, :slow do
+ within ".comment-order-by" do
+ page.evaluate_script("document.getElementById('order').focus()")
+ select "Best rated", from: "order"
+ end
+
+ within(".comment-threads", wait: 5) do
+ expect(page).to have_css("div:first-child#comment_#{best_rated_comment.id}", wait: 5)
+ end
+
+ expect(page).to have_select("order", selected: "Best rated", wait: 5)
+ expect(page.evaluate_script("document.activeElement.id")).to eq("order")
+ end
+
it "user selects \"Most discussed\" as sorting criteria", :js, :slow do
within ".comment-order-by" do
select "Most discussed", from: "order"
diff --git a/decidim-comments/spec/types/query_type_spec.rb b/decidim-comments/spec/types/query_type_spec.rb
index 368dd222ba824..eb3f49a07331e 100644
--- a/decidim-comments/spec/types/query_type_spec.rb
+++ b/decidim-comments/spec/types/query_type_spec.rb
@@ -51,5 +51,33 @@ module Decidim::Api
end
end
end
+
+ describe "user" do
+ let!(:user) { create(:user, :confirmed, organization: current_organization) }
+
+ context "with ID" do
+ let(:query) { %({ user(id: "#{user.id}") { id, name } }) }
+
+ it "returns the correct user" do
+ expect(response["user"]).to eq("id" => user.id.to_s, "name" => user.name)
+ end
+ end
+
+ context "with nickname" do
+ let(:query) { %({ user(nickname: "#{user.nickname}") { id, name } }) }
+
+ it "returns the correct user" do
+ expect(response["user"]).to eq("id" => user.id.to_s, "name" => user.name)
+ end
+ end
+
+ context "with no argument" do
+ let(:query) { %({ user { id, name } }) }
+
+ it "returns nothing" do
+ expect(response["user"]).to be_nil
+ end
+ end
+ end
end
end
diff --git a/decidim-conferences/app/cells/decidim/conferences/registration_type/registration_confirm.erb b/decidim-conferences/app/cells/decidim/conferences/registration_type/registration_confirm.erb
index 88ebbe2562650..dee35dde3f4ab 100644
--- a/decidim-conferences/app/cells/decidim/conferences/registration_type/registration_confirm.erb
+++ b/decidim-conferences/app/cells/decidim/conferences/registration_type/registration_confirm.erb
@@ -1,15 +1,17 @@
<%= decidim_modal id: "conference-registration-confirm-#{model.id}", class: "conference__registration-modal" do %>
-
<% end %>
diff --git a/decidim-conferences/app/forms/decidim/conferences/admin/conference_duplicate_form.rb b/decidim-conferences/app/forms/decidim/conferences/admin/conference_duplicate_form.rb
index 9ed61b5790805..ec41dccabba9c 100644
--- a/decidim-conferences/app/forms/decidim/conferences/admin/conference_duplicate_form.rb
+++ b/decidim-conferences/app/forms/decidim/conferences/admin/conference_duplicate_form.rb
@@ -23,7 +23,7 @@ class ConferenceDuplicateForm < Form
private
def slug_uniqueness
- return unless OrganizationConferences.new(current_organization).query.where(slug:).where.not(id:).any?
+ return unless OrganizationConferences.new(current_organization).query.with_deleted.where(slug:).where.not(id:).any?
errors.add(:slug, :taken)
end
diff --git a/decidim-conferences/app/forms/decidim/conferences/admin/conference_form.rb b/decidim-conferences/app/forms/decidim/conferences/admin/conference_form.rb
index 3595389a31d2a..6a1b4fdd30bc0 100644
--- a/decidim-conferences/app/forms/decidim/conferences/admin/conference_form.rb
+++ b/decidim-conferences/app/forms/decidim/conferences/admin/conference_form.rb
@@ -90,7 +90,7 @@ def available_slots_greater_than_or_equal_to_registrations_count
end
def slug_uniqueness
- return unless OrganizationConferences.new(current_organization).query.where(slug:).where.not(id: context[:conference_id]).any?
+ return unless OrganizationConferences.new(current_organization).query.where(slug:).with_deleted.where.not(id: context[:conference_id]).any?
errors.add(:slug, :taken)
end
diff --git a/decidim-conferences/app/helpers/decidim/conferences/conference_helper.rb b/decidim-conferences/app/helpers/decidim/conferences/conference_helper.rb
index be78362b94eb1..61c3de9df7b57 100644
--- a/decidim-conferences/app/helpers/decidim/conferences/conference_helper.rb
+++ b/decidim-conferences/app/helpers/decidim/conferences/conference_helper.rb
@@ -42,7 +42,7 @@ def conference_nav_items(participatory_space)
next unless Decidim::Meetings::Meeting.where(component:).published.not_hidden.visible_for(current_user).exists?
items << {
- name: decidim_escape_translated(component.name),
+ name: translated_attribute(component.name),
url: decidim_conferences.conference_conference_program_path(participatory_space, id: component.id)
}
end
@@ -63,7 +63,7 @@ def conference_nav_items(participatory_space)
other_components.each do |component|
items << {
- name: decidim_escape_translated(component.name),
+ name: translated_attribute(component.name),
url: main_component_path(component)
}
end
diff --git a/decidim-conferences/app/views/decidim/conferences/admin/conferences/_actions.html.erb b/decidim-conferences/app/views/decidim/conferences/admin/conferences/_actions.html.erb
index 6f582175f0e97..ea922d3ffd4f9 100644
--- a/decidim-conferences/app/views/decidim/conferences/admin/conferences/_actions.html.erb
+++ b/decidim-conferences/app/views/decidim/conferences/admin/conferences/_actions.html.erb
@@ -88,7 +88,7 @@
<% if conference.published? %>
- <%= with_tooltip t("tooltips.deleted_conferences_info", scope: "decidim.admin") do %>
+ <%= with_tooltip t("tooltips.deleted_conferences_info", scope: "decidim.admin"), class: :left do %>
<%= icon "delete-bin-line", class: "text-gray" %>
<%= t("decidim.admin.actions.soft_delete") %>
diff --git a/decidim-conferences/app/views/decidim/conferences/conference_program/show.html.erb b/decidim-conferences/app/views/decidim/conferences/conference_program/show.html.erb
index 591a3e0391e9f..75d593f13e176 100644
--- a/decidim-conferences/app/views/decidim/conferences/conference_program/show.html.erb
+++ b/decidim-conferences/app/views/decidim/conferences/conference_program/show.html.erb
@@ -14,7 +14,7 @@ end
%>
<%# NOTE: this page does not use a regular layout %>
-
+
<%= t(".program") %><%= t(".program") %> (<%= translated_attribute current_participatory_space.title %>)
diff --git a/decidim-conferences/app/views/decidim/conferences/conference_speakers/index.html.erb b/decidim-conferences/app/views/decidim/conferences/conference_speakers/index.html.erb
index 77c855563a3ae..bfb883f5dcb37 100644
--- a/decidim-conferences/app/views/decidim/conferences/conference_speakers/index.html.erb
+++ b/decidim-conferences/app/views/decidim/conferences/conference_speakers/index.html.erb
@@ -14,7 +14,7 @@ edit_link(
%>
<%# NOTE: this page does not use a regular layout %>
-
+
diff --git a/decidim-conferences/app/views/decidim/conferences/conferences/show.html.erb b/decidim-conferences/app/views/decidim/conferences/conferences/show.html.erb
index 9fb927673017c..983b5a27dcacc 100644
--- a/decidim-conferences/app/views/decidim/conferences/conferences/show.html.erb
+++ b/decidim-conferences/app/views/decidim/conferences/conferences/show.html.erb
@@ -20,7 +20,7 @@ edit_link(
include the hero inside the two-column layout.
Therefore is mandatory to pass the "main_enabled: false" flag
to the layout_two_col for disabling the original main. %>
-
+
<%= content_for :aside do %>
diff --git a/decidim-conferences/app/views/decidim/conferences/media/index.html.erb b/decidim-conferences/app/views/decidim/conferences/media/index.html.erb
index 6baad67eb1192..2ea7fb5b7260f 100644
--- a/decidim-conferences/app/views/decidim/conferences/media/index.html.erb
+++ b/decidim-conferences/app/views/decidim/conferences/media/index.html.erb
@@ -13,7 +13,7 @@ edit_link(
%>
<%# NOTE: this page does not use a regular layout %>
-
+
<%= t("media", scope: "layouts.decidim.conferences_nav") %><%= t("media", scope: "layouts.decidim.conferences_nav") %> (<%= translated_attribute current_participatory_space.title %>)
diff --git a/decidim-conferences/app/views/decidim/conferences/registration_types/index.html.erb b/decidim-conferences/app/views/decidim/conferences/registration_types/index.html.erb
index f785a76fa3064..a66b12a1eb043 100644
--- a/decidim-conferences/app/views/decidim/conferences/registration_types/index.html.erb
+++ b/decidim-conferences/app/views/decidim/conferences/registration_types/index.html.erb
@@ -16,7 +16,7 @@ edit_link(
<%= append_stylesheet_pack_tag "decidim_conferences" %>
<%# NOTE: this page does not use a regular layout %>
-
+
diff --git a/decidim-conferences/config/locales/de.yml b/decidim-conferences/config/locales/de.yml
index 16ddc5ef4529c..6aff2efd72738 100644
--- a/decidim-conferences/config/locales/de.yml
+++ b/decidim-conferences/config/locales/de.yml
@@ -3,7 +3,7 @@ de:
activemodel:
attributes:
conference:
- assemblies_ids: Ähnliche Gremien
+ assemblies_ids: Ähnliche Versammlungen
available_slots: Verfügbare Plätze
banner_image: Banner-Bild
decidim_scope_id: Umfang
@@ -303,6 +303,7 @@ de:
destroy:
success: Der Registrierungstyp wurde erfolgreich von dieser Konferenz entfernt.
edit:
+ title: Anmeldeart aktualisieren
update: Aktualisieren
new:
create: Erstellen
@@ -552,7 +553,7 @@ de:
details: Einzelheiten
introduction: Einführung
objectives: Ziele
- related_assemblies: Ähnliche Gremien
+ related_assemblies: Ähnliche Versammlungen
related_participatory_processes: Ähnliche Beteiligungsprozesse
download_your_data:
help:
diff --git a/decidim-conferences/config/locales/eu.yml b/decidim-conferences/config/locales/eu.yml
index 15d9278f78ef5..cb58d2d039637 100644
--- a/decidim-conferences/config/locales/eu.yml
+++ b/decidim-conferences/config/locales/eu.yml
@@ -233,7 +233,7 @@ eu:
actions: Ekintzak
affiliation: Afiliazioa
full_name: Izen osoa
- position: Ardura
+ position: Kokapena
name: Hizlaria
conference_user_role:
fields:
@@ -427,7 +427,7 @@ eu:
title: Izen-emate motak
send_conference_diploma_mailer:
diploma:
- diploma_html: < a href = " %{url}" >%{title} jardunaldira joan izanaren ziurtagiria aurkituko duzu eranskinetan.
+ diploma_html: %{title} jardunaldian parte hartu izanaren ziurtagiria eranskinetan aurkituko duzu.
diploma_user:
attendance_verified_by: Bertaratzea nork egiaztatua
certificate_of_attendance: Parte-hartze ziurtagiria
@@ -597,8 +597,8 @@ eu:
notification_title: %{resource_title} jardunaldiak erregistroak gaitu ditu.
role_assigned:
email_intro: '%{role} rola esleitu zaizu jardunaldian.'
- email_outro: Jakinarazpen hau jaso duzu %{role} rola esleitu dizutelako "%{resource_title}" hitzaldian.
- email_subject: '%{role} rola esleitu zaizu batzarrean.'
+ email_outro: Jakinarazpen hau jaso duzu %{role} rola esleitu dizutelako "%{resource_title}" jardunaldian.
+ email_subject: '%{role} rola esleitu zaizu "%{resource_title}" baliabiderako.'
notification_title: '%{role} rola esleitu zaizu %{resource_title} batzarrean.'
upcoming_conference:
email_intro: '"%{resource_title}" jardunaldia egiten ari da 2 egunetan. Deskribapena bere orrialdetik irakur dezakezu:'
@@ -608,8 +608,8 @@ eu:
help:
participatory_spaces:
conferences:
- contextual: "Programa batean antolatutako bileren bilduma bat da. Bertan, hizlari gisa gonbidatutako pertsonak daude, baita jardunaldi handietako edo gizarte-ekitaldietako ohiko informazio-eremuak ere (erregistroa, ekitaldia babesten edo laguntzen duten erakundeen zerrenda, etab.).
Adibideak: Jardunaldi bat garrantzitsua izan daiteke erakunde batentzat eta haren kideentzat, edo parte hartzeko prozesu baten zati gisa edo kontsulta baten ondoren egin daiteke.
\n"
- page: "Programa batean antolatutako bileren bilduma bat da. Bertan, hizlari gisa gonbidatutako pertsonak daude, baita jardunaldi handietako edo gizarte-ekitaldietako ohiko informazio-eremuak ere (erregistroa, ekitaldia babesten edo laguntzen duten erakundeen zerrenda, etab.).
Adibideak: Jardunaldi bat garrantzitsua izan daiteke erakunde batentzat eta haren kideentzat, edo parte hartzeko prozesu baten zati gisa edo kontsulta baten ondoren egin daiteke.
\n"
+ contextual: "
Jardunaldi bat programa batean antolatutako topaketen multzoa da; hainbat pertsona hizlari gisa gonbidatzen dira, eta kongresu handietan edo gizarte-ekitaldietan ohikoak diren beste informazio-eremu batzuk ere biltzen ditu (izen-ematea, ekitaldia babesten edo finantzatzen duten erakundeen zerrenda, etab.).
Adibideak: jardunaldi bat erakunde batentzat eta haren kideentzat ekitaldi esanguratsua izan daiteke; partaidetza-prozesu baten barruan egin daiteke, edo kontsulta baten ondoren.
\n"
+ page: "
Jardunaldi bat programa batean antolatutako topaketen multzoa da; hainbat pertsona hizlari gisa gonbidatzen dira, eta kongresu handietan edo gizarte-ekitaldietan ohikoak diren beste informazio-eremu batzuk ere biltzen ditu (izen-ematea, ekitaldia babesten edo finantzatzen duten erakundeen zerrenda, etab.).
Adibideak: jardunaldi bat erakunde batentzat eta haren kideentzat ekitaldi garrantzitsua izan daiteke; partaidetza-prozesu baten barruan egin daiteke, edo kontsulta baten ondoren.
\n"
title: Zer dira jardunaldiak?
log:
value_types:
@@ -667,7 +667,7 @@ eu:
promoted_conferences: Sustatutako jardunaldiak
order_by_conferences:
conferences:
- one: "Jardunaldi %{count}"
+ one: "%{count} jardunaldi"
other: "%{count} jardunaldi"
conferences_nav:
conference_partners_menu_item: Kideak
diff --git a/decidim-conferences/config/locales/fr-CA.yml b/decidim-conferences/config/locales/fr-CA.yml
index b91de1e2889ec..9c5ecd91f0a1b 100644
--- a/decidim-conferences/config/locales/fr-CA.yml
+++ b/decidim-conferences/config/locales/fr-CA.yml
@@ -121,8 +121,11 @@ fr-CA:
success: Conférencier supprimé avec succès pour cette conférence.
edit:
update: Mettre à jour
+ index:
+ conference_speakers_title: Conférenciers
new:
create: Créer
+ title: Nouveau conférencier
publish:
invalid: Il y a eu un problème lors de la publication de cet intervenant.
success: L'intervenant de la conférence a été publié avec succès.
diff --git a/decidim-conferences/config/locales/sk.yml b/decidim-conferences/config/locales/sk.yml
index 781e01a77a6b2..6860cb3b1e98d 100644
--- a/decidim-conferences/config/locales/sk.yml
+++ b/decidim-conferences/config/locales/sk.yml
@@ -501,7 +501,7 @@ sk:
show:
already_have_an_account?: Už máte účet?
are_you_new?: Nový účastník?
- login_as: Ste prihlásení ako %{name} %{email}
+ login_as: Ste prihlásení ako %{name} %{email}
make_conference_registration: Zaregistrovať sa na konferenciu
manage_registration: Spravovať registráciu
register: Registrovať
@@ -591,10 +591,10 @@ sk:
conference_registration_validation_pending:
notification_title: Vaša registrácia na konferencii %{resource_title} čaká na potvrdenie.
conference_registrations_over_percentage:
- email_intro: Konferencia "%{resource_title}" je obsadená na viac, než%{percentage} %.
+ email_intro: Konferencia "%{resource_title}" je obsadená na viac, než%{percentage} %.
email_outro: Túto notifikáciu ste dostali, pretože ste administrátorom participatívneho priestoru konferencie.
- email_subject: Konferencia "%{resource_title}" je obsadená na viac, než%{percentage} %.
- notification_title: Konferencia %{resource_title} je obsadená na viac, než %{percentage} %.
+ email_subject: Konferencia "%{resource_title}" je obsadená na viac, než%{percentage} %.
+ notification_title: Konferencia %{resource_title} je obsadená na viac, než %{percentage} %.
conference_updated:
email_intro: 'Konferencia "%{resource_title}" bola aktualizovaná. Novú verziu si môžete pozrieť na jej stránke:'
email_outro: Túto notifikáciu ste dostali, pretože sledujete konferenciu "%{resource_title}". Notifikácie môžete zrušiť po kliknutí na predchádzajúci odkaz.
diff --git a/decidim-conferences/lib/decidim/conferences/test/factories.rb b/decidim-conferences/lib/decidim/conferences/test/factories.rb
index db7213137a588..3277d06e34fe6 100644
--- a/decidim-conferences/lib/decidim/conferences/test/factories.rb
+++ b/decidim-conferences/lib/decidim/conferences/test/factories.rb
@@ -44,6 +44,10 @@
published_at { Time.current }
end
+ trait :trashed do
+ deleted_at { Time.current }
+ end
+
trait :diploma do
main_logo { Decidim::Dev.test_file("avatar.jpg", "image/jpeg") }
signature { Decidim::Dev.test_file("avatar.jpg", "image/jpeg") }
diff --git a/decidim-conferences/lib/decidim/conferences/version.rb b/decidim-conferences/lib/decidim/conferences/version.rb
index 0757dec2c9c0a..9069854c9a332 100644
--- a/decidim-conferences/lib/decidim/conferences/version.rb
+++ b/decidim-conferences/lib/decidim/conferences/version.rb
@@ -4,7 +4,7 @@ module Decidim
# This holds the decidim-conferences version.
module Conferences
def self.version
- "0.31.4"
+ "0.31.7"
end
end
end
diff --git a/decidim-conferences/spec/commands/create_conference_spec.rb b/decidim-conferences/spec/commands/create_conference_spec.rb
index cc6e1979e2b12..fdb67137d1f98 100644
--- a/decidim-conferences/spec/commands/create_conference_spec.rb
+++ b/decidim-conferences/spec/commands/create_conference_spec.rb
@@ -31,11 +31,8 @@ module Decidim::Conferences
let(:related_processes_ids) { [participatory_processes.map(&:id)] }
let(:related_assemblies_ids) { [assemblies.map(&:id)] }
- let(:form) do
- instance_double(
- Admin::ConferenceForm,
- current_user:,
- invalid?: invalid,
+ let(:attributes) do
+ {
title: { en: "title" },
slogan: { en: "slogan" },
weight: 1,
@@ -46,8 +43,6 @@ module Decidim::Conferences
promoted: nil,
description: { en: "description" },
short_description: { en: "short_description" },
- current_organization: organization,
- organization:,
taxonomizations:,
errors:,
show_statistics: false,
@@ -59,6 +54,17 @@ module Decidim::Conferences
registration_terms: { en: "registrations terms" },
participatory_processes_ids: related_processes_ids,
assemblies_ids: related_assemblies_ids
+ }
+ end
+
+ let(:form) do
+ instance_double(
+ Admin::ConferenceForm,
+ **attributes,
+ current_user:,
+ organization:,
+ current_organization: organization,
+ invalid?: invalid
)
end
let(:invalid) { false }
@@ -71,6 +77,23 @@ module Decidim::Conferences
end
end
+ context "when there is a trashed space with the same slug" do
+ let!(:trashed_space) { create(:conference, :trashed, slug: "slug", organization:) }
+
+ let(:form) do
+ Admin::ConferenceForm.from_params(attributes)
+ .with_context({
+ current_user:,
+ current_organization: organization
+ })
+ end
+
+ it "broadcasts invalid" do
+ expect { subject.call }.to broadcast(:invalid)
+ expect(form.errors[:slug]).not_to be_empty
+ end
+ end
+
context "when the conference is not persisted" do
let(:hero_image) do
ActiveStorage::Blob.create_and_upload!(
diff --git a/decidim-conferences/spec/commands/duplicate_conference_spec.rb b/decidim-conferences/spec/commands/duplicate_conference_spec.rb
index 940c0c2afeb78..1c922a1b341e7 100644
--- a/decidim-conferences/spec/commands/duplicate_conference_spec.rb
+++ b/decidim-conferences/spec/commands/duplicate_conference_spec.rb
@@ -34,6 +34,27 @@ module Decidim::Conferences
end
end
+ context "when there is a trashed space with the same slug" do
+ let!(:trashed_space) { create(:conference, :trashed, slug: "duplicated-slug", organization:) }
+
+ let(:form) do
+ Admin::ConferenceDuplicateForm.from_params({
+ title: { en: "title" },
+ slug: "duplicated-slug",
+ duplicate_components: duplicate_components
+ })
+ .with_context({
+ current_user:,
+ current_organization: organization
+ })
+ end
+
+ it "broadcasts invalid" do
+ expect { subject.call }.to broadcast(:invalid)
+ expect(form.errors[:slug]).not_to be_empty
+ end
+ end
+
context "when everything is ok" do
it "duplicates a conference" do
expect { subject.call }.to change(Decidim::Conference, :count).by(1)
diff --git a/decidim-conferences/spec/commands/update_conference_spec.rb b/decidim-conferences/spec/commands/update_conference_spec.rb
index 851749725adef..d98217bbb99b1 100644
--- a/decidim-conferences/spec/commands/update_conference_spec.rb
+++ b/decidim-conferences/spec/commands/update_conference_spec.rb
@@ -95,6 +95,19 @@ module Decidim::Conferences
end
end
+ context "when there is a trashed space with the same slug" do
+ let!(:trashed_space) { create(:conference, :trashed, slug: "slug", organization:) }
+
+ let(:form) do
+ Admin::ConferenceForm.from_params(params.deep_merge(conference: { slug: "slug" })).with_context(context)
+ end
+
+ it "broadcasts invalid" do
+ expect { command.call }.to broadcast(:invalid)
+ expect(form.errors[:slug]).not_to be_empty
+ end
+ end
+
describe "when the conference is not valid" do
before do
allow(form).to receive(:invalid?).and_return(false)
diff --git a/decidim-conferences/spec/controllers/admin/imports_controller_spec.rb b/decidim-conferences/spec/controllers/admin/imports_controller_spec.rb
index 2ec0c6a719fcd..f9aba84439f69 100644
--- a/decidim-conferences/spec/controllers/admin/imports_controller_spec.rb
+++ b/decidim-conferences/spec/controllers/admin/imports_controller_spec.rb
@@ -13,10 +13,7 @@ module Admin
let(:extra_params) { { conference_slug: participatory_space.slug } }
let(:file) do
- Rack::Test::UploadedFile.new(
- Decidim::Dev.test_file("import_proposals.csv", "text/csv"),
- "text/csv"
- )
+ Decidim::Dev.test_file("import_proposals.csv", "text/csv")
end
end
end
diff --git a/decidim-conferences/spec/shared/manage_conference_components_examples.rb b/decidim-conferences/spec/shared/manage_conference_components_examples.rb
index e8864e661c218..2550b9e9d546a 100644
--- a/decidim-conferences/spec/shared/manage_conference_components_examples.rb
+++ b/decidim-conferences/spec/shared/manage_conference_components_examples.rb
@@ -179,6 +179,8 @@
click_on "Publish"
end
+ expect(page).to have_admin_callout("The component has been successfully published.")
+
expect(Decidim::EventPublisherJob).to(have_been_enqueued.with(
"decidim.events.components.component_published", {
resource: component,
@@ -197,7 +199,7 @@
it "hides the component from the menu" do
visit decidim_conferences.conference_path(conference, locale: I18n.locale)
- expect(page).to have_content decidim_escape_translated(component.name)
+ expect(page).to have_content translated_attribute(component.name)
visit decidim_admin_conferences.components_path(conference)
@@ -212,7 +214,7 @@
end
visit decidim_conferences.conference_path(conference, locale: I18n.locale)
- expect(page).to have_no_content decidim_escape_translated(component.name)
+ expect(page).to have_no_content translated_attribute(component.name)
end
end
diff --git a/decidim-conferences/spec/system/conference_program_spec.rb b/decidim-conferences/spec/system/conference_program_spec.rb
index 091136f369ee4..4403a2dd09b25 100644
--- a/decidim-conferences/spec/system/conference_program_spec.rb
+++ b/decidim-conferences/spec/system/conference_program_spec.rb
@@ -52,8 +52,8 @@
visit decidim_conferences.conference_path(conference)
within "aside .conference__nav-container" do
- expect(page).to have_content(decidim_escape_translated(component.name))
- click_on decidim_escape_translated(component.name)
+ expect(page).to have_content(translated_attribute(component.name))
+ click_on translated_attribute(component.name)
end
expect(page).to have_current_path decidim_conferences.conference_conference_program_path(conference, component)
diff --git a/decidim-conferences/spec/system/conferences_spec.rb b/decidim-conferences/spec/system/conferences_spec.rb
index 849d8fffc114e..d732e039f9aaa 100644
--- a/decidim-conferences/spec/system/conferences_spec.rb
+++ b/decidim-conferences/spec/system/conferences_spec.rb
@@ -230,11 +230,27 @@
context "when the conference has some components" do
it "shows the components" do
within ".conference__nav" do
- expect(page).to have_content(decidim_escape_translated(proposals_component.name))
+ expect(page).to have_content(translated(proposals_component.name))
+ expect(page.html).to include(decidim_escape_translated(proposals_component.name).gsub(""", "\""))
expect(page).to have_no_content(decidim_escape_translated(meetings_component.name))
end
end
+ describe "when there are special characters (', &) in the nav links" do
+ let(:participatory_space) { conference }
+ let(:component_name) { "People's Budget & Ideas" }
+ let!(:proposal_component) { create(:proposal_component, name: { en: component_name }, participatory_space:) }
+
+ it "renders the component name correctly" do
+ visit current_path
+ within ".conference__nav-container" do
+ expect(page).to have_content(component_name)
+ expect(page).to have_no_content("'")
+ expect(page).to have_no_content("'")
+ end
+ end
+ end
+
it "renders the stats for those components that are visible" do
within all("[data-statistic]")[0] do
expect(page).to have_css(".statistic__title", text: "Proposals")
diff --git a/decidim-core/app/cells/decidim/amendable/amend_button_card/show.erb b/decidim-core/app/cells/decidim/amendable/amend_button_card/show.erb
index eb6623e304b56..7eb077db92fe1 100644
--- a/decidim-core/app/cells/decidim/amendable/amend_button_card/show.erb
+++ b/decidim-core/app/cells/decidim/amendable/amend_button_card/show.erb
@@ -1,5 +1,5 @@
-
diff --git a/decidim-elections/config/locales/ca.yml b/decidim-elections/config/locales/ca.yml
index ea253c0ea784a..8fc7fedaa9735 100644
--- a/decidim-elections/config/locales/ca.yml
+++ b/decidim-elections/config/locales/ca.yml
@@ -2,6 +2,8 @@
ca:
activemodel:
attributes:
+ elections_question:
+ max_choices: Nombre màxim d'opcions
token_csv:
file: Arxiu
remove_all: Eliminar totes les dades del cens actual
@@ -101,6 +103,7 @@ ca:
start_question_button: Activar la votació
title: Resultats
status:
+ allow_census_check_before_start: Permetre que les usuàries comprovin si poden votar abans que comenci l'elecció
census: 'Cens:'
results_availability:
after_end: Resultats disponibles després de la finalització de les eleccions
@@ -179,14 +182,19 @@ ca:
unknown: Estat desconegut
admin_log:
election:
- create: "%{user_name} ha creat l'elecció \"%{resource_name}\" a %{space_name}"
- publish: "%{user_name} ha publicat l'elecció \"%{resource_name}\" a %{space_name}"
- restore: "%{user_name} ha restaurat l'elecció \"%{resource_name}\" a %{space_name}"
- soft_delete: "%{user_name} ha mogut l'elecció \"%{resource_name}\" de %{space_name} a la paperera"
- unpublish: "%{user_name} ha despublicat l'elecció \"%{resource_name}\" a %{space_name}"
- update: "%{user_name} ha actualitzat l'elecció \"%{resource_name}\" a %{space_name}"
+ create: '%{user_name} ha creat l''elecció "%{resource_name}" a %{space_name}'
+ publish: '%{user_name} ha publicat l''elecció "%{resource_name}" a %{space_name}'
+ restore: '%{user_name} ha restaurat l''elecció "%{resource_name}" a %{space_name}'
+ soft_delete: '%{user_name} ha mogut l''elecció "%{resource_name}" de %{space_name} a la paperera'
+ unpublish: '%{user_name} ha despublicat l''elecció "%{resource_name}" a %{space_name}'
+ update: '%{user_name} ha actualitzat l''elecció "%{resource_name}" a %{space_name}'
question:
- update: "%{user_name} va actualitzar les preguntes de l'elecció \"%{resource_name}\""
+ update: '%{user_name} va actualitzar les preguntes de l''elecció "%{resource_name}"'
+ census_checks:
+ show:
+ description: Això vol dir que, un cop comenci l'elecció, hi podràs votar.
+ exit_button: Sortir de la comprovació del cens
+ title: T'has verificat correctament
censuses:
census_ready_html: S'han carregat les dades censals i estan a punt per utilitzar-les a l'elecció "%{election_title}".
census_size_html:
@@ -195,8 +203,9 @@ ca:
internal_users:
already_have_an_account?: Ja tens un compte?
are_you_new?: Encara no ets participant?
- info_html: |
- Pots restringir la participació en l'elecció a les participants que tinguin una autorització. Tingues en compte que les participants obtenir l'autorització seleccionada per poder votar. Si deixes totes les caselles de verificació buides, qualsevol persona registrada podrà votar.
+ info_html: 'Pots restringir la participació en l''elecció a les participants que tinguin una autorització. Tingues en compte que les participants obtenir l''autorització seleccionada per poder votar. Si deixes totes les caselles de verificació buides, qualsevol persona registrada podrà votar.
+
+ '
internal_type_title: Autoritzacions addicionals necessàries per votar (opcional)
label: Participants registrades (dinàmic)
sign_in_description: Inicia la teva sessió per a votar en aquestes eleccions
@@ -212,8 +221,9 @@ ca:
email;token
user@example.org;123456
user2@example.org;ABCXYZ
- info_html: |
- Ha de ser un arxiu en format CSV amb només dues columnes, una amb l'adreça de correu electrònic i una altra amb el valor de l'autenticador (token). Els camps han d'estar separats amb punt i coma (;).
+ info_html: 'Ha de ser un arxiu en format CSV amb només dues columnes, una amb l''adreça de correu electrònic i una altra amb el valor de l''autenticador (token). Els camps han d''estar separats amb punt i coma (;).
+
+ '
label: Participants no registrats amb autentificador/token (fixat)
remove_before_upload: Si vols pujar un nou cens, primer has d'eliminar el que ja existeix.
upload_file: Puja arxiu
@@ -249,13 +259,15 @@ ca:
title: Preguntes de l'elecció
show:
active_voting_until: 'Votació activa fins: %{end_date}'
+ check_census_button: Comprovar si puc votar
+ check_census_explanation: Aquesta elecció encara no ha començat, però pots comprovar si estàs inclosa al cens.
edit_vote_button: Edita el vot
vote_button: Votar
voted: Ja has votat. Pots tornar a votar, això esborrarà el teu vot anterior i, només es comptabilitzarà la teva última votació.
votes_count:
one: 1 vot
other: "%{count} vots"
- voting_began: 'La votació es va iniciar el %{start_date}'
+ voting_began: La votació es va iniciar el %{start_date}
vote_results:
subtitle:
after_end: Les eleccions han finalitzat. Ara pot veure'n els resultats.
@@ -308,6 +320,9 @@ ca:
question:
back: Tornar
cast_vote: Enviar el vot
+ max_choices: 'Màxim d''opcions: %{count}'
+ max_choices_alert: Has seleccionat massa opcions. Si us plau, desselecciona'n algunes per continuar.
+ max_choices_exceeded: No pots seleccionar més de %{max} opcions. Torna enrere i ajusta la selecció.
next: Següent
receipt:
description: Pots tornar a votar en qualsevol moment mentre el període de votació estigui obert. El teu vot anterior serà substituït pel nou.
diff --git a/decidim-elections/config/locales/cs.yml b/decidim-elections/config/locales/cs.yml
index 10b75288c1d82..3ab3df860cef3 100644
--- a/decidim-elections/config/locales/cs.yml
+++ b/decidim-elections/config/locales/cs.yml
@@ -34,15 +34,18 @@ cs:
elections:
actions:
confirm_delete_election: Opravdu chcete odstranit tuto volbu?
+ confirm_unpublish_election: Opravdu chcete zrušit zveřejnění těchto voleb?
deleted_election_info: Smazané volby nejsou zobrazeny v seznamu. Můžete je zobrazit kliknutím na tlačítko níže.
edit: Upravit volby
new: Nové volby
preview: Náhled
title: Akce
+ view: Zobrazit volby
view_deleted_elections: Zobrazit odstraněné volby
admin:
census:
edit:
+ choose_census: Vyberte typ seznamu voličů, který chcete použít pro tyto volby
created_at: Vytvořeno v
identifier: Identifikátor uživatele
dashboard:
@@ -113,6 +116,8 @@ cs:
publish: Publikovat
results_availability:
after_end: Po ukončení voleb
+ per_question: Otázka po otázce
+ per_question_help: ručně zpracovat hlasování a publikovat výsledky pro každou otázku
real_time: V reálném čase
title: Dostupnost výsledků
save: Uložit a pokračovat
@@ -142,9 +147,20 @@ cs:
form_description: Otázka musí mít alespoň dvě odpovědi, aby mohla jít k dalšímu kroku.
update:
invalid: Při aktualizaci otázek došlo k chybě.
+ success: Otázky byly úspěšně aktualizovány.
statuses:
+ enable_voting:
+ invalid: Při povolování hlasování došlo k chybě.
+ success: Hlasování bylo úspěšně aktivováno.
+ end:
+ invalid: Vyskytl se problém s ukončením voleb.
+ success: Volba byla úspěšně ukončena.
publish_results:
invalid: Při publikování výsledků došlo k chybě.
+ success: Výsledky byly úspěšně zveřejněny.
+ start:
+ invalid: Vyskytl se problém při zahájení voleb.
+ success: Volba byla úspěšně zahájena.
unknown: Neznámý stav
admin_log:
election:
@@ -244,12 +260,14 @@ cs:
failed: Vaši identitu nelze ověřit. Zkontrolujte zadané informace a zkuste to znovu.
form_title: Ověřte svou identitu
confirm:
+ cast_vote: Odevzdat hlas
edit_vote: Upravte svůj hlas
not_answered: Na tuto otázku jste neodpověděl.
title: Potvrďte svůj hlas
not_authorized: V těchto volbách nemáte oprávnění volit.
question:
back: Zpět
+ cast_vote: Odevzdat hlas
next: Další
statistics:
elections_count: Volby
diff --git a/decidim-elections/config/locales/de.yml b/decidim-elections/config/locales/de.yml
index 75068e2eee205..8f99c5f7bdd71 100644
--- a/decidim-elections/config/locales/de.yml
+++ b/decidim-elections/config/locales/de.yml
@@ -1,5 +1,10 @@
---
de:
+ activemodel:
+ attributes:
+ token_csv:
+ file: Datei
+ remove_all: Alle aktuellen Zählungsdaten entfernen
activerecord:
models:
decidim/elections/election:
@@ -9,8 +14,13 @@ de:
admin:
menu:
elections_menu:
+ basic_elections: Allgemein
election_census: Erhebung
+ election_dashboard: Dashboard
election_questions: Fragen
+ tooltips:
+ deleted_elections_info: Diese Wahl kann nicht gelöscht werden
+ edit_elections_info: Diese Wahl kann nicht bearbeitet werden
components:
elections:
actions:
@@ -25,40 +35,90 @@ de:
announcement: Ankündigung
elections:
actions:
+ confirm_delete_election: Sind Sie sicher, dass Sie diese Wahl löschen möchten?
+ confirm_unpublish_election: Sind Sie sicher, dass Sie die Veröffentlichung dieser Wahl aufheben möchten?
+ deleted_election_info: Gelöschte Wahlen werden nicht in der Liste angezeigt. Sie können sie über die Schaltfläche unten einsehen.
+ edit: Wahl bearbeiten
+ new: Neue Wahl
preview: Vorschau
title: Aktionen
+ view: Wahl ansehen
+ view_deleted_elections: Gelöschte Wahlen anzeigen
admin:
census:
edit:
+ choose_census: Wählen Sie die Art der Zählung, die Sie für diese Wahl verwenden möchten
created_at: Erstellt am
+ identifier: Benutzerkennung
+ preview:
+ title:
+ one: Die Vorschauliste ist auf %{count} Eintrag beschränkt.
+ other: Die Vorschauliste ist auf %{count} Einträge beschränkt.
+ update:
+ error: Beim Erstellen oder Speichern der Zählung ist ein Fehler aufgetreten.
+ success: Zählung erfolgreich aktualisiert.
dashboard:
+ calendar:
+ end_at: 'Endzeit:'
+ end_election: Wahl beenden
+ manual_start: Manuell
+ published_results_at: Ergebnisse veröffentlicht am
+ start_at: 'Startzeit:'
+ start_election: Wahl starten
+ title: Kalender
census:
title: Erhebung
main:
labels:
+ calendar: Kalender
description: Beschreibung
+ image: Bildergalerie
+ results: Verfügbarkeit der Ergebnisse
title: Titel
+ title: Allgemein
+ publish_confirm: Sind Sie sicher, dass Sie diese Wahl veröffentlichen möchten?
questions:
labels:
answers: Antworten
+ limit_info: Diese Wahl enthält weitere Fragen. Die Vorschau ist auf 3 Fragen begrenzt.
title: Fragen
questions_table:
answer: Antworten
+ percentage: Prozentsatz
+ total: Gesamt
votes: Stimmen
+ votes_count:
+ one: 1 Stimme
+ other: "%{count} Stimmen"
results:
+ not_started: Die Wahl hat noch nicht begonnen.
+ per_question_waiting: Für keine der Fragen ist die Abstimmung aktiviert. Teilnehmende sehen die Meldung "Warten auf die nächste Frage", bis Sie mindestens eine Frage aktivieren.
publish_button: Resultate veröffentlichen
results_availability:
+ after_end: Sie können alle Ergebnisse veröffentlichen, sobald die Wahl beendet ist. Die Ergebnisse bleiben verborgen, bis Sie sie manuell veröffentlichen.
+ per_question: Sie müssen die Abstimmung aktivieren und die Ergebnisse für jede Frage einzeln manuell veröffentlichen.
real_time: Ergebnisse werden laufend während der Wahl angezeigt.
start_question_button: Abstimmung aktivieren
title: Resultate
status:
census: 'Erhebung:'
+ results_availability:
+ after_end: Ergebnisse verfügbar nach Ende der Wahl
+ per_question: Ergebnisse verfügbar pro Frage
+ real_time: Ergebnisse in Echtzeit verfügbar
title: Wahlstatus
elections:
+ create:
+ invalid: Beim Erstellen der Wahl ist ein Fehler aufgetreten.
+ success: Wahl erfolgreich erstellt.
+ dashboard:
+ subtitle: 'Letzter Schritt: Überprüfen Sie Ihre Angaben. Vor der Veröffentlichung können noch Änderungen vorgenommen werden. Auch nach der Veröffentlichung können Sie die Beschreibung der Wahl weiterhin aktualisieren.'
+ title: Dashboard
edit:
title: Wahl bearbeiten
form:
add_images: Bilder hinzufügen
+ attachment_legend: Bildergalerie hinzufügen (optional)
basic_title: Hauptinformation
calendar: Kalender
calendar_description: Überprüfen Sie, ob die Zeitzone in den Organisationseinstellungen korrekt ist. Die aktuelle Konfiguration ist %{timezone}.
@@ -67,8 +127,12 @@ de:
manual_start: Manueller Start
publish: Veröffentlichen
results_availability:
+ after_end: Nach Ende der Wahl
+ after_end_help: Ergebnisse veröffentlichen, sobald die Wahl beendet ist
per_question: Frage nach Frage
+ per_question_help: Abstimmung manuell steuern und Ergebnisse für jede Frage einzeln veröffentlichen
real_time: In Echtzeit
+ real_time_help: Ergebnisse während der laufenden Abstimmung automatisch veröffentlichen
title: Verfügbarkeit der Ergebnisse
save: Speichern und fortfahren
start_at: Startzeit
@@ -78,53 +142,183 @@ de:
title: Gelöschte Wahlen
new:
title: Neue Wahl
+ publish:
+ invalid: Beim Veröffentlichen der Wahl ist ein Fehler aufgetreten.
+ success: Wahl erfolgreich veröffentlicht.
+ unpublish:
+ invalid: Beim Aufheben der Veröffentlichung der Wahl ist ein Fehler aufgetreten.
+ success: Die Veröffentlichung der Wahl wurde erfolgreich aufgehoben.
+ update:
+ invalid: Beim Aktualisieren der Wahl ist ein Fehler aufgetreten.
+ success: Wahl erfolgreich aktualisiert.
questions:
edit_questions:
new_question: Neue Frage
+ remove_question_confirm: Sind Sie sicher, dass Sie diese Frage entfernen möchten?
title: Fragen
+ form:
+ errors:
+ at_least_one_question: Mindestens eine Frage ist erforderlich.
+ form_description: Die Frage muss mindestens zwei Antworten haben, um zum nächsten Schritt zu gelangen.
+ update:
+ invalid: Beim Aktualisieren der Fragen ist ein Fehler aufgetreten.
+ success: Fragen erfolgreich aktualisiert.
statuses:
+ enable_voting:
+ invalid: Beim Aktivieren der Abstimmung ist ein Fehler aufgetreten.
+ success: Abstimmung erfolgreich aktiviert.
+ end:
+ invalid: Beim Beenden der Wahl ist ein Fehler aufgetreten.
+ success: Wahl erfolgreich beendet.
publish_results:
invalid: Beim Veröffentlichen der Ergebnisse ist ein Fehler aufgetreten.
+ success: Ergebnisse erfolgreich veröffentlicht.
+ start:
+ invalid: Beim Starten der Wahl ist ein Fehler aufgetreten.
+ success: Wahl erfolgreich gestartet.
+ unknown: Unbekannter Status
+ admin_log:
+ election:
+ create: "%{user_name} hat die Wahl %{resource_name} in %{space_name} erstellt"
+ publish: "%{user_name} hat die Wahl %{resource_name} in %{space_name} veröffentlicht"
+ restore: "%{user_name} hat die Wahl %{resource_name} in %{space_name} wiederhergestellt"
+ soft_delete: "%{user_name} hat die Wahl %{resource_name} in %{space_name} in den Papierkorb verschoben"
+ unpublish: "%{user_name} hat die Wahl %{resource_name} in %{space_name} auf \"unveröffentlicht\" gesetzt"
+ update: "%{user_name} hat die Wahl %{resource_name} in %{space_name} aktualisiert"
+ question:
+ update: "%{user_name} hat die Fragen der Wahl %{resource_name} aktualisiert"
censuses:
+ census_ready_html: Die Zählungsdaten wurden hochgeladen und für die Verwendung in der Wahl %{election_title} vorbereitet.
+ census_size_html:
+ one: Derzeit ist 1 Person zur Teilnahme an dieser Wahl berechtigt (dies kann sich bei einer dynamischen Zählung ändern).
+ other: Derzeit sind %{count} Personen zur Teilnahme an dieser Wahl berechtigt (dies kann sich bei einer dynamischen Zählung ändern).
+ internal_users:
+ already_have_an_account?: Sie haben bereits ein Konto?
+ are_you_new?: Sie sind neu hier?
+ info_html: |
+ Sie können die Teilnahme an der Wahl auf Teilnehmende mit einer Verifizierung beschränken.
+ Beachten Sie, dass Teilnehmende die ausgewählten Verifizierungen erfüllen müssen, um abstimmen zu können. Wenn Sie alle Kontrollkästchen leer lassen, können alle registrierten Personen abstimmen.
+ internal_type_title: Zusätzlich erforderliche Verifizierungen zur Teilnahme (optional)
+ label: Registrierte Teilnehmende (dynamisch)
+ sign_in_description: Melden Sie sich an, um an dieser Wahl teilzunehmen
+ sign_up_description: Erstellen Sie ein Konto, um an dieser Wahl teilzunehmen
+ internal_users_form:
+ authorization_options_invalid: Obwohl Sie über alle erforderlichen Verifizierungen verfügen, sind leider einige davon für diese Wahl nicht gültig.
+ exit_button: Wahlkabine verlassen
+ invalid: Sie sind nicht berechtigt, an dieser Wahl teilzunehmen.
+ resume_with_method: Verifizierung mit %{name} fortsetzen
+ verify_with_method: Mit %{name} verifizieren
+ token_csv:
+ example: |
+ email;token
+ user@example.org;123456
+ user2@example.org;ABCXYZ
+ info_html: |
+ Die Datei muss im CSV-Format mit zwei Spalten vorliegen: einer mit der E-Mail-Adresse und einer mit dem Wert eines Tokens, das zur Teilnahme eingegeben werden muss.
+ Die Spalten müssen durch ein Semikolon (;) getrennt sein
+ label: Nicht registrierte Teilnehmende mit Tokens (fest)
+ remove_before_upload: Wenn Sie eine neue Zählung hochladen möchten, müssen Sie zuerst die bestehende entfernen.
+ upload_file: Datei hochladen
+ upload_new_census: CSV-Datei hochladen
token_csv_form:
email: E-Mail
+ email_placeholder: Geben Sie die E-Mail-Adresse der abstimmenden Person ein
+ invalid: Die E-Mail-Adresse oder das Token ist ungültig. Bitte überprüfen Sie Ihre Angaben und versuchen Sie es erneut.
+ token: Token
+ token_placeholder: Geben Sie das Token der abstimmenden Person ein
elections:
count:
elections_count:
one: "%{count} Wahlen"
other: "%{count} Wahlen"
+ elections:
+ empty: Es sind keine Wahlen verfügbar.
+ empty_filters: Es gibt keine Wahlen, die Ihren Filtern entsprechen.
filters:
all: Alle
state: Status
state_values:
finished: Abgeschlossen
ongoing: Aktuell
+ scheduled: Geplant
orders:
+ end_at: Enddatum
+ label: Sortieren nach
recent: Kürzlich hinzugefügt
+ start_at: Startdatum
questions:
+ subtitle: 'Dies sind die Fragen für diesen Abstimmungsprozess:'
title: Wahlfragen
show:
+ active_voting_until: 'Abstimmung aktiv bis: %{end_date}'
+ edit_vote_button: Stimme bearbeiten
vote_button: Abstimmung
+ voted: Sie haben bereits abgestimmt. Sie können erneut abstimmen, wobei nur Ihre letzte Stimme gezählt wird.
+ votes_count:
+ one: 1 vote
+ other: "%{count} Stimmen"
+ voting_began: 'Abstimmung begonnen am: %{start_date}'
vote_results:
+ subtitle:
+ after_end: Die Wahl ist beendet. Sie können nun die Ergebnisse einsehen.
+ per_question: Die Ergebnisse sind pro Frage verfügbar. Sie können die Ergebnisse für jede Frage einsehen, sobald die Abstimmung aktiviert und die Ergebnisse veröffentlicht wurden.
+ real_time: Die Ergebnisse sind in Echtzeit verfügbar. Sie können die Ergebnisse einsehen, während die Abstimmung läuft.
title: Resultate
+ total: 'GESAMT:'
+ total_votes:
+ one: 1 vote
+ other: "%{count} votes"
models:
election:
fields:
census: Erhebung
+ end_at: Endzeit
+ start_at: Startzeit
status: Status
title: Titel
+ per_question_votes:
+ waiting:
+ description: Sie können hier warten, bis die nächste Frage verfügbar ist. Sobald sie bereit ist, werden Sie automatisch zur nächsten Frage weitergeleitet.
+ edit_vote: Ihre Stimme bearbeiten
+ exit_button: Warteraum verlassen
+ title: Warten auf die nächste Frage
status:
active: Aktiv
finished: Abgeschlossen
not_started: Nicht begonnen
ongoing: Aktuell
+ published_results: Veröffentlichte Ergebnisse
+ scheduled: Geplant
unpublished: Nicht veröffentlicht
+ voting_enabled: Abstimmung läuft
votes:
+ cast:
+ invalid: Beim Abgeben Ihrer Stimme ist ein Fehler aufgetreten. Bitte überprüfen Sie Ihre Angaben und versuchen Sie es erneut.
+ success: Ihre Stimme wurde erfolgreich abgegeben.
+ check_census:
+ access: Zugriff
+ election_not_open: Die Wahl ist noch nicht geöffnet. Bitte überprüfen Sie die Termine und versuchen Sie es erneut.
+ failed: Ihre Identität konnte nicht verifiziert werden. Bitte überprüfen Sie Ihre Angaben und versuchen Sie es erneut.
+ form_title: Verifizieren Sie Ihre Identität
+ invalid: Person nicht in der Zählung gefunden.
confirm:
+ cast_vote: Stimme abgeben
+ edit_vote: Ihre Stimme bearbeiten
+ not_answered: Sie haben diese Frage nicht beantwortet.
title: Bestätige deine Stimme
+ not_authorized: Sie sind nicht berechtigt, an dieser Wahl teilzunehmen.
question:
back: Zurück
+ cast_vote: Stimme abgeben
next: Weiter
+ receipt:
+ description: Solange die Abstimmung geöffnet ist, können Sie jederzeit erneut abstimmen. Ihre vorherige Stimme wird dabei durch die neue ersetzt.
+ edit_vote: Ihre Stimme bearbeiten
+ exit_button: Wahlkabine verlassen
+ title: Ihre Stimmen wurden erfolgreich abgegeben
+ metadata:
+ progress:
+ published_results: 'Ergebnisse veröffentlicht: %{end_date}'
statistics:
elections_count: Wahlen
layouts:
diff --git a/decidim-elections/config/locales/en.yml b/decidim-elections/config/locales/en.yml
index bc3f4d916f8c9..fdeafa288881d 100644
--- a/decidim-elections/config/locales/en.yml
+++ b/decidim-elections/config/locales/en.yml
@@ -2,6 +2,8 @@
en:
activemodel:
attributes:
+ elections_question:
+ max_choices: Maximum number of choices
token_csv:
file: File
remove_all: Remove all current census data
@@ -101,6 +103,7 @@ en:
start_question_button: Enable voting
title: Results
status:
+ allow_census_check_before_start: Allow users to check if they can vote before the election starts
census: 'Census:'
results_availability:
after_end: Results available after the election ends
@@ -187,6 +190,11 @@ en:
update: "%{user_name} updated the %{resource_name} election in %{space_name}"
question:
update: "%{user_name} updated the questions of the %{resource_name} election"
+ census_checks:
+ show:
+ description: This means that, once the election starts, you can vote in it.
+ exit_button: Exit the census check
+ title: You have been successfully verified
censuses:
census_ready_html: The census data is uploaded and prepared for its use in the %{election_title} election.
census_size_html:
@@ -251,6 +259,8 @@ en:
title: Election questions
show:
active_voting_until: 'Active voting until: %{end_date}'
+ check_census_button: Check if I can vote
+ check_census_explanation: This election has not started yet, but you can check if you are included in the census.
edit_vote_button: Edit vote
vote_button: Vote
voted: You have already voted. You can vote again, only your last vote will be counted.
@@ -310,6 +320,9 @@ en:
question:
back: Back
cast_vote: Cast vote
+ max_choices: 'Max choices: %{count}'
+ max_choices_alert: You have selected too many options. Please deselect some to continue.
+ max_choices_exceeded: You cannot select more than %{max} options. Please go back and adjust your selection.
next: Next
receipt:
description: You can vote again at any time while the voting period is open. Your previous vote will be overwritten by the new one.
diff --git a/decidim-elections/config/locales/es.yml b/decidim-elections/config/locales/es.yml
index e4f4064882c2a..d6a036ec22b3d 100644
--- a/decidim-elections/config/locales/es.yml
+++ b/decidim-elections/config/locales/es.yml
@@ -2,6 +2,8 @@
es:
activemodel:
attributes:
+ elections_question:
+ max_choices: Número máximo de opciones
token_csv:
file: Archivo
remove_all: Eliminar todos los datos del censo actual
@@ -35,8 +37,8 @@ es:
announcement: Aviso
elections:
actions:
- confirm_delete_election: '¿Seguro que quieres eliminar esta elección?'
- confirm_unpublish_election: '¿Seguro que quieres eliminar esta elección?'
+ confirm_delete_election: "¿Seguro que quieres eliminar esta elección?"
+ confirm_unpublish_election: "¿Seguro que quieres eliminar esta elección?"
deleted_election_info: Las elecciones eliminadas no se muestran en la lista. Puedes verlas haciendo clic en el botón "Ver las elecciones eliminadas" que encontrarás más abajo.
edit: Editar la elección
new: Nueva elección
@@ -76,7 +78,7 @@ es:
results: Disponibilidad de los resultados
title: Título
title: Principal
- publish_confirm: '¿Seguro que quieres publicar esta elección?'
+ publish_confirm: "¿Seguro que quieres publicar esta elección?"
questions:
labels:
answers: Respuestas
@@ -101,6 +103,7 @@ es:
start_question_button: Activar la votación
title: Resultados
status:
+ allow_census_check_before_start: Permitir que las usuarias comprueben si pueden votar antes de que empiece la elección
census: 'Censo:'
results_availability:
after_end: Resultados disponibles tras la finalización de las elecciones
@@ -154,7 +157,7 @@ es:
questions:
edit_questions:
new_question: Nueva pregunta
- remove_question_confirm: '¿Está seguro de que desea eliminar esta pregunta?'
+ remove_question_confirm: "¿Está seguro de que desea eliminar esta pregunta?"
title: Preguntas
form:
errors:
@@ -179,24 +182,30 @@ es:
unknown: Estado desconocido
admin_log:
election:
- create: "%{user_name} ha creado la elección \"%{resource_name}\" en %{space_name}"
- publish: "%{user_name} publicó la elección \"%{resource_name}\" en %{space_name}"
- restore: "%{user_name} restauró la elección \"%{resource_name}\" en %{space_name}"
- soft_delete: "%{user_name} ha movido la elección \"%{resource_name}\" de %{space_name} a la papelera"
- unpublish: "%{user_name} despublicó la elección \"%{resource_name}\" en %{space_name}"
- update: "%{user_name} ha actualizado la elección \"%{resource_name}\" de %{space_name}"
+ create: '%{user_name} ha creado la elección "%{resource_name}" en %{space_name}'
+ publish: '%{user_name} publicó la elección "%{resource_name}" en %{space_name}'
+ restore: '%{user_name} restauró la elección "%{resource_name}" en %{space_name}'
+ soft_delete: '%{user_name} ha movido la elección "%{resource_name}" de %{space_name} a la papelera'
+ unpublish: '%{user_name} despublicó la elección "%{resource_name}" en %{space_name}'
+ update: '%{user_name} ha actualizado la elección "%{resource_name}" de %{space_name}'
question:
- update: "%{user_name} actualizó las preguntas de la elección \"%{resource_name}\""
+ update: '%{user_name} actualizó las preguntas de la elección "%{resource_name}"'
+ census_checks:
+ show:
+ description: Esto significa que, una vez que empiece la elección, podrás votar en ella.
+ exit_button: Salir de la comprobación del censo
+ title: Te has verificado correctamente
censuses:
census_ready_html: Se han cargado los datos censales y están listos para su uso en la elección "%{election_title}".
census_size_html:
one: Actualmente hay 1 persona con derecho a voto en estas elecciones (esto podría cambiar en un censo dinámico).
other: Actualmente hay %{count} personas con derecho a voto en estas elecciones (esto podría cambiar en un censo dinámico).
internal_users:
- already_have_an_account?: '¿Ya tienes una cuenta?'
- are_you_new?: '¿Aún no eres participante?'
- info_html: |
- Puedes restringir la participación en la elección a las participantes que tengan una autorización. Ten en cuenta que las participantes obtener la autorización seleccionada para poder votar. Si dejas todas las casillas de verificación vacías, cualquier persona registrada podrá votar.
+ already_have_an_account?: "¿Ya tienes una cuenta?"
+ are_you_new?: "¿Aún no eres participante?"
+ info_html: 'Puedes restringir la participación en la elección a las participantes que tengan una autorización. Ten en cuenta que las participantes obtener la autorización seleccionada para poder votar. Si dejas todas las casillas de verificación vacías, cualquier persona registrada podrá votar.
+
+ '
internal_type_title: Autorizaciones adicionales requeridas para votar (opcional)
label: Participantes registradas (dinámico)
sign_in_description: Inicia tu sesión para votar en estas elecciones
@@ -212,8 +221,9 @@ es:
email;token
user@example.org;123456
user2@example.org;ABCXYZ
- info_html: |
- Debe ser un archivo en formato CSV con solo dos columnas, una con la dirección de correo electrónico y otra con el valor del autentificador (token). Los campos deben estar separados con punto y coma (;).
+ info_html: 'Debe ser un archivo en formato CSV con solo dos columnas, una con la dirección de correo electrónico y otra con el valor del autentificador (token). Los campos deben estar separados con punto y coma (;).
+
+ '
label: Participantes no registrados con autentificador/token (fijado)
remove_before_upload: Si quieres subir un nuevo censo, primero tienes que eliminar el que ya existe.
upload_file: Subir un archivo
@@ -249,13 +259,15 @@ es:
title: Preguntas de la elección
show:
active_voting_until: 'Votación activa hasta: %{end_date}'
+ check_census_button: Comprobar si puedo votar
+ check_census_explanation: Esta elección todavía no ha empezado, pero puedes comprobar si estás incluida en el censo.
edit_vote_button: Editar el voto
vote_button: Votar
voted: Ya has votado. Puedes votar de nuevo, esto borrará tu voto anterior y, solo se contará tu última votación.
votes_count:
one: 1 voto
other: "%{count} votos"
- voting_began: 'La votación empezó el %{start_date}'
+ voting_began: La votación empezó el %{start_date}
vote_results:
subtitle:
after_end: Las elecciones han terminado. Ahora puedes ver los resultados.
@@ -308,6 +320,9 @@ es:
question:
back: Volver
cast_vote: Enviar el voto
+ max_choices: 'Máximo de opciones: %{count}'
+ max_choices_alert: Has seleccionado demasiadas opciones. Por favor, desmarca algunas para continuar.
+ max_choices_exceeded: No puedes seleccionar más de %{max} opciones. Vuelve atrás y ajusta tu selección.
next: Siguiente
receipt:
description: Puedes votar de nuevo en cualquier momento mientras el período de votación esté abierto. Tu voto anterior será sustituido por el nuevo.
diff --git a/decidim-elections/config/locales/eu.yml b/decidim-elections/config/locales/eu.yml
index 175fd7ecc63af..69d06f57b1167 100644
--- a/decidim-elections/config/locales/eu.yml
+++ b/decidim-elections/config/locales/eu.yml
@@ -36,13 +36,13 @@ eu:
elections:
actions:
confirm_delete_election: Ziur zaude hauteskundea hau ezabatu nahi duzula?
- confirm_unpublish_election: Ziur zaude bozketa hau despublikatu nahi duzula?
+ confirm_unpublish_election: Ziur zaude bozketa hau desargitaratu nahi duzula?
deleted_election_info: Ezabatutako hauteskundeak ez dira agertzen zerrendan. Beheko botoia sakatuz ikus ditzakezu.
edit: Editatu hauteskundea
new: Beste hauteskunde bat
preview: Aurrebistaratu
title: Ekintzak
- view: Hauteskundeak ikusi
+ view: Ikusi hauteskundeak
view_deleted_elections: Ikusi ezabatutako hauteskundeak
admin:
census:
@@ -86,7 +86,7 @@ eu:
answer: Erantzunak
percentage: Ehunekoa
total: Guztira
- votes: Babesak
+ votes: Botoak
votes_count:
one: Boto 1
other: "%{count} boto"
@@ -95,7 +95,7 @@ eu:
per_question_waiting: Oraindik ez dago botoa emateko aukerarik. Parte-hartzaileek mezu bat ikusiko dute "Hurrengo galderaren zain", gutxienez bat aktibatu arte.
publish_button: Argitaratu emaitzak
results_availability:
- after_end: Emaitza guztik argitaratu ditzakezu bozketa amaitu ondoren. Emaitzak ezkutuan egongo dira eskuz argitaratu arte.
+ after_end: Emaitza guztiak argitaratu ditzakezu hauteskundea amaitu ondoren. Emaitzak ezkutuan egongo dira eskuz argitaratu arte.
per_question: Aukera eman behar duzu botoa emateko eta eskuz argitaratzeko galdera bakoitzaren emaitzak.
real_time: Emaitzak automatikoki erakusten dira bozketa bitartean.
start_question_button: Botoa eman daiteke
@@ -119,7 +119,7 @@ eu:
form:
add_images: Irudiak gehitu
attachment_legend: Gehitu irudi-galeria bat (aukerakoa)
- basic_title: Oinarrizko infoa
+ basic_title: Oinarrizko informazioa
calendar: Egutegia
calendar_description: Egiaztatu ordutegi-eremua egokia dela antolamenduaren konfigurazioan. Egungo konfigurazioa da %{timezone}.
edit_attachments: Editatu eranskinak
@@ -146,8 +146,8 @@ eu:
invalid: Arazo bat egon da hauteskundea argitaratzean.
success: Hauteskundea zuzen argitaratua.
unpublish:
- invalid: Arazo bat egon da hauteskundea despublikatzean.
- success: Hauteskundea zuzen despublikatua.
+ invalid: Arazo bat egon da hauteskundea desargitaratzean.
+ success: Hauteskundea behar bezala desargitaratu da.
update:
invalid: Arazo bat egon da hauteskundea eguneratzean.
success: Hauteskundea zuzen eguneratua.
@@ -162,11 +162,11 @@ eu:
form_description: Galderak gutxienez erantzuteko aukera bi eduki behar ditu, hurrengo urratsera pasatzeko.
update:
invalid: Arazo bat egon da galderak eguneratzean.
- success: Galderak zuzen egiuneratu dira.
+ success: Galderak behar bezala eguneratu dira.
statuses:
enable_voting:
invalid: Arazo bat egon da bozketa gaitzean.
- success: Bozketa zuzen gaitua.
+ success: Bozketa behar bezala gaitu da.
end:
invalid: Arazo bat egon da bozketa hau amaitzean.
success: Aukeraketa zuzen amaitua.
@@ -183,15 +183,15 @@ eu:
publish: "%{user_name} parte-hartzaileak %{resource_name} hauteskundea argitaratu du %{space_name} espazioan"
restore: "%{user_name} parte-hartzaileak %{resource_name} hauteskundea berreskuratu du %{space_name} espazioan"
soft_delete: "%{user_name} parte-hartzaileak %{resource_name} hauteskundea %{space_name} espazioan zaborretara eraman du"
- unpublish: "%{user_name} parte-hartzaileak %{resource_name} hauteskundea despublikatu du %{space_name} espazioan"
+ unpublish: "%{user_name} parte-hartzaileak %{resource_name} hauteskundea desargitaratu du %{space_name} espazioan"
update: "%{user_name} parte-hartzaileak %{resource_name} hauteskundea eguneratu du %{space_name} espazioan"
question:
update: "%{user_name} parte-hartzaileak eguneratu ditu %{resource_name} aukerako galderak"
censuses:
- census_ready_html: Erroldako datuak kargatuta daude eta prest daude % %{election_title}{@eleccion_title} bozketan erabiltzeko.
+ census_ready_html: Erroldako datuak kargatuta eta prest daude % {eleccion_title} bozketan erabiltzeko.
census_size_html:
- one: Gaur egun bat pertsona dago hautesleku honetan botoa jasotzeko gai dena (hau errolda dinamiko batean alda daiteke).
- other: Gaur egun bat pertsona daude hautesleku honetan botoa jasotzeko gai deirnak (hau errolda dinamiko batean alda daiteke).
+ one: Gaur egun 1 pertsonak du botoa emateko eskubidea hauteskunde honetan (errolda dinamikoa bada kopurua alda daiteke).
+ other: Gaur egun %{count} pertsonak dute botoa emateko eskubidea hauteskunde honetan (errolda dinamikoa bada kopurua alda daiteke).
internal_users:
already_have_an_account?: Baduzu kontu bat?
are_you_new?: Beste parte-hartzaile bat?
@@ -210,7 +210,7 @@ eu:
verify_with_method: Egiaztatu %{name} izenaz
token_csv:
example: |
- e-maila:
+ e-maila:
user@example.org;123456
user2@example.org;ABCXYZ
info_html: |
@@ -222,10 +222,10 @@ eu:
upload_new_census: Igo CSV fitxategia
token_csv_form:
email: Helbide elektronikoa
- email_placeholder: Sartu hauteslearen helbide elektronikoa
+ email_placeholder: Boto-emailearen helbide elektronikoa sartu
invalid: Posta elektronikoa edo fitxa ez da baliozkoa. Mesedez, begiratu xehetasunak eta saiatu berriro.
token: Identifikatzailea
- token_placeholder: Sartu boto-emalearen identifikatzailea
+ token_placeholder: Boto-emailearen tokena sartu
elections:
count:
elections_count:
@@ -233,7 +233,7 @@ eu:
other: "Bozketa %{count}"
elections:
empty: Ez dago bozketa eskuragarri.
- empty_filters: Ez dago zure irgazkiekin bat datorren bozketarik.
+ empty_filters: Ez dago zure iragazkiekin bat datorren hauteskunderik.
filters:
all: Guztiak
state: Egoera
@@ -252,22 +252,22 @@ eu:
show:
active_voting_until: 'Bozketa aktibo %{end_date} arte'
edit_vote_button: Editatu botoak
- vote_button: Eman babesa
+ vote_button: Botoa eman
voted: Bozkatu duzu. Berriz bozkatu dezakezu, zure azken botoa baino ez da kontuan hartuko.
votes_count:
- one: 1 boto
+ one: Boto 1
other: "%{count} boto"
voting_began: 'Bozketa hasi zen: %{start_date}'
vote_results:
subtitle:
after_end: Aukeraketa amaitu egin da. Emaitzak ikus ditzakezu.
- per_question: Emaitzak kontsulta daitezke galderaren arabera. Galdera bakoitzaren emaitzak ikus ditzakezu botoa eman eta emaitzak argitaratu ondoren.
+ per_question: Emaitzak galdera bakoitzeko daude eskuragarri. Galdera bakoitzaren emaitzak ikus ditzakezu bozketa gaitu eta emaitzak argitaratu ondoren.
real_time: Emaitzak denbora errealean daude eskuragarri. Emaitzak ikus ditzakezu bozketa egiten den bitartean.
title: Emaitzak
total: 'GUZTIRA:'
total_votes:
one: Bozka 1
- other: "%{count} bozka"
+ other: "%{count} boto"
models:
election:
fields:
@@ -300,20 +300,20 @@ eu:
election_not_open: Aukeraketa oraindik ez dago zabalik. Mesedez, begiratu datak eta saiatu berriro.
failed: Zure nortasuna ezin izan da egiaztatu. Mesedez, begiratu emandako informazioa eta saiatu berriro.
form_title: Zure nortasuna egiaztatu
- invalid: Erabiltzailea ez dago erroldan.
+ invalid: Parte-hartzailea ez dago erroldan.
confirm:
- cast_vote: Eman botoa
- edit_vote: Editatu zure botoa
+ cast_vote: Botoa eman
+ edit_vote: Zure botoa editau
not_answered: Ez duzu erantzun galdera hau.
- title: Baieztatu babesa
+ title: Botota baieztatu
not_authorized: Ez duzu baimenik aukeraketa honetan bozkatzeko.
question:
back: Atzera
- cast_vote: Eman botoa
+ cast_vote: Botoa eman
next: Hurrengoa
receipt:
description: Bozkatzeko epea zabalik dagoen bitartean edozein unetan eman daiteke berriro botoa. Zure aurreko botoa berriaz gainidatziko da.
- edit_vote: Zure botoa editau
+ edit_vote: Zure botoa editatu
exit_button: Irten bozkatzeko kabinatik
title: Zure botoak zuzen eman dira
metadata:
diff --git a/decidim-elections/config/locales/fr-CA.yml b/decidim-elections/config/locales/fr-CA.yml
index a611c8bf34c9d..053a69b5e92db 100644
--- a/decidim-elections/config/locales/fr-CA.yml
+++ b/decidim-elections/config/locales/fr-CA.yml
@@ -150,6 +150,7 @@ fr-CA:
statuses:
publish_results:
invalid: Un problème est survenu lors de la publication des résultats.
+ success: Résultats publiés avec succès.
unknown: État Inconnu
admin_log:
election:
diff --git a/decidim-elections/config/locales/fr.yml b/decidim-elections/config/locales/fr.yml
index 1760bf989b82e..97b9f385cb4be 100644
--- a/decidim-elections/config/locales/fr.yml
+++ b/decidim-elections/config/locales/fr.yml
@@ -36,6 +36,7 @@ fr:
elections:
actions:
confirm_delete_election: Êtes-vous sûr(e) de vouloir supprimer cette élection ?
+ confirm_unpublish_election: Êtes-vous sûr de vouloir annuler la publication de cette élection ?
deleted_election_info: Les élections supprimées ne sont pas affichées dans la liste. Vous pouvez les voir en cliquant sur le bouton ci-dessous.
edit: Modifier l'élection
new: Nouvelle élection
@@ -59,8 +60,10 @@ fr:
dashboard:
calendar:
end_at: 'Heure de fin:'
+ end_election: Clôturer l'élection
published_results_at: Résultats publiés à
start_at: 'Heure de début:'
+ start_election: Lancer l'élection
title: Calendrier
census:
title: Recensement
@@ -86,7 +89,13 @@ fr:
other: "%{count} votes"
results:
not_started: L'élection n'a pas encore commencé.
+ per_question_waiting: Le vote n'est pour l'instant activé pour aucune question. Les participants verront s'afficher le message « En attente de la prochaine question » jusqu'à ce qu'au moins une soit activée.
publish_button: Publier les résultats
+ results_availability:
+ after_end: Vous pouvez publier tous les résultats une fois l'élection terminée. Les résultats resteront masqués jusqu'à ce que vous les publiiez manuellement.
+ per_question: Vous devez activer le vote et publier manuellement les résultats pour chaque question séparément.
+ real_time: Les résultats s'affichent automatiquement pendant l'élection.
+ start_question_button: Activer le vote
title: Résultats
status:
census: 'Recensement:'
@@ -109,14 +118,18 @@ fr:
attachment_legend: Ajouter une galerie d'images (facultatif)
basic_title: Informations de base
calendar: Calendrier
+ calendar_description: Vérifiez que le fuseau horaire de l'organisation est correct dans les paramètres de l'organisation. La configuration actuelle est %{timezone}.
edit_attachments: Modifier les pièces jointes
end_at: Heure de fin
manual_start: Démarrage manuel
publish: Publier
results_availability:
after_end: Après la fin des élections
+ after_end_help: publier les résultats une fois l'élection terminée
per_question: Question par question
+ per_question_help: gérer manuellement le vote et publier les résultats pour chaque question
real_time: Temps réel
+ real_time_help: publier automatiquement les résultats pendant l'élection au moment du vote
title: Disponibilité des résultats
save: Enregistrer et continuer
start_at: Heure de début
@@ -148,8 +161,18 @@ fr:
invalid: Une erreur s'est produite lors de la mise à jour des questions.
success: Questions mises à jour avec succès.
statuses:
+ enable_voting:
+ invalid: Un problème est survenu lors de l'activation du vote.
+ success: Vote activé avec succès.
+ end:
+ invalid: Un problème est survenu lors de la clôture de l'élection.
+ success: L'élection a été clôturée avec succès.
publish_results:
invalid: Un problème est survenu lors de la publication des résultats.
+ success: Résultats publiés avec succès.
+ start:
+ invalid: Un problème est survenu lors du démarrage de l'élection.
+ success: Élection démarrée avec succès.
unknown: État Inconnu
admin_log:
election:
@@ -256,6 +279,7 @@ fr:
ongoing: En cours
published_results: Résultats publiés
unpublished: Non publié
+ voting_enabled: Vote en cours
votes:
cast:
invalid: Il y a eu un problème lors de votre vote. Veuillez vérifier les informations que vous avez fournies et réessayer.
@@ -290,3 +314,6 @@ fr:
decidim:
election_votes_header:
exit: Fermer
+ time:
+ formats:
+ short_with_time: "%b %-d, %Y, %-I:%M %p"
diff --git a/decidim-elections/db/migrate/20251007113417_add_max_choices_to_decidim_elections_questions.rb b/decidim-elections/db/migrate/20251007113417_add_max_choices_to_decidim_elections_questions.rb
new file mode 100644
index 0000000000000..4e2d8aadcac24
--- /dev/null
+++ b/decidim-elections/db/migrate/20251007113417_add_max_choices_to_decidim_elections_questions.rb
@@ -0,0 +1,7 @@
+# frozen_string_literal: true
+
+class AddMaxChoicesToDecidimElectionsQuestions < ActiveRecord::Migration[7.2]
+ def change
+ add_column :decidim_elections_questions, :max_choices, :integer
+ end
+end
diff --git a/decidim-elections/db/migrate/20251020130630_add_allow_census_check_before_start_to_decidim_elections_elections.rb b/decidim-elections/db/migrate/20251020130630_add_allow_census_check_before_start_to_decidim_elections_elections.rb
new file mode 100644
index 0000000000000..354a9dba62227
--- /dev/null
+++ b/decidim-elections/db/migrate/20251020130630_add_allow_census_check_before_start_to_decidim_elections_elections.rb
@@ -0,0 +1,7 @@
+# frozen_string_literal: true
+
+class AddAllowCensusCheckBeforeStartToDecidimElectionsElections < ActiveRecord::Migration[7.0]
+ def change
+ add_column :decidim_elections_elections, :allow_census_check_before_start, :boolean, default: false, null: false
+ end
+end
diff --git a/decidim-elections/lib/decidim/elections/admin_engine.rb b/decidim-elections/lib/decidim/elections/admin_engine.rb
index c58193fe20f55..edd00079d286c 100644
--- a/decidim-elections/lib/decidim/elections/admin_engine.rb
+++ b/decidim-elections/lib/decidim/elections/admin_engine.rb
@@ -19,6 +19,7 @@ class AdminEngine < ::Rails::Engine
patch :soft_delete
patch :restore
put :update_status
+ patch :toggle_census_check
get "edit_questions", to: "questions#edit_questions"
put "update_questions", to: "questions#update"
diff --git a/decidim-elections/lib/decidim/elections/engine.rb b/decidim-elections/lib/decidim/elections/engine.rb
index bd94df98ad746..16e6480196764 100644
--- a/decidim-elections/lib/decidim/elections/engine.rb
+++ b/decidim-elections/lib/decidim/elections/engine.rb
@@ -7,6 +7,7 @@ class Engine < ::Rails::Engine
routes do
resources :elections, except: [:destroy] do
+ resource :census_check, only: [:new, :create, :show], controller: :census_checks
resources :votes, except: [:edit, :destroy] do
collection do
get :confirm
diff --git a/decidim-elections/lib/decidim/elections/test/factories.rb b/decidim-elections/lib/decidim/elections/test/factories.rb
index 50ae7c6bd5cac..c50e57fc0fe00 100644
--- a/decidim-elections/lib/decidim/elections/test/factories.rb
+++ b/decidim-elections/lib/decidim/elections/test/factories.rb
@@ -69,8 +69,8 @@
end
trait :with_questions do
- after :create do |election, _evaluator|
- create_list(:election_question, 2, :with_response_options, :voting_enabled, election:)
+ after :create do |election, evaluator|
+ create_list(:election_question, 2, :with_response_options, :voting_enabled, election:, skip_injection: evaluator.skip_injection)
end
end
@@ -95,8 +95,12 @@
end
factory :election_question, class: "Decidim::Elections::Question" do
+ transient do
+ skip_injection { false }
+ end
+
association :election
- body { generate_localized_title(:question_body) }
+ body { generate_localized_title(:question_body, skip_injection:) }
description { generate_localized_description(:question_description) }
question_type { "multiple_option" }
sequence(:position) { |n| n }
diff --git a/decidim-elections/lib/decidim/elections/version.rb b/decidim-elections/lib/decidim/elections/version.rb
index 784175cc4af25..22728adc7df45 100644
--- a/decidim-elections/lib/decidim/elections/version.rb
+++ b/decidim-elections/lib/decidim/elections/version.rb
@@ -3,7 +3,7 @@
module Decidim
module Elections
def self.version
- "0.31.4"
+ "0.31.7"
end
end
end
diff --git a/decidim-elections/spec/commands/decidim/elections/admin/create_election_spec.rb b/decidim-elections/spec/commands/decidim/elections/admin/create_election_spec.rb
index 50fcb122e611b..3d3a79f5d45f7 100644
--- a/decidim-elections/spec/commands/decidim/elections/admin/create_election_spec.rb
+++ b/decidim-elections/spec/commands/decidim/elections/admin/create_election_spec.rb
@@ -17,8 +17,8 @@ module Admin
let(:start_at) { 1.day.from_now }
let(:end_at) { 2.days.from_now }
let(:manual_start) { false }
- let(:uploaded_photos) { [] }
- let(:photos) { [] }
+ let(:uploaded_attachments) { [] }
+ let(:attachments) { [] }
let(:invalid) { false }
let(:form) do
@@ -34,8 +34,8 @@ module Admin
end_at:,
manual_start:,
results_availability: "after_end",
- photos:,
- add_photos: uploaded_photos
+ attachments:,
+ add_attachments: uploaded_attachments
)
end
diff --git a/decidim-elections/spec/commands/decidim/elections/admin/update_election_spec.rb b/decidim-elections/spec/commands/decidim/elections/admin/update_election_spec.rb
index a1431b9a9f919..c4c3c27ac8e45 100644
--- a/decidim-elections/spec/commands/decidim/elections/admin/update_election_spec.rb
+++ b/decidim-elections/spec/commands/decidim/elections/admin/update_election_spec.rb
@@ -19,8 +19,8 @@ module Admin
let(:start_at) { 1.day.from_now }
let(:end_at) { 2.days.from_now }
let(:manual_start) { false }
- let(:uploaded_photos) { [] }
- let(:current_photos) { [] }
+ let(:uploaded_attachments) { [] }
+ let(:current_attachments) { [] }
let(:invalid) { false }
let(:form) do
@@ -35,8 +35,8 @@ module Admin
end_at:,
manual_start:,
results_availability: "after_end",
- photos: current_photos,
- add_photos: uploaded_photos
+ attachments: current_attachments,
+ add_attachments: uploaded_attachments
)
end
diff --git a/decidim-elections/spec/commands/decidim/elections/admin/update_questions_spec.rb b/decidim-elections/spec/commands/decidim/elections/admin/update_questions_spec.rb
index 4d0d6369ec37b..b1d35796b0490 100644
--- a/decidim-elections/spec/commands/decidim/elections/admin/update_questions_spec.rb
+++ b/decidim-elections/spec/commands/decidim/elections/admin/update_questions_spec.rb
@@ -190,6 +190,67 @@ module Admin
end
end
+ context "when updating max_choices" do
+ let(:update_max_choices_params) do
+ {
+ "questions" => [
+ {
+ "id" => first_question.id,
+ "body" => first_question.body,
+ "description" => first_question.description,
+ "question_type" => "multiple_option",
+ "max_choices" => 2,
+ "response_options" => [
+ { "id" => first_question_first_option.id, "body" => first_question_first_option.body },
+ { "id" => first_question_second_option.id, "body" => first_question_second_option.body }
+ ]
+ }
+ ]
+ }
+ end
+
+ let(:form) { Decidim::Elections::Admin::QuestionsForm.from_params(update_max_choices_params).with_context(context_params) }
+ let(:command) { described_class.new(form, election) }
+
+ it "updates max_choices field" do
+ command.call
+ updated = election.reload.questions.find_by(id: first_question.id)
+ expect(updated.max_choices).to eq(2)
+ end
+ end
+
+ context "when adding a new question with max_choices" do
+ let(:add_with_max_choices_params) do
+ {
+ "questions" => [
+ {
+ "body" => { en: "Q with max choices" },
+ "description" => { en: "Description" },
+ "question_type" => "multiple_option",
+ "max_choices" => 3,
+ "response_options" => [
+ { "body" => { en: "Option 1" } },
+ { "body" => { en: "Option 2" } },
+ { "body" => { en: "Option 3" } },
+ { "body" => { en: "Option 4" } }
+ ]
+ }
+ ]
+ }
+ end
+
+ let(:form) { Decidim::Elections::Admin::QuestionsForm.from_params(add_with_max_choices_params).with_context(context_params) }
+ let(:command) { described_class.new(form, election) }
+
+ it "creates a new question with max_choices" do
+ expect { command.call }
+ .to change { election.reload.questions.count }.by(1)
+ new_question = election.reload.questions.last
+ expect(new_question.max_choices).to eq(3)
+ expect(new_question.response_options.size).to eq(4)
+ end
+ end
+
context "when updating, deleting, and adding at once" do
let(:combo_params) do
{
diff --git a/decidim-elections/spec/controllers/decidim/elections/admin/elections_controller_spec.rb b/decidim-elections/spec/controllers/decidim/elections/admin/elections_controller_spec.rb
index 44f37ec769ed2..d864bc6608892 100644
--- a/decidim-elections/spec/controllers/decidim/elections/admin/elections_controller_spec.rb
+++ b/decidim-elections/spec/controllers/decidim/elections/admin/elections_controller_spec.rb
@@ -176,6 +176,34 @@ def dashboard_path(election)
end
end
+ describe "PATCH #toggle_census_check" do
+ it "updates the setting and returns JSON" do
+ expect(election.allow_census_check_before_start).to be(false)
+
+ patch :toggle_census_check, params: { id: election.id, allow_census_check_before_start: true }, format: :json
+
+ expect(response).to have_http_status(:ok)
+ expect(JSON.parse(response.body)).to include(
+ "success" => true,
+ "allow_census_check_before_start" => true
+ )
+ expect(election.reload.allow_census_check_before_start).to be(true)
+ end
+
+ it "returns error on invalid update" do
+ allow(controller).to receive(:election).and_return(election)
+ allow(election).to receive(:update!).and_raise(StandardError, "Database error")
+
+ patch :toggle_census_check, params: { id: election.id, allow_census_check_before_start: true }, format: :json
+
+ expect(response).to have_http_status(:unprocessable_entity)
+ expect(JSON.parse(response.body)).to include(
+ "success" => false,
+ "error" => "Database error"
+ )
+ end
+ end
+
it_behaves_like "a soft-deletable resource",
resource_name: :election,
resource_path: :elections_path,
diff --git a/decidim-elections/spec/controllers/decidim/elections/census_checks_controller_spec.rb b/decidim-elections/spec/controllers/decidim/elections/census_checks_controller_spec.rb
new file mode 100644
index 0000000000000..531918bf2bda7
--- /dev/null
+++ b/decidim-elections/spec/controllers/decidim/elections/census_checks_controller_spec.rb
@@ -0,0 +1,90 @@
+# frozen_string_literal: true
+
+require "spec_helper"
+
+module Decidim
+ module Elections
+ describe CensusChecksController do
+ let(:component) { create(:elections_component) }
+ let(:organization) { component.organization }
+ let(:election) { create(:election, :published, :scheduled, :with_token_csv_census, component:, allow_census_check_before_start: true) }
+ let(:params) { { component_id: component.id, election_id: election.id } }
+ let(:main_proxy) { Decidim::EngineRouter.main_proxy(component) }
+ let(:new_census_check_path) { main_proxy.new_election_census_check_path(election) }
+ let(:census_check_path) { main_proxy.election_census_check_path(election) }
+ let(:election_path) { main_proxy.election_path(election) }
+ let(:voter_data) { election.voters.first.data }
+
+ before do
+ request.env["decidim.current_organization"] = organization
+ request.env["decidim.current_participatory_space"] = component.participatory_space
+ request.env["decidim.current_component"] = component
+ allow(controller).to receive(:current_participatory_space).and_return(component.participatory_space)
+ allow(controller).to receive(:current_component).and_return(component)
+ allow(controller).to receive(:election_census_check_path).and_return(census_check_path)
+ allow(controller).to receive(:new_election_census_check_path).and_return(new_census_check_path)
+ allow(controller).to receive(:election_path).and_return(election_path)
+ end
+
+ describe "GET new" do
+ it "renders the census check form" do
+ get :new, params: params
+
+ expect(response).to have_http_status(:ok)
+ expect(assigns(:form)).to be_present
+ end
+
+ context "when already authenticated" do
+ before do
+ session[:session_attributes] = voter_data.slice("email", "token")
+ end
+
+ it "redirects to the success page" do
+ get :new, params: params
+
+ expect(response).to redirect_to(census_check_path)
+ end
+ end
+ end
+
+ describe "POST create" do
+ it "stores the session attributes and redirects to the success page" do
+ post :create, params: params.merge(token_csv: voter_data.slice("email", "token"))
+
+ expect(session[:session_attributes]).to include(voter_data.slice("email", "token").stringify_keys)
+ expect(response).to redirect_to(census_check_path)
+ end
+
+ it "displays the form when the data is invalid" do
+ post :create, params: params.merge(token_csv: { email: "wrong@example.com", token: "invalid" })
+
+ expect(session[:session_attributes]).to be_blank
+ expect(response).to redirect_to(new_census_check_path)
+ expect(flash[:alert]).to eq(I18n.t("decidim.elections.censuses.token_csv_form.invalid"))
+ end
+ end
+
+ describe "GET show" do
+ it "redirects to the form when the session is not authenticated" do
+ get :show, params: params
+
+ expect(response).to redirect_to(new_census_check_path)
+ expect(flash[:alert]).to eq(I18n.t("decidim.elections.votes.check_census.failed"))
+ end
+
+ context "when the session is authenticated" do
+ before do
+ session[:session_attributes] = voter_data.slice("email", "token")
+ end
+
+ it "renders the success page" do
+ get :show, params: params
+
+ expect(response).to have_http_status(:ok)
+ expect(subject).to render_template(:show)
+ end
+ end
+ end
+ end
+ end
+end
diff --git a/decidim-elections/spec/controllers/decidim/elections/votes_controller_spec.rb b/decidim-elections/spec/controllers/decidim/elections/votes_controller_spec.rb
index 90f97390bdd24..c086c74b3366b 100644
--- a/decidim-elections/spec/controllers/decidim/elections/votes_controller_spec.rb
+++ b/decidim-elections/spec/controllers/decidim/elections/votes_controller_spec.rb
@@ -96,6 +96,56 @@ module Elections
expect(session[:votes_buffer]).to eq({ question.id.to_s => nil, second_question.id.to_s => nil })
expect(response).to redirect_to(confirm_election_votes_path)
end
+
+ context "when question has max_choices limit" do
+ let!(:question_with_limit) do
+ create(:election_question, :voting_enabled, election:, question_type: "multiple_option", max_choices: 2)
+ end
+ let!(:option1) { create(:election_response_option, question: question_with_limit) }
+ let!(:option2) { create(:election_response_option, question: question_with_limit) }
+ let!(:option3) { create(:election_response_option, question: question_with_limit) }
+
+ it "rejects vote when exceeding max_choices" do
+ patch :update, params: params.merge(
+ id: question_with_limit.id,
+ response: {
+ question_with_limit.id.to_s => [option1.id, option2.id, option3.id]
+ }
+ )
+
+ expect(response).to have_http_status(:ok)
+ expect(flash[:alert]).to match(/cannot select more than 2/)
+ expect(subject).to render_template(:show)
+ end
+
+ it "accepts vote when within max_choices limit" do
+ session[:votes_buffer] = { question.id.to_s => nil, second_question.id.to_s => nil }
+
+ patch :update, params: params.merge(
+ id: question_with_limit.id,
+ response: {
+ question_with_limit.id.to_s => [option1.id, option2.id]
+ }
+ )
+
+ expect(session[:votes_buffer][question_with_limit.id.to_s]).to eq([option1.id.to_s, option2.id.to_s])
+ expect(response).to redirect_to(confirm_election_votes_path)
+ end
+
+ it "accepts vote with less than max_choices" do
+ session[:votes_buffer] = { question.id.to_s => nil, second_question.id.to_s => nil }
+
+ patch :update, params: params.merge(
+ id: question_with_limit.id,
+ response: {
+ question_with_limit.id.to_s => [option1.id]
+ }
+ )
+
+ expect(session[:votes_buffer][question_with_limit.id.to_s]).to eq([option1.id.to_s])
+ expect(response).to redirect_to(confirm_election_votes_path)
+ end
+ end
end
end
diff --git a/decidim-elections/spec/forms/decidim/elections/admin/election_form_spec.rb b/decidim-elections/spec/forms/decidim/elections/admin/election_form_spec.rb
index b0fd5459b85ae..e805c8d322bfe 100644
--- a/decidim-elections/spec/forms/decidim/elections/admin/election_form_spec.rb
+++ b/decidim-elections/spec/forms/decidim/elections/admin/election_form_spec.rb
@@ -194,6 +194,34 @@ module Decidim::Elections
it { is_expected.to be_valid }
end
+ context "when editing a published election configured for manual start" do
+ let(:election) { create(:election, :published, component:, start_at: nil, end_at: 4.days.from_now) }
+ let(:manual_start) { true }
+ let(:start_at) { nil }
+
+ context "and end_at is valid (in the future)" do
+ let(:end_at) { 2.days.from_now }
+
+ it { is_expected.to be_valid }
+
+ it "does not validate start_at when it is nil" do
+ expect(subject.valid?).to be true
+ expect(subject.errors[:start_at]).to be_empty
+ end
+ end
+
+ context "and end_at is set in the past" do
+ let(:end_at) { 1.day.ago }
+
+ it { is_expected.not_to be_valid }
+
+ it "still validates end_at to prevent moving the election into a finished state" do
+ subject.valid?
+ expect(subject.errors[:end_at]).not_to be_empty
+ end
+ end
+ end
+
context "when election is not published" do
let(:election) { create(:election, component:, start_at: 3.days.from_now, end_at: 4.days.from_now) }
diff --git a/decidim-elections/spec/forms/decidim/elections/admin/question_form_spec.rb b/decidim-elections/spec/forms/decidim/elections/admin/question_form_spec.rb
index f5a0349884b82..75e3f42235347 100644
--- a/decidim-elections/spec/forms/decidim/elections/admin/question_form_spec.rb
+++ b/decidim-elections/spec/forms/decidim/elections/admin/question_form_spec.rb
@@ -55,6 +55,72 @@ module Admin
it { is_expected.not_to be_valid }
end
+ describe "max_choices validation" do
+ let(:attributes) do
+ {
+ body_en: body_en,
+ description_en: description_en,
+ question_type: question_type,
+ response_options: response_options,
+ max_choices: max_choices
+ }
+ end
+
+ context "when max_choices is valid" do
+ let(:max_choices) { 2 }
+
+ it { is_expected.to be_valid }
+ end
+
+ context "when max_choices is greater than number of options" do
+ let(:max_choices) { 10 }
+
+ it { is_expected.not_to be_valid }
+
+ it "adds an error on max_choices" do
+ subject.valid?
+ expect(subject.errors[:max_choices]).not_to be_empty
+ end
+ end
+
+ context "when max_choices is 1" do
+ let(:max_choices) { 1 }
+
+ it { is_expected.not_to be_valid }
+
+ it "adds an error on max_choices" do
+ subject.valid?
+ expect(subject.errors[:max_choices]).not_to be_empty
+ end
+ end
+
+ context "when max_choices is nil" do
+ let(:max_choices) { nil }
+
+ it { is_expected.to be_valid }
+ end
+
+ context "when max_choices is blank string" do
+ let(:max_choices) { "" }
+
+ it { is_expected.to be_valid }
+ end
+ end
+
+ describe "#number_of_options" do
+ it "returns the count of response options" do
+ expect(subject.number_of_options).to eq(2)
+ end
+
+ context "when there are no response options" do
+ let(:response_options) { {} }
+
+ it "returns 0" do
+ expect(subject.number_of_options).to eq(0)
+ end
+ end
+ end
+
it_behaves_like "form to param", default_id: "questionnaire-question-id"
end
end
diff --git a/decidim-elections/spec/helpers/decidim/elections/application_helper_spec.rb b/decidim-elections/spec/helpers/decidim/elections/application_helper_spec.rb
index 50e226cef44d1..3ee81cb3cd9b6 100644
--- a/decidim-elections/spec/helpers/decidim/elections/application_helper_spec.rb
+++ b/decidim-elections/spec/helpers/decidim/elections/application_helper_spec.rb
@@ -9,7 +9,6 @@ module Elections
before do
allow(helper).to receive(:current_organization).and_return(organization)
- allow(helper).to receive(:rich_text_editor_in_public_views?).and_return(true)
end
describe "#question_description" do
@@ -24,14 +23,14 @@ module Elections
context "when the description has plain text" do
let(:question) { create(:election_question, description: { "en" => "More info" }) }
- it { is_expected.to eq("More info") }
+ it { is_expected.to eq('
More info
') }
end
context "when the description includes markup" do
let(:question) { build(:election_question, description: { "en" => "Intro" }) }
it "keeps the allowed tags" do
- expect(rendered_description).to eq("Intro")
+ expect(rendered_description).to eq('
Intro
')
end
end
diff --git a/decidim-elections/spec/models/decidim/elections/question_spec.rb b/decidim-elections/spec/models/decidim/elections/question_spec.rb
index 3f33d9493f9e4..fad27465bc732 100644
--- a/decidim-elections/spec/models/decidim/elections/question_spec.rb
+++ b/decidim-elections/spec/models/decidim/elections/question_spec.rb
@@ -155,6 +155,22 @@ module Elections
it "returns the count of response options" do
expect(subject.max_votable_options).to eq(2)
end
+
+ context "when max_choices is set" do
+ let(:question) { create(:election_question, :with_response_options, question_type: "multiple_option", max_choices: 1) }
+
+ it "returns the max_choices value" do
+ expect(subject.max_votable_options).to eq(1)
+ end
+ end
+
+ context "when max_choices is nil" do
+ let(:question) { create(:election_question, :with_response_options, question_type: "multiple_option", max_choices: nil) }
+
+ it "returns the count of response options" do
+ expect(subject.max_votable_options).to eq(2)
+ end
+ end
end
end
@@ -182,6 +198,15 @@ module Elections
expect(question.safe_responses(response_ids)).to be_empty
end
end
+
+ context "when max_choices is set" do
+ let(:question) { create(:election_question, :with_response_options, question_type: "multiple_option", max_choices: 1) }
+
+ it "returns only max_choices number of responses" do
+ response_ids = question.response_options.pluck(:id)
+ expect(question.safe_responses(response_ids).count).to eq(1)
+ end
+ end
end
describe "#sibling_questions" do
diff --git a/decidim-elections/spec/permissions/decidim/elections/permissions_spec.rb b/decidim-elections/spec/permissions/decidim/elections/permissions_spec.rb
index 37affd1278d5c..32e72adb9c425 100644
--- a/decidim-elections/spec/permissions/decidim/elections/permissions_spec.rb
+++ b/decidim-elections/spec/permissions/decidim/elections/permissions_spec.rb
@@ -72,4 +72,62 @@
it { is_expected.to be true }
end
end
+
+ context "when creating or reading a census_check" do
+ let(:action) do
+ { scope: :public, action: :create, subject: :census_check }
+ end
+
+ it_behaves_like "permission is not set"
+
+ context "when election is not published" do
+ let(:election) { create(:election, :scheduled, :with_token_csv_census, component:) }
+
+ it_behaves_like "permission is not set"
+
+ context "when user is admin" do
+ let(:user) { create(:user, :admin, organization: component.organization) }
+
+ it { is_expected.to be true }
+ end
+ end
+
+ context "when election is published and scheduled" do
+ let(:election) { create(:election, :published, :scheduled, :with_token_csv_census, component:) }
+
+ context "when allow_census_check_before_start is false" do
+ before do
+ election.update!(allow_census_check_before_start: false)
+ end
+
+ it_behaves_like "permission is not set"
+ end
+
+ context "when allow_census_check_before_start is true" do
+ before do
+ election.update!(allow_census_check_before_start: true)
+ end
+
+ it { is_expected.to be true }
+ end
+ end
+
+ context "when election is published but census is not ready" do
+ let(:election) { create(:election, :published, :scheduled, component:, allow_census_check_before_start: true) }
+
+ it_behaves_like "permission is not set"
+ end
+
+ context "when reading census_check" do
+ let(:action) do
+ { scope: :public, action: :read, subject: :census_check }
+ end
+
+ context "when election is scheduled with census ready and checkbox enabled" do
+ let(:election) { create(:election, :published, :scheduled, :with_token_csv_census, component:, allow_census_check_before_start: true) }
+
+ it { is_expected.to be true }
+ end
+ end
+ end
end
diff --git a/decidim-elections/spec/system/admin/admin_manages_election_questions_spec.rb b/decidim-elections/spec/system/admin/admin_manages_election_questions_spec.rb
index 1966b147cec60..55ce9ad9fe408 100644
--- a/decidim-elections/spec/system/admin/admin_manages_election_questions_spec.rb
+++ b/decidim-elections/spec/system/admin/admin_manages_election_questions_spec.rb
@@ -240,6 +240,74 @@
end
end
+ context "when admin user sets max_choices for multiple_option question" do
+ it "creates a question with max_choices" do
+ visit questions_edit_path
+
+ click_on "Add question"
+ expand_all_questions
+
+ within "form.edit_questions" do
+ within page.all(".questionnaire-question").first do
+ fill_in find_nested_form_field_locator("body_en"), with: "Select up to 2 options"
+ select "Multiple option", from: "Type"
+
+ 3.times { click_on "Add response option" }
+
+ page.all(".questionnaire-question-response-option").each_with_index do |option, idx|
+ within option do
+ fill_in find_nested_form_field_locator("body_en"), with: "Option #{idx + 1}"
+ end
+ end
+
+ select "2", from: "Maximum number of choices"
+ end
+ end
+
+ click_on "Save and continue"
+
+ expect(page).to have_admin_callout("successfully")
+
+ visit questions_edit_path
+ expand_all_questions
+
+ expect(page).to have_css("input[value='Select up to 2 options']")
+ expect(election.questions.last.max_choices).to eq(2)
+ end
+
+ it "updates max_choices on existing question" do
+ question = create(:election_question, :with_response_options,
+ election:,
+ question_type: "multiple_option",
+ max_choices: nil)
+
+ visit questions_edit_path
+ find("#questionnaire_question_#{question.id}-button").click
+
+ within "#accordion-questionnaire_question_#{question.id}-field" do
+ select "2", from: "Maximum number of choices"
+ end
+
+ click_on "Save and continue"
+
+ expect(page).to have_admin_callout("successfully")
+ expect(question.reload.max_choices).to eq(2)
+ end
+
+ it "shows 'Any' option for max_choices when unset" do
+ question = create(:election_question, :with_response_options,
+ election:,
+ question_type: "multiple_option")
+
+ visit questions_edit_path
+ find("#questionnaire_question_#{question.id}-button").click
+
+ within "#accordion-questionnaire_question_#{question.id}-field" do
+ expect(page).to have_select("Maximum number of choices", selected: "Any")
+ end
+ end
+ end
+
private
def find_nested_form_field_locator(attribute, visible: :visible)
diff --git a/decidim-elections/spec/system/admin/admin_manages_elections_spec.rb b/decidim-elections/spec/system/admin/admin_manages_elections_spec.rb
index cd7c83fd53f58..01efd6b7249ad 100644
--- a/decidim-elections/spec/system/admin/admin_manages_elections_spec.rb
+++ b/decidim-elections/spec/system/admin/admin_manages_elections_spec.rb
@@ -145,7 +145,7 @@
expect(page).to have_field("election_end_at_date", disabled: true)
expect(page).to have_field("election_end_at_time", disabled: true)
end
- dynamically_attach_file(:election_photos, Decidim::Dev.asset("city2.jpeg"))
+ dynamically_attach_file(:election_attachments, Decidim::Dev.asset("city2.jpeg"))
click_on "Save and continue"
expect(page).to have_admin_callout "Election updated successfully"
@@ -301,4 +301,79 @@
end
end
end
+
+ context "when the election has an attachment" do
+ let!(:election_with_attachment) do
+ create(:election, component: current_component)
+ end
+
+ let!(:document) { create(:attachment, :with_image, attached_to: election_with_attachment) }
+
+ before do
+ visit_component_admin
+
+ within "tr", text: translated(election_with_attachment.title) do
+ find("button[data-controller='dropdown']").click
+ end
+ end
+
+ it "can remove an attachment" do
+ click_on translated(election_with_attachment.title)
+
+ click_on("Edit attachments")
+
+ within "li[data-filename='#{document.file.blob.filename}']" do
+ click_on("Remove")
+ end
+
+ click_on("Save")
+
+ expect(page).to have_no_css("img[src*='#{document.file.blob.filename}']")
+ end
+
+ it "can attach a file" do
+ click_on translated(election_with_attachment.title)
+
+ click_on("Edit attachments")
+
+ filename = document.file.blob.filename.to_s
+ within ".upload-modal" do
+ find("input[type='file']", visible: :all).attach_file(Decidim::Dev.asset(filename))
+ within "li[data-filename='#{filename}']:not([data-attachment-id])" do
+ expect(page).to have_css("progress[value='100']")
+ end
+ expect(page).to have_css("button[data-dropzone-save]:not([disabled])")
+ click_on("Save")
+ end
+
+ expect(page).to have_no_css(".upload-modal")
+
+ click_on("Save and continue")
+ expect(page).to have_text("Election updated successfully")
+
+ click_on("Main")
+ expect(page).to have_css("img[src*='#{document.file.blob.filename}']")
+ end
+
+ it "can edit an election with an attachment" do
+ click_on translated(election_with_attachment.title)
+
+ expect(page.html).to include(document.file.blob.filename.to_s)
+
+ fill_in_i18n(:election_title, "#election-title-tabs", en: "Updated election title with attachments")
+ click_on "Save and continue"
+
+ expect(page).to have_content "Election updated successfully"
+
+ visit_component_admin
+
+ within "tr", text: "Updated election title with attachments" do
+ find("button[data-controller='dropdown']").click
+ click_on "Edit election"
+ end
+
+ expect(page.html).to include(document.file.blob.filename.to_s)
+ expect(page).to have_field("election_title_en", with: "Updated election title with attachments")
+ end
+ end
end
diff --git a/decidim-elections/spec/system/election_results_spec.rb b/decidim-elections/spec/system/election_results_spec.rb
index 0152090066d0d..db988ea0edb09 100644
--- a/decidim-elections/spec/system/election_results_spec.rb
+++ b/decidim-elections/spec/system/election_results_spec.rb
@@ -4,7 +4,7 @@
require "decidim/elections/test/vote_examples"
describe "Dashboard" do
- let(:election) { create(:election, :published, :ongoing, :real_time, :with_internal_users_census, :with_questions) }
+ let(:election) { create(:election, :published, :ongoing, :real_time, :with_internal_users_census, :with_questions, skip_injection: true) }
let(:question1) { election.questions.first }
let(:question2) { election.questions.second }
let(:option11) { question1.response_options.first }
@@ -79,8 +79,8 @@ def expect_total_votes(question, count)
context "when the election is per question" do
let(:election) { create(:election, :published, :ongoing, :per_question, :with_internal_users_census) }
- let!(:question1) { create(:election_question, :with_response_options, :voting_enabled, election:) }
- let!(:question2) { create(:election_question, :with_response_options, election:) }
+ let!(:question1) { create(:election_question, :with_response_options, :voting_enabled, election:, skip_injection: true) }
+ let!(:question2) { create(:election_question, :with_response_options, election:, skip_injection: true) }
let(:option11) { question1.response_options.first }
let(:option12) { question1.response_options.second }
let(:option21) { question2.response_options.first }
@@ -93,7 +93,7 @@ def expect_total_votes(question, count)
end
context "when all questions are enabled" do
- let!(:question2) { create(:election_question, :with_response_options, :voting_enabled, election:) }
+ let!(:question2) { create(:election_question, :with_response_options, :voting_enabled, election:, skip_injection: true) }
it_behaves_like "shows questions in an election"
end
diff --git a/decidim-elections/spec/system/user_checks_election_census_spec.rb b/decidim-elections/spec/system/user_checks_election_census_spec.rb
new file mode 100644
index 0000000000000..26590a7f40c26
--- /dev/null
+++ b/decidim-elections/spec/system/user_checks_election_census_spec.rb
@@ -0,0 +1,217 @@
+# frozen_string_literal: true
+
+require "spec_helper"
+
+describe "Election census check" do
+ let(:component) { create(:elections_component) }
+ let(:organization) { component.organization }
+
+ before do
+ switch_to_host(organization.host)
+ end
+
+ context "when the election is scheduled" do
+ let(:election_path) { Decidim::EngineRouter.main_proxy(component).election_path(election) }
+ let(:new_census_check_path) { Decidim::EngineRouter.main_proxy(component).new_election_census_check_path(election) }
+ let(:census_check_path) { Decidim::EngineRouter.main_proxy(component).election_census_check_path(election) }
+ let(:voter_data) { election.voters.first.data }
+
+ context "when allow_census_check_before_start is enabled" do
+ let!(:election) { create(:election, :published, :scheduled, :with_token_csv_census, component:, allow_census_check_before_start: true) }
+
+ context "when user is a guest" do
+ it "displays the census check button" do
+ visit election_path
+
+ expect(page).to have_link("Check if I can vote")
+ end
+
+ it "allows the user to validate they are in the census" do
+ visit election_path
+
+ click_link "Check if I can vote"
+
+ expect(page).to have_current_path(new_census_check_path)
+
+ fill_in "Email", with: voter_data["email"]
+ fill_in "Token", with: voter_data["token"]
+ click_button "Access"
+
+ expect(page).to have_current_path(census_check_path)
+ expect(page).to have_content("You have been successfully verified")
+ expect(page).to have_content("This means that, once the election starts, you can vote in it.")
+
+ click_link "Exit the census check"
+
+ expect(page).to have_current_path(election_path)
+ end
+ end
+
+ context "when user is logged in" do
+ let(:user) { create(:user, :confirmed, organization:) }
+
+ before do
+ login_as user, scope: :user
+ end
+
+ it "displays the census check button" do
+ visit election_path
+
+ expect(page).to have_link("Check if I can vote")
+ end
+ end
+
+ context "when user is an admin" do
+ let(:admin) { create(:user, :admin, :confirmed, organization:) }
+
+ before do
+ login_as admin, scope: :user
+ end
+
+ it "displays the census check button" do
+ visit election_path
+
+ expect(page).to have_link("Check if I can vote")
+ end
+ end
+ end
+
+ context "when allow_census_check_before_start is disabled" do
+ let!(:election) { create(:election, :published, :scheduled, :with_token_csv_census, component:, allow_census_check_before_start: false) }
+
+ context "when user is a guest" do
+ it "does not display the census check button" do
+ visit election_path
+
+ expect(page).to have_no_link("Check if I can vote")
+ end
+ end
+
+ context "when user is logged in" do
+ let(:user) { create(:user, :confirmed, organization:) }
+
+ before do
+ login_as user, scope: :user
+ end
+
+ it "does not display the census check button" do
+ visit election_path
+
+ expect(page).to have_no_link("Check if I can vote")
+ end
+ end
+
+ context "when user is an admin" do
+ let(:admin) { create(:user, :admin, :confirmed, organization:) }
+
+ before do
+ login_as admin, scope: :user
+ end
+
+ it "does not display the census check button" do
+ visit election_path
+
+ expect(page).to have_no_link("Check if I can vote")
+ end
+ end
+ end
+ end
+
+ context "when the election is not published" do
+ let!(:election) { create(:election, :scheduled, :with_token_csv_census, component:) }
+ let(:election_path) { Decidim::EngineRouter.main_proxy(component).election_path(election) }
+ let(:new_census_check_path) { Decidim::EngineRouter.main_proxy(component).new_election_census_check_path(election) }
+ let(:census_check_path) { Decidim::EngineRouter.main_proxy(component).election_census_check_path(election) }
+ let(:voter_data) { election.voters.first.data }
+ let(:admin) { create(:user, :admin, :confirmed, organization:) }
+
+ before do
+ login_as admin, scope: :user
+ end
+
+ it "displays the census check button for admin preview" do
+ visit election_path
+
+ expect(page).to have_link("Check if I can vote")
+ end
+
+ it "allows the admin to preview the census check" do
+ visit election_path
+
+ click_link "Check if I can vote"
+
+ expect(page).to have_current_path(new_census_check_path)
+
+ fill_in "Email", with: voter_data["email"]
+ fill_in "Token", with: voter_data["token"]
+ click_button "Access"
+
+ expect(page).to have_current_path(census_check_path)
+ expect(page).to have_content("You have been successfully verified")
+ end
+ end
+
+ context "when the election uses the internal users census" do
+ let(:authorization_handlers) { { "dummy_authorization_handler" => { "options" => { "allowed_postal_codes" => "08002" } } } }
+ let(:election) { create(:election, :published, :scheduled, component:, census_manifest: "internal_users", census_settings: { "authorization_handlers" => authorization_handlers }, allow_census_check_before_start: true) }
+ let(:election_path) { Decidim::EngineRouter.main_proxy(component).election_path(election) }
+ let(:new_census_check_path) { Decidim::EngineRouter.main_proxy(component).new_election_census_check_path(election) }
+ let(:census_check_path) { Decidim::EngineRouter.main_proxy(component).election_census_check_path(election) }
+
+ context "with an authorized participant" do
+ let(:user) { create(:user, :confirmed, organization:) }
+
+ before do
+ create(:authorization, user:, name: "dummy_authorization_handler", metadata: { "postal_code" => "08002" })
+ login_as user, scope: :user
+ end
+
+ it "confirms they will be able to vote" do
+ visit election_path
+
+ click_link "Check if I can vote"
+
+ expect(page).to have_current_path(census_check_path)
+ expect(page).to have_content("You have been successfully verified")
+ expect(page).to have_content("This means that, once the election starts, you can vote in it.")
+
+ click_link "Exit the census check"
+
+ expect(page).to have_current_path(election_path)
+ end
+ end
+
+ context "with a participant without the required authorizations" do
+ let(:user) { create(:user, :confirmed, organization:) }
+
+ before do
+ login_as user, scope: :user
+ end
+
+ it "blocks the access" do
+ visit election_path
+
+ click_link "Check if I can vote"
+
+ expect(page).to have_current_path(new_census_check_path)
+ expect(page).to have_content("Verify your identity")
+
+ click_button "Access"
+
+ expect(page).to have_current_path(new_census_check_path)
+ expect(page).to have_content("You are not authorized to vote in this election.")
+ end
+ end
+ end
+
+ context "when the election is ongoing" do
+ let!(:election) { create(:election, :published, :ongoing, :with_token_csv_census, component:) }
+ let(:election_path) { Decidim::EngineRouter.main_proxy(component).election_path(election) }
+
+ it "does not display the census check button" do
+ visit election_path
+
+ expect(page).to have_no_link("Check if I can vote")
+ end
+ end
+end
diff --git a/decidim-elections/spec/system/user_votes_in_an_election_spec.rb b/decidim-elections/spec/system/user_votes_in_an_election_spec.rb
index 21df699d1f098..f0262fe5b9047 100644
--- a/decidim-elections/spec/system/user_votes_in_an_election_spec.rb
+++ b/decidim-elections/spec/system/user_votes_in_an_election_spec.rb
@@ -6,8 +6,8 @@
describe "Dashboard" do
let(:user) { create(:user, :confirmed, organization:) }
let!(:election) { create(:election, :published, :ongoing, :with_internal_users_census, census_settings:) }
- let!(:question1) { create(:election_question, :with_response_options, election:, question_type: "single_option") }
- let!(:question2) { create(:election_question, :with_response_options, election:, question_type: "multiple_option") }
+ let!(:question1) { create(:election_question, :with_response_options, skip_injection: true, election:, question_type: "single_option") }
+ let!(:question2) { create(:election_question, :with_response_options, skip_injection: true, election:, question_type: "multiple_option") }
let(:organization) { election.organization }
let(:census_settings) do
{
@@ -104,6 +104,62 @@ def election_vote_path(question)
end
end
+ context "when question has max_choices limit", :js do
+ let(:election_with_limit) { create(:election, :published, :ongoing, :with_internal_users_census, component: election.component) }
+ let!(:question_with_limit) { create(:election_question, election: election_with_limit, question_type: "multiple_option", max_choices: 2, body: { en: "Choose your options" }) }
+ let!(:option1) { create(:election_response_option, question: question_with_limit, body: { en: "Option 1" }) }
+ let!(:option2) { create(:election_response_option, question: question_with_limit, body: { en: "Option 2" }) }
+ let!(:option3) { create(:election_response_option, question: question_with_limit, body: { en: "Option 3" }) }
+ let(:new_election_with_limit_vote_path) { Decidim::EngineRouter.main_proxy(election.component).new_election_vote_path(election_id: election_with_limit.id) }
+
+ before do
+ login_as user, scope: :user
+ visit new_election_with_limit_vote_path
+ end
+
+ it "shows max_choices in question title" do
+ expect(page).to have_content("Choose your options (Max choices: 2)")
+ end
+
+ it "shows alert when selecting more than max_choices" do
+ check "Option 1"
+ check "Option 2"
+ check "Option 3"
+
+ expect(page).to have_css(".max-choices-alert", visible: :visible)
+ end
+
+ it "hides alert when deselecting options" do
+ check "Option 1"
+ check "Option 2"
+ check "Option 3"
+
+ expect(page).to have_css(".max-choices-alert", visible: :visible)
+
+ uncheck "Option 3"
+
+ expect(page).to have_css(".max-choices-alert", visible: :hidden)
+ end
+
+ it "shows server-side validation error when exceeding limit" do
+ check "Option 1"
+ check "Option 2"
+ check "Option 3"
+
+ click_on "Next"
+
+ expect(page).to have_content("You cannot select more than 2 options")
+ end
+
+ context "when question is single_option" do
+ let!(:single_question) { create(:election_question, election: election_with_limit, question_type: "single_option", body: { en: "Choose one option" }) }
+
+ it "does not show max_choices for single_option questions" do
+ expect(page).to have_no_content("Choose one option (Max choices:")
+ end
+ end
+ end
+
context "when the election is per_question" do
let(:election) { create(:election, :published, :ongoing, :with_internal_users_census, :per_question) }
diff --git a/decidim-elections/spec/system/user_votes_in_an_per_question_election_spec.rb b/decidim-elections/spec/system/user_votes_in_an_per_question_election_spec.rb
index 1cebb4374f344..a54419ca5a15b 100644
--- a/decidim-elections/spec/system/user_votes_in_an_per_question_election_spec.rb
+++ b/decidim-elections/spec/system/user_votes_in_an_per_question_election_spec.rb
@@ -21,8 +21,8 @@
let(:receipt_election_votes_path) { Decidim::EngineRouter.main_proxy(election.component).receipt_election_per_question_votes_path(election_id: election.id) }
let(:confirm_election_votes_path) { Decidim::EngineRouter.main_proxy(election.component).confirm_election_per_question_votes_path(election_id: election.id) }
let(:new_election_normal_vote_path) { Decidim::EngineRouter.main_proxy(election.component).new_election_vote_path(election_id: election.id) }
- let!(:question1) { create(:election_question, :with_response_options, :voting_enabled, question_type: "single_option", election:, position: 1) }
- let!(:question2) { create(:election_question, :with_response_options, election:, position: 2) }
+ let!(:question1) { create(:election_question, :with_response_options, :voting_enabled, skip_injection: true, question_type: "single_option", election:, position: 1) }
+ let!(:question2) { create(:election_question, :with_response_options, election:, skip_injection: true, position: 2) }
let(:voter_uid) { user.to_global_id.to_s }
def election_vote_path(question)
@@ -62,8 +62,8 @@ def election_vote_path(question)
end
context "when navigating through already voted questions" do
- let!(:question2) { create(:election_question, :with_response_options, :voting_enabled, election:, position: 2) }
- let!(:question3) { create(:election_question, :with_response_options, election:, position: 3) }
+ let!(:question2) { create(:election_question, :with_response_options, :voting_enabled, election:, skip_injection: true, position: 2) }
+ let!(:question3) { create(:election_question, :with_response_options, election:, skip_injection: true, position: 3) }
before do
login_as user, scope: :user
@@ -74,8 +74,8 @@ def election_vote_path(question)
end
context "when editing votes from receipt page" do
- let!(:question1) { create(:election_question, :with_response_options, :voting_enabled, question_type: "single_option", election:, position: 1) }
- let!(:question2) { create(:election_question, :with_response_options, :voting_enabled, election:, position: 2) }
+ let!(:question1) { create(:election_question, :with_response_options, :voting_enabled, skip_injection: true, question_type: "single_option", election:, position: 1) }
+ let!(:question2) { create(:election_question, :with_response_options, :voting_enabled, skip_injection: true, election:, position: 2) }
before do
login_as user, scope: :user
diff --git a/decidim-forms/app/cells/decidim/forms/step_navigation_cell.rb b/decidim-forms/app/cells/decidim/forms/step_navigation_cell.rb
index 468633226ba38..eeeed75bf12b1 100644
--- a/decidim-forms/app/cells/decidim/forms/step_navigation_cell.rb
+++ b/decidim-forms/app/cells/decidim/forms/step_navigation_cell.rb
@@ -51,7 +51,8 @@ def confirm_data
data: {
confirm:,
disable: true,
- data: "survey-buttons"
+ data: "survey-buttons",
+ confirm_icon: "checkbox-circle-line"
}
}
end
diff --git a/decidim-forms/app/commands/decidim/forms/response_questionnaire.rb b/decidim-forms/app/commands/decidim/forms/response_questionnaire.rb
index 6f0046c414fe2..a90b9f57854ed 100644
--- a/decidim-forms/app/commands/decidim/forms/response_questionnaire.rb
+++ b/decidim-forms/app/commands/decidim/forms/response_questionnaire.rb
@@ -59,7 +59,7 @@ def event_arguments
# of this problem.
def reset_form_attachments
@form.responses.each do |response|
- response.errors.add(:add_documents, :needs_to_be_reattached) if response.has_attachments? || response.has_error_in_attachments?
+ response.errors.add(:add_attachments, :needs_to_be_reattached) if response.has_attachments? || response.has_error_in_attachments?
end
end
@@ -116,7 +116,7 @@ def response_questionnaire
end
create_attachments if process_attachments?
- document_cleanup!
+ attachment_cleanup!
end
@form = @main_form
diff --git a/decidim-forms/app/forms/decidim/forms/questionnaire_form.rb b/decidim-forms/app/forms/decidim/forms/questionnaire_form.rb
index 5832dce44011a..f8c40ed500ed1 100644
--- a/decidim-forms/app/forms/decidim/forms/questionnaire_form.rb
+++ b/decidim-forms/app/forms/decidim/forms/questionnaire_form.rb
@@ -30,7 +30,7 @@ def map_model(model)
def add_responses!(questionnaire:, session_token:, ip_hash:)
self.responses = questionnaire.questions.map do |question|
- ResponseForm.from_model(Decidim::Forms::Response.where(question:, user: current_user, session_token:, ip_hash:).first_or_initialize)
+ ResponseForm.from_model(Decidim::Forms::Response.where(question:, user: current_user, session_token:, ip_hash:).first_or_initialize).with_context(context)
end
end
diff --git a/decidim-forms/app/forms/decidim/forms/response_form.rb b/decidim-forms/app/forms/decidim/forms/response_form.rb
index 8da91883d050d..ed213a2856bc4 100644
--- a/decidim-forms/app/forms/decidim/forms/response_form.rb
+++ b/decidim-forms/app/forms/decidim/forms/response_form.rb
@@ -12,7 +12,7 @@ class ResponseForm < Decidim::Form
attribute :choices, Array[ResponseChoiceForm]
attribute :matrix_choices, Array[ResponseChoiceForm]
- attachments_attribute :documents
+ attachments_attribute :attachments
validates :body, presence: true, if: :mandatory_body?
validates :selected_choices, presence: true, if: :mandatory_choices?
@@ -20,7 +20,7 @@ class ResponseForm < Decidim::Form
validate :max_choices, if: -> { question.max_choices }
validate :all_choices, if: :sorting?
validate :min_choices, if: -> { question.matrix? && question.mandatory? }
- validate :documents_present, if: -> { question.question_type == "files" && question.mandatory? }
+ validate :attachments_present, if: -> { question.question_type == "files" && question.mandatory? }
validate :max_characters, if: -> { question.max_characters.positive? }
delegate :mandatory_body?, :mandatory_choices?, :matrix?, to: :question
@@ -44,7 +44,7 @@ def label
def map_model(model)
self.question_id = model.decidim_question_id
self.question = model.question
- self.documents = model.attachments
+ self.attachments = model.attachments
self.choices = model.choices.map do |choice|
ResponseChoiceForm.from_model(choice)
@@ -82,11 +82,11 @@ def optional_conditions_fulfilled?
end
def has_attachments?
- question.has_attachments? && errors[:add_documents].empty? && add_documents.present?
+ question.has_attachments? && errors[:add_attachments].empty? && add_attachments.present?
end
def has_error_in_attachments?
- errors[:add_documents].present?
+ errors[:add_attachments].present?
end
def sorting?
@@ -141,8 +141,8 @@ def max_choices_label
I18n.t("questionnaires.question.max_choices", scope: "decidim.forms", n: question.max_choices)
end
- def documents_present
- errors.add(:add_documents, :blank) if add_documents.empty? && errors[:add_documents].empty?
+ def attachments_present
+ errors.add(:add_attachments, :blank) if add_attachments.empty? && errors[:add_attachments].empty?
end
end
end
diff --git a/decidim-forms/app/models/decidim/forms/question.rb b/decidim-forms/app/models/decidim/forms/question.rb
index 51537eeed64ff..083a8c07cb3f6 100644
--- a/decidim-forms/app/models/decidim/forms/question.rb
+++ b/decidim-forms/app/models/decidim/forms/question.rb
@@ -39,13 +39,13 @@ class Question < Forms::ApplicationRecord
class_name: "DisplayCondition",
foreign_key: "decidim_condition_question_id",
dependent: :destroy,
- inverse_of: :question,
+ inverse_of: :condition_question,
counter_cache: :display_conditions_for_other_questions_count
# Questions which have display conditions based on the value of this question's response
has_many :conditioned_questions,
through: :display_conditions_for_other_questions,
- foreign_key: "decidim_condition_question_id",
+ source: :question,
class_name: "Question"
has_many :responses,
diff --git a/decidim-forms/app/packs/src/decidim/forms/display_conditions.component.js b/decidim-forms/app/packs/src/decidim/forms/display_conditions.component.js
index 8e39597897a9e..d5391a2235202 100644
--- a/decidim-forms/app/packs/src/decidim/forms/display_conditions.component.js
+++ b/decidim-forms/app/packs/src/decidim/forms/display_conditions.component.js
@@ -15,12 +15,23 @@ class DisplayCondition {
bindEvent() {
this.checkCondition();
this.getInputsToListen().on("change", this.checkCondition.bind(this));
+
+ const conditionWrapper = document.querySelector(`.question[data-question-id='${this.conditionQuestion}']`);
+ conditionWrapper?.addEventListener("display-conditions:visibility", this.checkCondition.bind(this));
}
getInputValue() {
const $conditionWrapperField = $(`.question[data-question-id='${this.conditionQuestion}']`);
const $textInput = $conditionWrapperField.find("textarea, input[type='text']:not([name$=\\[custom_body\\]])");
+ // A hidden question counts as unanswered, like the server sees it: its inputs are
+ // disabled, so it submits nothing. The response itself is left alone.
+ if ($conditionWrapperField.is("[data-condition-hidden]")) {
+ return $textInput.length
+ ? ""
+ : [];
+ }
+
if ($textInput.length) {
return $textInput.val();
}
@@ -181,6 +192,7 @@ class DisplayConditionsComponent {
this.wrapperField.fadeIn();
this.wrapperField.find("input, textarea").prop("disabled", null);
this.showCount++;
+ this.setHidden(false);
}
hideQuestion() {
@@ -192,6 +204,21 @@ class DisplayConditionsComponent {
}
this.wrapperField.find("input, textarea").prop("disabled", "disabled");
+ this.setHidden(true);
+ }
+
+ // A hidden question stops counting as answered, so questions conditioned on this
+ // one have to re-evaluate, which the visibility event asks them to do. Only a real
+ // change is propagated, so the cascade settles after one pass and cannot loop.
+ setHidden(hidden) {
+ const [wrapper] = this.wrapperField;
+
+ if (wrapper.hasAttribute("data-condition-hidden") === hidden) {
+ return;
+ }
+
+ wrapper.toggleAttribute("data-condition-hidden", hidden);
+ wrapper.dispatchEvent(new CustomEvent("display-conditions:visibility"));
}
}
diff --git a/decidim-forms/app/packs/src/decidim/forms/display_conditions.component.test.js b/decidim-forms/app/packs/src/decidim/forms/display_conditions.component.test.js
new file mode 100644
index 0000000000000..6d327bf7a5b4e
--- /dev/null
+++ b/decidim-forms/app/packs/src/decidim/forms/display_conditions.component.test.js
@@ -0,0 +1,142 @@
+import $ from "jquery"; // eslint-disable-line id-length
+
+// Relative import: the forms pack is not in jest's moduleDirectories, so it
+// cannot be resolved through the absolute "src/..." path used elsewhere.
+import createDisplayConditions from "./display_conditions.component"; // eslint-disable-line no-relative-import-paths/no-relative-import-paths
+
+describe("DisplayConditionsComponent", () => {
+ // Renders a single-choice (radio) question with the DOM structure the
+ // component expects (js-collection-input wrapping body/custom_body/option_id).
+ const radioCollection = (qid, options) => `
+
+ `;
+ $(".answer-questionnaire .question[data-conditioned='true']").each((idx, el) => {
+ createDisplayConditions({ wrapperField: $(el) });
+ });
+
+ // Q0 is not "C", so QFILE is hidden. The attachment stays in the DOM, but it is
+ // disabled, so nothing stale is submitted and nothing already uploaded is lost.
+ const $hiddenField = wrapper("QFILE").find("input[name='resp[QFILE][add_attachments]']");
+
+ expect(wrapper("QFILE").find(".attachment-details").length).toBe(1);
+ expect($hiddenField.length).toBe(1);
+ expect($hiddenField.prop("disabled")).toBe(true);
+
+ // and it is submitted again once the question is shown
+ selectOption("Q0", "C");
+
+ expect($hiddenField.prop("disabled")).toBe(false);
+ });
+});
diff --git a/decidim-forms/app/packs/src/decidim/forms/display_conditions_hidden_responses.test.js b/decidim-forms/app/packs/src/decidim/forms/display_conditions_hidden_responses.test.js
new file mode 100644
index 0000000000000..118fca588a4d0
--- /dev/null
+++ b/decidim-forms/app/packs/src/decidim/forms/display_conditions_hidden_responses.test.js
@@ -0,0 +1,224 @@
+/* eslint-disable no-relative-import-paths/no-relative-import-paths, id-length */
+//
+// Covers what happens to a hidden question's response, for the two question types
+// the display-conditions component cannot clear by hand: `files` (its response
+// lives in UploadModal's markup) and `sorting` (hidden fields only).
+//
+// On the clearAnswers() implementation, the three cases about an already-saved
+// attachment fail: its preview and hidden add_attachments field are removed, and
+// showQuestion() never puts them back. The other two pass there as well, and show
+// why the selector was inconsistent: a file uploaded in the current session, and a
+// sorting question, were never cleared at all.
+//
+// The fixture reproduces the markup actually rendered to participants:
+// decidim-core/app/cells/decidim/upload_modal/files.erb
+// decidim-core/app/cells/decidim/upload_modal/modal.erb
+// decidim-forms/app/views/decidim/forms/questionnaires/responses/_files.html.erb
+// decidim-forms/app/views/decidim/forms/questionnaires/responses/_sorting.html.erb
+// and drives it through the real initializeUploadFields() and
+// createDisplayConditions(), so no behaviour is stubbed.
+//
+// Run with: npx jest decidim-forms/app/packs/src/decidim/forms/display_conditions_hidden_responses.test.js
+//
+
+import $ from "jquery";
+import createDisplayConditions from "./display_conditions.component";
+import { initializeUploadFields } from "src/decidim/direct_uploads/upload_field";
+
+const MODAL_ID = "modal-qfile";
+// Raw JSON because the keys are the snake_case ones upload_modal/modal.erb emits.
+const LOCALES = `{
+ "error": "error", "title_required": "title required", "filename": "filename",
+ "file_size_too_large": "too large", "remove": "remove", "title": "title",
+ "uploaded": "uploaded", "validating": "validating", "validation_error": "validation error"
+}`;
+const UPLOAD_OPTS = JSON.stringify({
+ addAttribute: "add_attachments",
+ resourceName: "questionnaire",
+ resourceClass: "Decidim::Forms::Questionnaire",
+ required: false,
+ maxFileSize: 10485760,
+ multiple: true,
+ titled: false,
+ formObjectClass: "Decidim::Forms::QuestionnaireForm"
+});
+
+const radioCollection = (qid, options) => `
+
+ ${options.map((opt) => `
+
+
+
+
+
+ `).join("")}
+
+`;
+
+const conditionTag = (data) =>
+ `
`data-${key}='${val}'`).join(" ")}>
`;
+
+// Mirrors upload_modal/files.erb for one already-persisted, non-image attachment.
+const uploadMarkup = () => `
+
diff --git a/decidim-initiatives/app/views/layouts/decidim/initiative.html.erb b/decidim-initiatives/app/views/layouts/decidim/initiative.html.erb
index a49d60de5d8a2..0b91e6d4076e2 100644
--- a/decidim-initiatives/app/views/layouts/decidim/initiative.html.erb
+++ b/decidim-initiatives/app/views/layouts/decidim/initiative.html.erb
@@ -4,8 +4,8 @@
<% provide :meta_image_url, current_participatory_space.type.attached_uploader(:banner_image).url %>
<%= render "layouts/decidim/application" do %>
- <%= render layout: "layouts/decidim/shared/layout_center" do %>
-
+ <%= render layout: "layouts/decidim/shared/layout_center", locals: { main_enabled: false } do %>
+
<%= yield %>
<% if content_for? :expanded %>
diff --git a/decidim-initiatives/app/views/layouts/decidim/initiative_head.html.erb b/decidim-initiatives/app/views/layouts/decidim/initiative_head.html.erb
index 2a644271e7670..354804f0cb77c 100644
--- a/decidim-initiatives/app/views/layouts/decidim/initiative_head.html.erb
+++ b/decidim-initiatives/app/views/layouts/decidim/initiative_head.html.erb
@@ -8,7 +8,7 @@
<%= render "layouts/decidim/application" do %>
<%= render partial: "decidim/initiatives/initiatives/initiative_hero" %>
<%= render layout:"layouts/decidim/shared/layout_two_col", locals: { reverse: true, main_enabled: false } do %>
-
+
<%= yield %>
<% end %>
diff --git a/decidim-initiatives/config/locales/ar.yml b/decidim-initiatives/config/locales/ar.yml
index 86d7a37d06b05..a46f69e7026bf 100644
--- a/decidim-initiatives/config/locales/ar.yml
+++ b/decidim-initiatives/config/locales/ar.yml
@@ -225,12 +225,6 @@ ar:
choose_html: أريد إنشاء %{title}
more_information: (معلومات اكثر)
select: أريد أن أشجع هذه المبادرة
- events:
- create_initiative_event:
- email_intro: "%{author_name} %{author_nickname}، الذي تتابعه ، بإنشاء مبادرة جديدة والتحقق منها والمساهمة فيها:"
- email_outro: لقد تلقيت هذا الإشعار لأنك تتابع %{author_nickname}. يمكنك إيقاف تلقي الإخطارات باتباع الرابط السابق.
- email_subject: مبادرة جديدة بنسبة %{author_nickname}
- notification_title: تم إنشاء مبادرة %{resource_title} بواسطة %{author_name} %{author_nickname}.
form:
add_attachments: إضافة مرفقات
attachment_legend: إضافة مستند أو صورة
diff --git a/decidim-initiatives/config/locales/bg.yml b/decidim-initiatives/config/locales/bg.yml
index a3ee884db20fb..a6c0207d30299 100644
--- a/decidim-initiatives/config/locales/bg.yml
+++ b/decidim-initiatives/config/locales/bg.yml
@@ -359,25 +359,11 @@ bg:
update: Актуализация
events:
approve_membership_request:
- email_intro: "%{author_nickname} прие вашата кандидатура да станете част от промоторския комитет за инициативата %{resource_title}."
email_outro: 'Получихте това известие, защото кандидатствахте за тази инициатива: %{resource_title}'
- email_subject: "%{author_nickname} прие кандидатурата ви в комитета на промоутъра"
- notification_title: %{author_nickname} прие вашата кандидатура да бъде част от комитета на промоторите за следната инициатива %{resource_title}.
- create_initiative_event:
- email_intro: "%{author_name} %{author_nickname}, когото следвате, създаде нова инициатива, разгледайте я и допринесете:"
- email_outro: Получихте това известие, защото следвате %{author_nickname}. Можете да спрете да получавате известия, като последвате предходния линк.
- email_subject: Нова инициатива на %{author_nickname}
- notification_title: Инициативата %{resource_title} беше създадена от %{author_name} %{author_nickname}.
revoke_membership_request:
- email_intro: "%{author_nickname} отхвърли кандидатурата ви да станете част от комитета на промоторите за следната инициатива %{resource_title}."
email_outro: 'Получихте това известие, защото кандидатствахте за тази инициатива: %{resource_title}.'
- email_subject: "%{author_nickname} отхвърли кандидатурата ви до промоутърската комисия"
- notification_title: %{author_nickname} отхвърли кандидатурата ви да бъде част от комитета на промоторите за следната инициатива %{resource_title}.
spawn_committee_request_event:
- email_intro: "%{applicant_nickname} кандидатства за промоторския комитет на вашата инициатива %{resource_title}. За да приемете или отхвърлите кандидатурата, отидете на формата за редактиране на вашата инициатива."
email_outro: 'Получихте това известие, защото сте авторът на тази инициатива: %{resource_title}'
- email_subject: "%{applicant_nickname} иска да се присъедини към вашата инициатива"
- notification_title: %{applicant_nickname} кандидатства за промоторския комитет на вашата инициатива %{resource_title}. За да приемете или отхвърлите, щракнете тук.
form:
add_image: Добавяне на изображение
edit_image: Редактиране на изображение
diff --git a/decidim-initiatives/config/locales/ca-IT.yml b/decidim-initiatives/config/locales/ca-IT.yml
index 7ca3193553ce1..f165d56ae5bc8 100644
--- a/decidim-initiatives/config/locales/ca-IT.yml
+++ b/decidim-initiatives/config/locales/ca-IT.yml
@@ -72,9 +72,6 @@ ca-IT:
decidim/initiative_comittee:
one: Comitè
other: Comitès
- decidim/initiative_vote:
- one: Signatura
- other: Signatures
decidim:
admin:
actions:
@@ -417,7 +414,6 @@ ca-IT:
new: Crea una nova iniciativa
select: Vull promoure aquesta iniciativa
select_initiative_type_help_html: "
Les iniciatives ciutadanes són un mitjà a través del qual les participants poden sol·licitar que l'organització, dins de les seves competències, adopti mesures en defensa de l'interès general. Quina iniciativa vols engegar?
"
- show_less: Mostra menys
show_more: Mostra'n més
subtitle: Quin tipus d'iniciativa vols promoure?
verification_required: Verifica el teu compte per a impulsar la iniciativa
@@ -440,25 +436,25 @@ ca-IT:
update: Actualitzar
events:
approve_membership_request:
- email_intro: "%{author_nickname} ha acceptat la teva sol·licitud per formar part de la comissió promotora de la iniciativa %{resource_title}."
+ email_intro: "%{author_name} ha acceptat la teva sol·licitud per formar part de la comissió promotora de la iniciativa %{resource_title}."
email_outro: 'Has rebut aquesta notificació perquè has sol·licitat formar part de la iniciativa: "%{resource_title}"'
- email_subject: "%{author_nickname} ha acceptat la teva sol·licitud per formar part de la comissió promotora"
- notification_title: %{author_nickname} ha acceptat la teva sol·licitud per formar part de la comissió promotora per la següent iniciativa %{resource_title}.
+ email_subject: "%{author_name} ha acceptat la teva sol·licitud per formar part de la comissió promotora"
+ notification_title: %{author_name} ha acceptat la teva sol·licitud per formar part de la comissió promotora per la següent iniciativa %{resource_title}.
create_initiative_event:
- email_intro: "%{author_name} %{author_nickname}, a qui segueixes, ha creat una nova iniciativa. Comprova-la i contribueix:"
- email_outro: Has rebut aquesta notificació perquè estàs seguint a "%{author_nickname}". Pots deixar de rebre notificacions seguint l'enllaç anterior.
- email_subject: Nova iniciativa de %{author_nickname}
- notification_title: La iniciativa %{resource_title} va ser creada per %{author_name} %{author_nickname}.
+ email_intro: "%{author_name}, a qui segueixes, ha creat una nova iniciativa, comprova-la i contribueix-hi:"
+ email_outro: Has rebut aquesta notificació perquè estàs seguint l'espai "%{author_name}". Pots deixar de rebre notificacions seguint l'enllaç anterior.
+ email_subject: Nova iniciativa creada per %{author_name}
+ notification_title: %{author_name} ha creat la iniciativa "%{resource_title}".
revoke_membership_request:
- email_intro: "%{author_nickname} ha rebutjat la teva sol·licitud per formar part de la comissió promotora per la iniciativa %{resource_title}."
+ email_intro: "%{author_name} ha rebutjat la teva sol·licitud per formar part de la comissió promotora per la iniciativa %{resource_title}."
email_outro: 'Has rebut aquesta notificació perquè has sol·licitat formar part de la iniciativa: "%{resource_title}".'
- email_subject: "%{author_nickname} ha rebutjat la teva sol·licitud per formar part de la comissió promotora"
- notification_title: %{author_nickname} ha rebutjat la teva sol·licitud per formar part de la comissió promotora per la següent iniciativa %{resource_title}.
+ email_subject: "%{author_name} ha rebutjat la teva sol·licitud per formar part de la comissió promotora de la iniciativa"
+ notification_title: '%{author_name} ha rebutjat la teva sol·licitud per formar part de la comissió promotora per la següent iniciativa: %{resource_title}.'
spawn_committee_request_event:
- email_intro: "%{applicant_nickname} ha sol·licitat formar part de la comissió promotora de la teva iniciativa %{resource_title}. Per a acceptar o rebutjar la sol·licitud, vés al formulari d'edició de la teva iniciativa."
+ email_intro: "%{applicant_name} ha sol·licitat formar part de la comissió promotora de la teva iniciativa: \"%{resource_title}\". Per a acceptar o rebutjar la sol·licitud, vés al formulari d'edició de la teva iniciativa."
email_outro: 'Has rebut aquesta notificació perquè promous la iniciativa: "%{resource_title}"'
- email_subject: "%{applicant_nickname} vol unir-se a la teva iniciativa"
- notification_title: %{applicant_nickname} ha sol·licitat formar part de la comissió promotora de la teva iniciativa %{resource_title}. Per acceptar-ho o rebutjar-ho fes clic aquí.
+ email_subject: "%{applicant_name} vol unir-se a la teva iniciativa"
+ notification_title: %{applicant_name} ha sol·licitat formar part de la comissió promotora de la teva iniciativa %{resource_title}. Accepta o rebutja la sol·licitud.
form:
add_attachments: Afegir fitxer(s) adjunt(s)
add_image: Afegir imatge
@@ -589,9 +585,6 @@ ca-IT:
signature_collection: Signatures recollides
state: Estat
type: Tipus
- signatures_count:
- one: " signatura"
- other: " signatures"
vote_cabin:
already_voted: Ja has signat
vote: Signar
diff --git a/decidim-initiatives/config/locales/ca.yml b/decidim-initiatives/config/locales/ca.yml
index cfcd6914cf432..0a9ea569261b1 100644
--- a/decidim-initiatives/config/locales/ca.yml
+++ b/decidim-initiatives/config/locales/ca.yml
@@ -417,7 +417,6 @@ ca:
new: Crea una nova iniciativa
select: Vull promoure aquesta iniciativa
select_initiative_type_help_html: "
Les iniciatives ciutadanes són un mitjà a través del qual les participants poden sol·licitar que l'organització, dins de les seves competències, adopti mesures en defensa de l'interès general. Quina iniciativa vols engegar?
"
- show_less: Mostra menys
show_more: Mostra'n més
subtitle: Quin tipus d'iniciativa vols promoure?
verification_required: Verifica el teu compte per a impulsar la iniciativa
@@ -440,25 +439,25 @@ ca:
update: Actualitzar
events:
approve_membership_request:
- email_intro: "%{author_nickname} ha acceptat la teva sol·licitud per formar part de la comissió promotora de la iniciativa %{resource_title}."
+ email_intro: "%{author_name} ha acceptat la teva sol·licitud per formar part de la comissió promotora de la iniciativa %{resource_title}."
email_outro: 'Has rebut aquesta notificació perquè has sol·licitat formar part de la iniciativa: "%{resource_title}"'
- email_subject: "%{author_nickname} ha acceptat la teva sol·licitud per formar part de la comissió promotora"
- notification_title: %{author_nickname} ha acceptat la teva sol·licitud per formar part de la comissió promotora per la següent iniciativa %{resource_title}.
+ email_subject: "%{author_name} ha acceptat la teva sol·licitud per formar part de la comissió promotora"
+ notification_title: %{author_name} ha acceptat la teva sol·licitud per formar part de la comissió promotora per la següent iniciativa %{resource_title}.
create_initiative_event:
- email_intro: "%{author_name} %{author_nickname}, a qui segueixes, ha creat una nova iniciativa. Comprova-la i contribueix:"
- email_outro: Has rebut aquesta notificació perquè estàs seguint a "%{author_nickname}". Pots deixar de rebre notificacions seguint l'enllaç anterior.
- email_subject: Nova iniciativa de %{author_nickname}
- notification_title: La iniciativa %{resource_title} va ser creada per %{author_name} %{author_nickname}.
+ email_intro: "%{author_name}, a qui segueixes, ha creat una nova iniciativa, comprova-la i contribueix-hi:"
+ email_outro: Has rebut aquesta notificació perquè estàs seguint l'espai "%{author_name}". Pots deixar de rebre notificacions seguint l'enllaç anterior.
+ email_subject: Nova iniciativa creada per %{author_name}
+ notification_title: %{author_name} ha creat la iniciativa "%{resource_title}".
revoke_membership_request:
- email_intro: "%{author_nickname} ha rebutjat la teva sol·licitud per formar part de la comissió promotora per la iniciativa %{resource_title}."
+ email_intro: "%{author_name} ha rebutjat la teva sol·licitud per formar part de la comissió promotora per la iniciativa %{resource_title}."
email_outro: 'Has rebut aquesta notificació perquè has sol·licitat formar part de la iniciativa: "%{resource_title}".'
- email_subject: "%{author_nickname} ha rebutjat la teva sol·licitud per formar part de la comissió promotora"
- notification_title: %{author_nickname} ha rebutjat la teva sol·licitud per formar part de la comissió promotora per la següent iniciativa %{resource_title}.
+ email_subject: "%{author_name} ha rebutjat la teva sol·licitud per formar part de la comissió promotora de la iniciativa"
+ notification_title: '%{author_name} ha rebutjat la teva sol·licitud per formar part de la comissió promotora per la següent iniciativa: %{resource_title}.'
spawn_committee_request_event:
- email_intro: "%{applicant_nickname} ha sol·licitat formar part de la comissió promotora de la teva iniciativa %{resource_title}. Per a acceptar o rebutjar la sol·licitud, vés al formulari d'edició de la teva iniciativa."
+ email_intro: "%{applicant_name} ha sol·licitat formar part de la comissió promotora de la teva iniciativa: \"%{resource_title}\". Per a acceptar o rebutjar la sol·licitud, vés al formulari d'edició de la teva iniciativa."
email_outro: 'Has rebut aquesta notificació perquè promous la iniciativa: "%{resource_title}"'
- email_subject: "%{applicant_nickname} vol unir-se a la teva iniciativa"
- notification_title: %{applicant_nickname} ha sol·licitat formar part de la comissió promotora de la teva iniciativa %{resource_title}. Per acceptar-ho o rebutjar-ho fes clic aquí.
+ email_subject: "%{applicant_name} vol unir-se a la teva iniciativa"
+ notification_title: %{applicant_name} ha sol·licitat formar part de la comissió promotora de la teva iniciativa %{resource_title}. Accepta o rebutja la sol·licitud.
form:
add_attachments: Afegir fitxer(s) adjunt(s)
add_image: Afegir imatge
diff --git a/decidim-initiatives/config/locales/cs.yml b/decidim-initiatives/config/locales/cs.yml
index ad1f13b98fde3..1aa5b7cd2edf1 100644
--- a/decidim-initiatives/config/locales/cs.yml
+++ b/decidim-initiatives/config/locales/cs.yml
@@ -423,7 +423,6 @@ cs:
new: Vytvořit novou iniciativu
select: Chci tuto iniciativu podpořit
select_initiative_type_help_html: "
Iniciativy jsou prostředkem, který mohou účastníci zasáhnout, aby organizace mohla podniknout kroky na ochranu obecného zájmu. Kterou iniciativu chcete spustit?
"
- show_less: Zobrazit méně
show_more: Zobrazit více
subtitle: Jakou iniciativu chcete podporovat?
verification_required: Ověřte svůj účet pro podporu této iniciativy
@@ -446,25 +445,14 @@ cs:
update: Aktualizovat
events:
approve_membership_request:
- email_intro: "%{author_nickname} přijal vaši žádost, aby se stal součástí propagačního výboru pro iniciativu %{resource_title}."
+ email_intro: "%{author_name} přijal vaši žádost, abyste se stal součástí propagačního výboru pro iniciativu %{resource_title}."
email_outro: 'Obdrželi jste toto oznámení, protože jste podali žádost o tuto iniciativu: %{resource_title}'
- email_subject: "Uživatel %{author_nickname} přijal vaši nabídku k propagačnímu výboru"
- notification_title: %{author_nickname} přijal vaši nabídku k členství v propagačním výboru pro iniciativu %{resource_title}.
create_initiative_event:
- email_intro: "%{author_name} %{author_nickname}, kterého sledujete, vytvořil novou iniciativu, omrkněte ji a přispějte:"
- email_outro: Toto oznámení jste obdrželi, protože jste sledovali %{author_nickname}. Po předchozím propojení můžete přestat přijímat oznámení.
- email_subject: Nová iniciativa od %{author_nickname}
- notification_title: %{author_name} %{author_nickname} vytvořil Iniciativu %{resource_title}.
+ email_subject: Nová iniciativa od %{author_name}
revoke_membership_request:
- email_intro: "%{author_nickname} odmítl vaši nabídku k členství funkcionáře ve výboru propagace pro tuto iniciativu %{resource_title}."
email_outro: 'Obdrželi jste toto oznámení, protože jste podali žádost o tuto iniciativu: %{resource_title}.'
- email_subject: "%{author_nickname} odmítl vaši nabídku na funkcionáře výboru propagace"
- notification_title: %{author_nickname} odmítl vaši nabídku k členství v propagačním výboru pro následující iniciativu %{resource_title}.
spawn_committee_request_event:
- email_intro: "%{applicant_nickname} požádal o funkci ve výboru vaší iniciativy %{resource_title}. Chcete-li přijmout nebo zamítnout žádost, přejděte na editační formulář vaší iniciativy."
email_outro: 'Obdrželi jste toto oznámení, protože jste autorem této iniciativy: %{resource_title}'
- email_subject: "%{applicant_nickname} se chce připojit k vaší iniciativě"
- notification_title: %{applicant_nickname} požádal o funkci ve výboru vaší iniciativy %{resource_title}. Chcete-li přijmout nebo odmítnout , klepněte zde.
form:
add_attachments: Přidat přílohy
add_image: Přidat obrázek
diff --git a/decidim-initiatives/config/locales/de.yml b/decidim-initiatives/config/locales/de.yml
index 02e8fc1589118..9c2ce47b26471 100644
--- a/decidim-initiatives/config/locales/de.yml
+++ b/decidim-initiatives/config/locales/de.yml
@@ -111,6 +111,8 @@ de:
initiatives_menu:
see_initiative: Initiative ansehen
initiatives_settings: Einstellungen
+ initiatives_submenu:
+ info: Über diese Initiative
initiatives_types: Arten von Initiativen
moderations: Moderationen
models:
@@ -415,7 +417,6 @@ de:
new: Neue Initiative erstellen
select: Ich möchte diese Initiative fördern
select_initiative_type_help_html: "
Initiativen sind Instrumente, mit dem die Personen eingreifen können, damit die Organisation Aktionen im Namen des Allgemeininteresses durchführen kann. Welche Initiative möchten Sie starten?
"
- show_less: Weniger anzeigen
show_more: Mehr anzeigen
subtitle: Welche Initiative wollen Sie bewerben?
verification_required: Bestätigen Sie Ihr Konto, um die Initiative zu unterstützen
@@ -438,25 +439,25 @@ de:
update: Aktualisieren
events:
approve_membership_request:
- email_intro: "%{author_nickname} hat Ihre Anfrage fürs Promoter-Komittee der Initiative %{resource_title} akzeptiert."
+ email_intro: "%{author_name} hat Ihre Bewerbung für das Unterstützungskomitee der Initiative %{resource_title} angenommen."
email_outro: 'Sie haben diese Benachrichtigung erhalten, weil Sie sich bei dieser Initiative beworben haben: %{resource_title}'
- email_subject: "%{author_nickname} hat Ihre Anfrage fürs Promoter-Komittee akzeptiert"
- notification_title: %{author_nickname} hat Ihre Anfrage fürs Promoter-Komittee der Initiative %{resource_title} akzeptiert.
+ email_subject: "%{author_name} hat Ihre Bewerbung für das Unterstützungskomitee angenommen"
+ notification_title: %{author_name} hat Ihre Bewerbung für das Unterstützungskomitee der Initiative %{resource_title} angenommen.
create_initiative_event:
- email_intro: "%{author_name} %{author_nickname}, dem du folgst, hat eine neue Initiative erstellt, sehen Sie es sich an und reden Sie mit:"
- email_outro: Sie haben diese Benachrichtigung erhalten, weil Sie %{author_nickname} folgen. Falls Sie keine solchen Benachrichtigungen mehr erhalten möchten, besuchen Sie den obigen Link.
- email_subject: Neue Initiative von %{author_nickname}
- notification_title: Die Initiative %{resource_title} wurde von %{author_name} %{author_nickname} erstellt.
+ email_intro: "%{author_name}, dem/der Sie folgen, hat eine neue Initiative erstellt. Schauen Sie sie sich an und beteiligen Sie sich:"
+ email_outro: Sie haben diese Benachrichtigung erhalten, weil Sie %{author_name} folgen. Falls Sie keine solchen Benachrichtigungen mehr erhalten möchten, besuchen Sie den obigen Link.
+ email_subject: Neue Initiative von %{author_name}
+ notification_title: Die Initiative %{resource_title} wurde von %{author_name} erstellt.
revoke_membership_request:
- email_intro: "%{author_nickname} hat Ihre Anfrage fürs Promoter-Komittee der Initiative %{resource_title} abgelehnt."
+ email_intro: "%{author_name} hat Ihre Bewerbung für das Unterstützungskomitee der Initiative %{resource_title} abgelehnt."
email_outro: 'Sie haben diese Benachrichtigung erhalten, weil Sie sich bei dieser Initiative beworben haben: %{resource_title}.'
- email_subject: "%{author_nickname} hat Ihre Anfrage fürs Promoter-Komittee abgelehnt"
- notification_title: %{author_nickname} hat Ihre Anfrage für das Promoter-Komittee der Initiative %{resource_title} abgelehnt.
+ email_subject: "%{author_name} hat Ihre Bewerbung für das Unterstützungskomitee abgelehnt"
+ notification_title: %{author_name} hat Ihre Bewerbung für das Unterstützungskomitee der Initiative %{resource_title} abgelehnt.
spawn_committee_request_event:
- email_intro: "%{applicant_nickname} hat sich fürs Promoter-Komittee Ihrer Initiative %{resource_title} beworben. Um die Anfrage zu akzeptieren oder abzulehnen, besuchen Sie das Bearbeitungsformular Ihrer Initiative."
+ email_intro: "%{applicant_name} hat sich für das Unterstützungskomitee Ihrer Initiative %{resource_title} beworben. Um die Bewerbung anzunehmen oder abzulehnen, öffnen Sie das Bearbeitungsformular Ihrer Initiative."
email_outro: 'Sie haben diese Benachrichtigung erhalten, weil Sie der Autor der Initiative %{resource_title} sind'
- email_subject: "%{applicant_nickname} möchte Ihrer Initiative beitreten"
- notification_title: %{applicant_nickname} hat sich für das Promoter-Komittee Ihrer Initiative %{resource_title} beworben. Um anzunehmen oder abzulehnen, klicken Sie hier.
+ email_subject: "%{applicant_name} möchte Ihrer Initiative beitreten"
+ notification_title: %{applicant_name} hat sich für das Unterstützungskomitee Ihrer Initiative %{resource_title} beworben. Um die Bewerbung anzunehmen oder abzulehnen, klicken Sie hier.
form:
add_attachments: Anhänge hinzufügen
add_image: Bild hinzufügen
@@ -550,6 +551,7 @@ de:
recent: Neueste zuerst
recently_published: Zuletzt veröffentlicht
pending_initiatives:
+ description: Diese Initiativen sind noch nicht öffentlich. Bitte prüfen Sie sie und reichen Sie sie zur technischen Validierung ein, damit sie veröffentlicht werden können.
title: Entwürfe & ausstehende Initiativen
print:
address: Adresse
diff --git a/decidim-initiatives/config/locales/el.yml b/decidim-initiatives/config/locales/el.yml
index 8f37c7a814e0a..04245b85898fe 100644
--- a/decidim-initiatives/config/locales/el.yml
+++ b/decidim-initiatives/config/locales/el.yml
@@ -245,12 +245,6 @@ el:
choose_html: Θέλω να δημιουργήσω μια πρωτοβουλία %{title}
more_information: (Περισσότερες πληροφορίες)
select: Θέλω να προωθήσω αυτήν την πρωτοβουλία
- events:
- create_initiative_event:
- email_intro: "Ο συντάκτης %{author_name} %{author_nickname}, τον οποίο ακολουθείτε, δημιούργησε μια νέα πρωτοβουλία. Δείτε την και συνεισφέρετε:"
- email_outro: Λάβατε αυτήν την ειδοποίηση επειδή ακολουθείτε τον συντάκτη %{author_nickname}. Μπορείτε να διακόψετε τη λήψη ειδοποιήσεων ακολουθώντας τον προηγούμενο σύνδεσμο.
- email_subject: Νέα πρωτοβουλία από τον συντάκτη %{author_nickname}
- notification_title: Η %{resource_title} πρωτοβουλία δημιουργήθηκε από τον συντάκτη %{author_name} %{author_nickname}.
initiative_signatures:
finish:
back_to_initiative: Επιστροφή στην πρωτοβουλία
diff --git a/decidim-initiatives/config/locales/en.yml b/decidim-initiatives/config/locales/en.yml
index 488c661bbd916..6d95651ea8d41 100644
--- a/decidim-initiatives/config/locales/en.yml
+++ b/decidim-initiatives/config/locales/en.yml
@@ -417,7 +417,6 @@ en:
new: Create a new initiative
select: I want to promote this initiative
select_initiative_type_help_html: "
Initiatives are a means by which the participants can intervene so that the organization can undertake actions in defence of the general interest. Which initiative do you want to launch?
"
- show_less: Show less
show_more: Show more
subtitle: What initiative do you want to promote?
verification_required: Verify your account to promote this initiative
@@ -440,25 +439,25 @@ en:
update: Update
events:
approve_membership_request:
- email_intro: "%{author_nickname} accepted your application to be part of the promoter committee for the initiative %{resource_title}."
+ email_intro: "%{author_name} accepted your application to be part of the promoter committee for the initiative %{resource_title}."
email_outro: 'You received this notification because you applied to this initiative: %{resource_title}'
- email_subject: "%{author_nickname} accepted your application to the promoter committee"
- notification_title: %{author_nickname} accepted your application to be part of the promoter committee for the following initiative %{resource_title}.
+ email_subject: "%{author_name} accepted your application to the promoter committee"
+ notification_title: %{author_name} accepted your application to be part of the promoter committee for the following initiative %{resource_title}.
create_initiative_event:
- email_intro: "%{author_name} %{author_nickname}, who you are following, has created a new initiative, check it out and contribute:"
- email_outro: You have received this notification because you are following %{author_nickname}. You can stop receiving notifications following the previous link.
- email_subject: New initiative by %{author_nickname}
- notification_title: The %{resource_title} initiative was created by %{author_name} %{author_nickname}.
+ email_intro: "%{author_name}, who you are following, has created a new initiative, check it out and contribute:"
+ email_outro: You have received this notification because you are following %{author_name}. You can stop receiving notifications following the previous link.
+ email_subject: New initiative by %{author_name}
+ notification_title: The %{resource_title} initiative was created by %{author_name}.
revoke_membership_request:
- email_intro: "%{author_nickname} rejected your application to be part of the promoter committee for the following initiative %{resource_title}."
+ email_intro: "%{author_name} rejected your application to be part of the promoter committee for the following initiative %{resource_title}."
email_outro: 'You received this notification because you applied to this initiative: %{resource_title}.'
- email_subject: "%{author_nickname} rejected your application to the promoter committee"
- notification_title: %{author_nickname} rejected your application to be part of the promoter committee for the following initiative %{resource_title}.
+ email_subject: "%{author_name} rejected your application to the promoter committee"
+ notification_title: %{author_name} rejected your application to be part of the promoter committee for the following initiative %{resource_title}.
spawn_committee_request_event:
- email_intro: "%{applicant_nickname} applied for the promoter committee of your initiative %{resource_title}. To accept or reject the application, go to the edit form of your initiative."
+ email_intro: "%{applicant_name} applied for the promoter committee of your initiative %{resource_title}. To accept or reject the application, go to the edit form of your initiative."
email_outro: 'You received this notification because you are the author of this initiative: %{resource_title}'
- email_subject: "%{applicant_nickname} wants to join your initiative"
- notification_title: %{applicant_nickname} applied for the promoter committee of your initiative %{resource_title}. To accept or reject click here.
+ email_subject: "%{applicant_name} wants to join your initiative"
+ notification_title: %{applicant_name} applied for the promoter committee of your initiative %{resource_title}. To accept or reject click here.
form:
add_attachments: Add attachments
add_image: Add image
diff --git a/decidim-initiatives/config/locales/es-MX.yml b/decidim-initiatives/config/locales/es-MX.yml
index ee5a63f4b6cae..0edacc9c3282f 100644
--- a/decidim-initiatives/config/locales/es-MX.yml
+++ b/decidim-initiatives/config/locales/es-MX.yml
@@ -417,7 +417,6 @@ es-MX:
new: Crea una nueva iniciativa
select: Quiero promover esta iniciativa.
select_initiative_type_help_html: "
Las iniciativas ciudadanas son un medio a través del cual las participantes pueden solicitar que la organización, dentro de sus competencias, adopte medidas en defensa del interés general. ¿Qué iniciativa quieres poner en marcha?
"
- show_less: Mostrar menos
show_more: Mostrar más
subtitle: '¿Qué tipo de iniciativa quieres promover?'
verification_required: Verifica tu cuenta para impulsar la iniciativa
@@ -440,25 +439,25 @@ es-MX:
update: Actualizar
events:
approve_membership_request:
- email_intro: "%{author_nickname} ha aceptado tu solicitud para formar parte del comité promotor de la iniciativa %{resource_title}."
+ email_intro: "%{author_name} ha aceptado tu solicitud para formar parte del comité promotor de la iniciativa %{resource_title}."
email_outro: 'Has recibido esta notificación porque has solicitado unirte a esta iniciativa: %{resource_title}'
- email_subject: "%{author_nickname} aceptó tu solicitud para unirte al comité promotor"
- notification_title: %{author_nickname} aceptó tu solicitud para formar parte del comité promotor de la siguiente iniciativa %{resource_title}.
+ email_subject: "%{author_name} aceptó tu solicitud para unirte al comité promotor"
+ notification_title: %{author_name} aceptó tu solicitud para formar parte del comité promotor de la siguiente iniciativa %{resource_title}.
create_initiative_event:
- email_intro: "%{author_name} %{author_nickname}, a quien sigues, ha creado una nueva iniciativa, compruébalo y contribuye:"
- email_outro: Recibiste esta notificación porque estás siguiendo %{author_nickname}. Puedes dejar de recibir notificaciones siguiendo el enlace anterior.
- email_subject: Nueva iniciativa por %{author_nickname}
- notification_title: La iniciativa %{resource_title} fue creada por %{author_name} %{author_nickname}.
+ email_intro: "%{author_name}, a quien sigues, ha creado una nueva iniciativa, compruébala y contribuye:"
+ email_outro: Has recibido esta notificación porque estás siguiendo la iniciativa "%{author_name}". Puedes dejar de recibir notificaciones siguiendo el enlace anterior.
+ email_subject: Nueva iniciativa creada por %{author_name}
+ notification_title: %{author_name} ha creado la iniciativa "%{resource_title}".
revoke_membership_request:
- email_intro: "%{author_nickname} rechazó tu solicitud para formar parte del comité promotor de la siguiente iniciativa %{resource_title}."
+ email_intro: "%{author_name} rechazó tu solicitud para formar parte del comité promotor de la siguiente iniciativa %{resource_title}."
email_outro: 'Has recibido esta notificación porque has solicitado unirte a esta iniciativa: %{resource_title}.'
- email_subject: "%{author_nickname} rechazó tu solicitud para unirte al comité promotor"
- notification_title: %{author_nickname} rechazó tu solicitud para formar parte del comité promotor de la siguiente iniciativa %{resource_title}.
+ email_subject: "%{author_name} rechazó tu solicitud para unirte al comité promotor de la iniciativa"
+ notification_title: '%{author_name} rechazó tu solicitud para formar parte del comité promotor de la siguiente iniciativa: %{resource_title}.'
spawn_committee_request_event:
- email_intro: "%{applicant_nickname} ha solicitado unirse al comité promotor de tu iniciativa %{resource_title}. Para aceptar o rechazar la solicitud, ve al formulario de edición de tu iniciativa."
+ email_intro: "%{applicant_name} ha solicitado unirse al comité promotor de tu iniciativa: \"%{resource_title}\". Para aceptar o rechazar la solicitud, ve al formulario de edición de tu iniciativa."
email_outro: 'Has recibido esta notificación porque eres la autora de la iniciativa %{resource_title}'
- email_subject: "%{applicant_nickname} quiere unirse a tu iniciativa"
- notification_title: %{applicant_nickname} ha solicitado unirse al comité promotor de tu iniciativa %{resource_title}. Para aceptar o rechazar la solicitud haz clic aquí.
+ email_subject: "%{applicant_name} quiere unirse a tu iniciativa"
+ notification_title: %{applicant_name} ha solicitado unirse al comité promotor de tu iniciativa %{resource_title}. Acepta o rechaza la solicitud.
form:
add_attachments: Agregar archivo(s) adjunto(s)
add_image: Añadir imagen
diff --git a/decidim-initiatives/config/locales/es-PY.yml b/decidim-initiatives/config/locales/es-PY.yml
index 062e8ca2e9c35..e75c0766dabf6 100644
--- a/decidim-initiatives/config/locales/es-PY.yml
+++ b/decidim-initiatives/config/locales/es-PY.yml
@@ -417,7 +417,6 @@ es-PY:
new: Crea una nueva iniciativa
select: Quiero promover esta iniciativa.
select_initiative_type_help_html: "
Las iniciativas ciudadanas son un medio a través del cual las participantes pueden solicitar que la organización, dentro de sus competencias, adopte medidas en defensa del interés general. ¿Qué iniciativa quieres poner en marcha?
"
- show_less: Mostrar menos
show_more: Mostrar más
subtitle: '¿Qué tipo de iniciativa quieres promover?'
verification_required: Verifica tu cuenta para impulsar la iniciativa
@@ -440,25 +439,25 @@ es-PY:
update: Actualizar
events:
approve_membership_request:
- email_intro: "%{author_nickname} ha aceptado tu solicitud para formar parte del comité promotor de la iniciativa %{resource_title}."
+ email_intro: "%{author_name} ha aceptado tu solicitud para formar parte del comité promotor de la iniciativa %{resource_title}."
email_outro: 'Has recibido esta notificación porque has solicitado unirte a esta iniciativa: %{resource_title}'
- email_subject: "%{author_nickname} aceptó tu solicitud para unirte al comité promotor"
- notification_title: %{author_nickname} aceptó tu solicitud para formar parte del comité promotor de la siguiente iniciativa %{resource_title}.
+ email_subject: "%{author_name} aceptó tu solicitud para unirte al comité promotor"
+ notification_title: %{author_name} aceptó tu solicitud para formar parte del comité promotor de la siguiente iniciativa %{resource_title}.
create_initiative_event:
- email_intro: "%{author_name} %{author_nickname}, a quien sigues, ha creado una nueva iniciativa, compruébalo y contribuye:"
- email_outro: Recibiste esta notificación porque estás siguiendo %{author_nickname}. Puedes dejar de recibir notificaciones siguiendo el enlace anterior.
- email_subject: Nueva iniciativa por %{author_nickname}
- notification_title: La iniciativa %{resource_title} fue creada por %{author_name} %{author_nickname}.
+ email_intro: "%{author_name}, a quien sigues, ha creado una nueva iniciativa, compruébala y contribuye:"
+ email_outro: Has recibido esta notificación porque estás siguiendo la iniciativa "%{author_name}". Puedes dejar de recibir notificaciones siguiendo el enlace anterior.
+ email_subject: Nueva iniciativa creada por %{author_name}
+ notification_title: %{author_name} ha creado la iniciativa "%{resource_title}".
revoke_membership_request:
- email_intro: "%{author_nickname} rechazó tu solicitud para formar parte del comité promotor de la siguiente iniciativa %{resource_title}."
+ email_intro: "%{author_name} rechazó tu solicitud para formar parte del comité promotor de la siguiente iniciativa %{resource_title}."
email_outro: 'Has recibido esta notificación porque has solicitado unirte a esta iniciativa: %{resource_title}.'
- email_subject: "%{author_nickname} rechazó tu solicitud para unirte al comité promotor"
- notification_title: %{author_nickname} rechazó tu solicitud para formar parte del comité promotor de la siguiente iniciativa %{resource_title}.
+ email_subject: "%{author_name} rechazó tu solicitud para unirte al comité promotor de la iniciativa"
+ notification_title: '%{author_name} rechazó tu solicitud para formar parte del comité promotor de la siguiente iniciativa: %{resource_title}.'
spawn_committee_request_event:
- email_intro: "%{applicant_nickname} ha solicitado unirse al comité promotor de tu iniciativa %{resource_title}. Para aceptar o rechazar la solicitud, ve al formulario de edición de tu iniciativa."
+ email_intro: "%{applicant_name} ha solicitado unirse al comité promotor de tu iniciativa: \"%{resource_title}\". Para aceptar o rechazar la solicitud, ve al formulario de edición de tu iniciativa."
email_outro: 'Has recibido esta notificación porque eres la autora de la iniciativa %{resource_title}'
- email_subject: "%{applicant_nickname} quiere unirse a tu iniciativa"
- notification_title: %{applicant_nickname} ha solicitado unirse al comité promotor de tu iniciativa %{resource_title}. Para aceptar o rechazar la solicitud haz clic aquí.
+ email_subject: "%{applicant_name} quiere unirse a tu iniciativa"
+ notification_title: %{applicant_name} ha solicitado unirse al comité promotor de tu iniciativa %{resource_title}. Acepta o rechaza la solicitud.
form:
add_attachments: Agregar archivo(s) adjunto(s)
add_image: Añadir imagen
diff --git a/decidim-initiatives/config/locales/es.yml b/decidim-initiatives/config/locales/es.yml
index b3f02ae08b747..042e4ebe545c8 100644
--- a/decidim-initiatives/config/locales/es.yml
+++ b/decidim-initiatives/config/locales/es.yml
@@ -417,7 +417,6 @@ es:
new: Crea una nueva iniciativa
select: Quiero promover esta iniciativa
select_initiative_type_help_html: "
Las iniciativas ciudadanas son un medio a través del cual las participantes pueden solicitar que la organización, dentro de sus competencias, adopte medidas en defensa del interés general. ¿Qué iniciativa quieres poner en marcha?
"
- show_less: Mostrar menos
show_more: Mostrar más
subtitle: '¿Qué tipo de iniciativa quieres promover?'
verification_required: Verifica tu cuenta para impulsar la iniciativa
@@ -440,25 +439,25 @@ es:
update: Actualizar
events:
approve_membership_request:
- email_intro: "%{author_nickname} ha aceptado tu solicitud para formar parte del comité promotor de la iniciativa %{resource_title}."
+ email_intro: "%{author_name} ha aceptado tu solicitud para formar parte del comité promotor de la iniciativa %{resource_title}."
email_outro: 'Has recibido esta notificación porque has solicitado unirte a esta iniciativa: %{resource_title}'
- email_subject: "%{author_nickname} aceptó tu solicitud para unirte al comité promotor"
- notification_title: %{author_nickname} aceptó tu solicitud para formar parte del comité promotor de la siguiente iniciativa %{resource_title}.
+ email_subject: "%{author_name} aceptó tu solicitud para unirte al comité promotor"
+ notification_title: %{author_name} aceptó tu solicitud para formar parte del comité promotor de la siguiente iniciativa %{resource_title}.
create_initiative_event:
- email_intro: "%{author_name} %{author_nickname}, a quien sigues, ha creado una nueva iniciativa, compruébalo y contribuye:"
- email_outro: Has recibido esta notificación porque estás siguiendo %{author_nickname}. Puedes dejar de recibir notificaciones siguiendo el enlace anterior.
- email_subject: Nueva iniciativa de %{author_nickname}
- notification_title: La iniciativa %{resource_title} fue creada por %{author_name} %{author_nickname}.
+ email_intro: "%{author_name}, a quien sigues, ha creado una nueva iniciativa, compruébala y contribuye:"
+ email_outro: Has recibido esta notificación porque estás siguiendo la iniciativa "%{author_name}". Puedes dejar de recibir notificaciones siguiendo el enlace anterior.
+ email_subject: Nueva iniciativa creada por %{author_name}
+ notification_title: %{author_name} ha creado la iniciativa "%{resource_title}".
revoke_membership_request:
- email_intro: "%{author_nickname} rechazó tu solicitud para formar parte del comité promotor de la siguiente iniciativa %{resource_title}."
+ email_intro: "%{author_name} rechazó tu solicitud para formar parte del comité promotor de la siguiente iniciativa %{resource_title}."
email_outro: 'Has recibido esta notificación porque has solicitado unirte a esta iniciativa: "%{resource_title}".'
- email_subject: "%{author_nickname} rechazó tu solicitud para unirte al comité promotor"
- notification_title: %{author_nickname} rechazó tu solicitud para formar parte del comité promotor de la siguiente iniciativa %{resource_title}.
+ email_subject: "%{author_name} rechazó tu solicitud para unirte al comité promotor de la iniciativa"
+ notification_title: '%{author_name} rechazó tu solicitud para formar parte del comité promotor de la siguiente iniciativa: %{resource_title}.'
spawn_committee_request_event:
- email_intro: "%{applicant_nickname} ha solicitado unirse al comité promotor de tu iniciativa %{resource_title}. Para aceptar o rechazar la solicitud, ve al formulario de edición de tu iniciativa."
+ email_intro: "%{applicant_name} ha solicitado unirse al comité promotor de tu iniciativa: \"%{resource_title}\". Para aceptar o rechazar la solicitud, ve al formulario de edición de tu iniciativa."
email_outro: 'Has recibido esta notificación porque promueves esta iniciativa: "%{resource_title}"'
- email_subject: "%{applicant_nickname} quiere unirse a tu iniciativa"
- notification_title: %{applicant_nickname} ha solicitado unirse al comité promotor de tu iniciativa %{resource_title}. Para aceptar o rechazar la solicitud haz clic aquí.
+ email_subject: "%{applicant_name} quiere unirse a tu iniciativa"
+ notification_title: %{applicant_name} ha solicitado unirse al comité promotor de tu iniciativa %{resource_title}. Acepta o rechaza la solicitud.
form:
add_attachments: Agregar archivo(s) adjunto(s)
add_image: Añadir imagen
diff --git a/decidim-initiatives/config/locales/eu.yml b/decidim-initiatives/config/locales/eu.yml
index 148bdb4864c94..e666f4d78484c 100644
--- a/decidim-initiatives/config/locales/eu.yml
+++ b/decidim-initiatives/config/locales/eu.yml
@@ -17,7 +17,7 @@ eu:
signature_type_values:
any: Mistoa
offline: Aurrez aurrekoa
- online: On-line
+ online: Online
state: Egoera
title: Izenburua
type_id: Mota
@@ -38,7 +38,7 @@ eu:
extra_fields_legal_information: Datu pertsonalen bilketari buruzko informazio juridikoa
minimum_committee_members: Batzorde kideen gutxienekoa
online_signature_enabled: Sinadura elektronikoa gaituta
- only_global_scope_enabled: Eremu globaleko ekimenak soilik sortzeko aukera ematea
+ only_global_scope_enabled: Baimendu soilik esparru globaleko ekimenak sortzea
promoting_committee_enabled: Gaitu batzorde sustatzailea
signature_type: Sinadura mota
title: Izenburua
@@ -97,7 +97,7 @@ eu:
type_id_eq:
label: Mota
search_placeholder:
- title_or_description_or_id_string_or_author_name_or_author_nickname_cont: Bilatu %{collection} izenburuaren, deskribapenaren, IDaren edo egiletzaren arabera
+ title_or_description_or_id_string_or_author_name_or_author_nickname_cont: Bilatu %{collection} izenburuaren, deskribapenaren, IDaren edo egilearen izenaren arabera
initiatives_settings:
update:
error: Arazo bat izan da ekimenen konfigurazioak eguneratzean.
@@ -141,18 +141,18 @@ eu:
initiatives_votes:
fields:
date_and_time: Data eta ordua
- date_of_birth: Jaioteguna
+ date_of_birth: Jaiotze-data
document_number: Dokumentuaren zenbakia
hash: Hash
- initiative_end_date: Amaiera data
+ initiative_end_date: Amaiera-data
initiative_id: Ekimenaren ID-a
initiative_scope: Eremua
initiative_signatures_count: Sinadura kopurua
- initiative_start_date: Hasiera data
+ initiative_start_date: Hasiera-data
initiative_title: Ekimenaren izenburua
- name_and_surname: Izena eta abizena
+ name_and_surname: Izen-abizenak
nickname: Ezizena
- postal_code: Posta kodea
+ postal_code: Posta-kodea
signature_count: Sinaduren zenbaketa
timestamp: Denbora-marka
taxonomy_filters:
@@ -202,7 +202,7 @@ eu:
badges:
initiatives:
conditions:
- - Joan zaitez Intiatives-ko partaidetza-espaziora
+ - Joan Ekimenen partaidetza-espaziora
- Jarraitu urrats berriak beste ekimen bat sortzeko
description: Garaikur hau ekimen berriak martxan jartzean ematen da, beste batzuekin partekatuz horiek lortzeko.
description_another: Parte-hartzaile honek %{score} ekimen argitaratzea lortu du.
@@ -214,7 +214,7 @@ eu:
help:
participatory_spaces:
initiatives:
- contextual: "
Ekimen batek ekimenez ekar dezakeen proposamen bat da (beste kanal edo partaidetza-espazio batzuk alde batera utzita) erakundearen sinadura (digitalak) bildumaren bidez ekintza zehatz bat gauzatzeko (araudia aldatzea, proiektu bat abiaraztea, aldatu departamentu edo kalean izena, etab.).
Ekimen baten sustatzaileak helburuak definitu, laguntza jaso, eztabaidatu, hedatu, eta parte-hartzaileei irekitako eztabaidetara bertaratu diren sinadurak biltzeko puntuak biltzen ditu.
Adibideak: Ekimen batek sinadurak jaso ditzake erakunde baten pertsona guztien artean kontsultatzeko, muntaia sortzeko edo deitzeko, edota erakundearen lurralde edo eremuko aurrekontu-gehikuntza prozesu bat hasteko. Sinadurak biltzeko prozesuan zehar, jende gehiago eskari horri gehitu eta erakundean aurrera eraman dezakegu.
\n"
+ contextual: "
Ekimen bat edonork bere kabuz susta dezakeen proposamen bat da (beste kanal edo partaidetza-espazioetatik aparte), sinadura digitalak bilduz, erakundeak ekintza jakin bat egin dezan (araudi bat aldatu, proiektu bat abiarazi, sail edo kale baten izena aldatu, etab.).
Ekimen baten sustatzaileek haren helburuak zehaztu, babesak bildu, eztabaidatu, zabaldu eta topaguneak zehaztu ditzakete, bertaratutakoen sinadurak biltzeko edo beste parte-hartzaile batzuei irekitako eztabaidak egiteko.
Adibideak: ekimen batek sinadurak bil ditzake erakunde bateko pertsona guztiei zuzendutako kontsulta bat deitzeko, batzar bat sortzeko edo deitzeko, edo erakundearen lurralde edo arlo baterako aurrekontua handitzeko prozesu bat abiarazteko. Sinadurak biltzeko prozesuan, pertsona gehiagok bat egin dezakete eskaera horrekin eta erakundean aurrera eraman.
\n"
page: "
Ekimen batek ekimenez ekar dezakeen proposamen bat da (beste kanal edo partaidetza-espazio batzuk alde batera utzita) erakundearen sinadura (digitalak) bildumaren bidez ekintza zehatz bat gauzatzeko (araudia aldatzea, proiektu bat abiaraztea, aldatu departamentu edo kalean izena, etab.).
Ekimen baten sustatzaileak helburuak definitu, laguntza jaso, eztabaidatu, hedatu, eta parte-hartzaileei irekitako eztabaidetara bertaratu diren sinadurak biltzeko puntuak biltzen ditu.
Adibideak: Ekimen batek sinadurak jaso ditzake erakunde baten pertsona guztien artean kontsultatzeko, muntaia sortzeko edo deitzeko, edota erakundearen lurralde edo eremuko aurrekontu-gehikuntza prozesu bat hasteko. Sinadurak biltzeko prozesuan zehar, jende gehiago eskari horri gehitu eta erakundean aurrera eraman dezakegu.
\n"
title: Zer dira ekimenak?
initiatives:
@@ -230,7 +230,7 @@ eu:
description: Deskribapena
initiative_votes_count: Babesen zenbaketa
initiatives: Ekimenak
- state: Estatu
+ state: Egoera
committee_requests:
index:
approve: Onartu
@@ -261,11 +261,11 @@ eu:
accept: Onartu ekimena
confirm: Ziur zaude?
confirm_send_to_technical_validation: Ziur zaude?
- discard: Ekimena baztertu
- export_pdf_signatures: Esportatu sinaduren PDF fitxetagia
+ discard: Kendu ekimena
+ export_pdf_signatures: Sinaduren PDFa esportatu
export_votes: Esportatu sinadurak
reject: Ekimena ukatu
- send_to_technical_validation: Baliozkotze teknikorako bidali
+ send_to_technical_validation: Bidali balidazio teknikora
success: Ekimena baliozkotze teknikora bidali da.
update: Eguneratu
form:
@@ -286,7 +286,7 @@ eu:
reject:
success: Ekimena zuzen ukatu da.
unpublish:
- success: Ekimena zuzen desargitaratu da.
+ success: Ekimena behar bezala desargitaratu da.
update:
error: Arazo bat izan da ekimena eguneratzean.
success: Ekimena zuzen eguneratu da.
@@ -324,8 +324,8 @@ eu:
edit:
update: Eguneratu
form:
- child_scope_threshold_enabled_help_html: 'Konfigurazio-ezarpen honek ez ditu onartzen konexiorik gabeko bozketak. Azpiesparruak gaitzen ditu eta eremu bat parte-hartzailearekin lotzen duen baimen-kudeatzaile batekin lan egiten du. Ziurtatu baimen hori hautatu duzula, beherago, baimenen konfigurazioan. Funtziona dezan, esparruak hierarkikoki eratu behar dira: 1 Nagusia - N Txikiak. Konfigurazio honen funtzionamenduari buruzko informazio gehiago, ikusi ekimenen administrazioari buruzko dokumentazioa.'
- only_global_scope_enabled_help_html: 'Markatu lauki hau "Aktibatu sinadurak azpiesparruaren arabera" gaitu baduzu eta eremu globala esparru nagusi gisa eratu baduzu. Lauki hori gaitzean, ekimenak sortzeko laguntzaileak ez du ekimen-motaren hautaketarik egingo. Konfigurazio horrek nola funtzionatzen duen jakiteko, kontsultatu esteka hau: link.'
+ child_scope_threshold_enabled_help_html: 'Konfigurazio-marka honek ez ditu lineaz kanpoko babesak onartzen. Azpieremuak gaitzen ditu eta eremu bat parte-hartzaileari lotzen dion baimen-kudeatzaile batekin funtzionatzen du. Ziurtatu baimen hori hautatzen duzula, beheko baimen-ezarpenetan. Funtziona dezan, eremuak hierarkikoki konfiguratu behar dira: 1 guraso - N seme-alaba. Konfigurazio honek nola funtzionatzen duen jakiteko, ikusi ekimenen administrazio-dokumentazioaren orria.'
+ only_global_scope_enabled_help_html: Markatu aukera hau "Azpieremuaren sinadura" gaitu baduzu eta eremu globala guraso-eremu gisa konfiguratu baduzu. Aukera hau gaituz gero, ekimen mota hautatzeko urratsa saltatu egingo da ekimena sortzeko laguntzailean. Konfigurazio honek nola funtzionatzen duen jakiteko, ikusi esteka hau.
options: Aukerak
signature_workflow_settings: Sinatzeko prozesuaren ezarpena
initiative_type_scopes:
@@ -343,14 +343,14 @@ eu:
unpublish: "%{user_name} k %{resource_name} ekimena baztertu du"
update: "%{user_name} parte-hartzaileak %{resource_name} ekimena eguneratu du"
initiatives_settings:
- update: "%{user_name} parte-hartzaieak batzarren konfigurazioa eguneratu du"
+ update: "%{user_name} parte-hartzaieak ekimenen ezarpenak eguneratu ditu"
initiatives_type:
create: "%{user_name} parte-hartzaileak %{resource_name} ekimen motak sortu ditu"
delete: "%{user_name} parte-hartzaileak %{resource_name} ekimen motak ezabatu ditu"
update: "%{user_name} parte-hartzaileak %{resource_name} ekimen motak eguneratu ditu"
admin_states:
accepted: Beharrezko sinadurak lortu ditu
- created: Ziriborroan
+ created: Zirriborratua
discarded: Baztertuta
open: Zabaldu
rejected: Beharrezko sinadurarik gabe
@@ -361,7 +361,7 @@ eu:
all: Guztiak
answered: Erantzunda
closed: Itxita
- open: Open
+ open: Irekita
rejected: Ez ditu lortu beharrezko sinadurak
filter_type_values:
all: Guztiak
@@ -397,9 +397,9 @@ eu:
callout_text_created: Zorionak! Zure ekimena zuzen sortu da.
callout_text_validating: Zure ekimena balidazio teknikora zuzen bidali da.
go_to_initiatives: Ekimenetara joan
- publish_helper_text_html: "Gogoan izan zure ekimena argitaratzeko teknikoki baliozkotu behar dela, administratzaile batek berrikus dezan.\n"
+ publish_helper_text_html: Gogoan izan zure ekimena argitaratzeko teknikoki baliozkotu behar dela, administratzaile batek berrikus dezan.
previous_form:
- back: Back
+ back: Atzera
promotal_committee:
individual_help_text: Zure ekimena sortu da, eta zirriborro gisa gorde da. Orain jendea gehitu behar zaio batzorde sustatzaileari.
invite_link_title: Jendea gonbidatzeko esteka
@@ -409,24 +409,23 @@ eu:
return_to_initiatives_button:
return_initiatives_html: Oraingoz, joan eta itzuli ekimenetara
select_initiative_type:
- back: Back
+ back: Atzera
choose_html: %{title}bat sortu nahi dut
- consult_existing_initiatives: Lehendik dauden ekimenak konsultatu
+ consult_existing_initiatives: Lehendik dauden ekimenak kontsultatu
continue: Jarraitu
more_information: Informazio gehiago
new: Beste ekimen bat sortu
select: Ekimen hau sustatu nahi dut
select_initiative_type_help_html: "
Ekimenak bide dira parte-hartzaileek parte har dezaten, erakundeak interes orokorraren aldeko ekintzak egin ditzan. Zein ekimen jarri nahi duzu abian?
"
- show_less: Gutxiago erakutsi
show_more: Gehiago erakutsi
subtitle: Zein ekimen sustatu nahi duzu?
- verification_required: Egiaztatu zure kontua ekimen hau sustatzeko.
+ verification_required: Egiaztatu zure kontua ekimen hau sustatzeko
send_to_technical_validation_button:
button: Bidali balidazio teknikora
confirm: Ekimena bidaliko duzu administrari batek berrikusi eta argitara dezan. Argitaratu ondoren, ezin izango duzu editatu. Ziur zaude?
share_committee_link:
invite_to_committee_help: Sustapen Batzordeko kideak gonbidatzeko esteka.
- invite_to_committee_help_2: Herritarren ekimen mota honek gutxienez %{committee_size} kidez (ziurtatzagiriak) osatutako batzorde sustatzailea behar du. Esteka hau partekatu behar duzu ekimen honetan parte hartzen duten gainerako pertsonekin. Zure kontaktuek esteka hau jasotzen dutenean, adierazitako urratsei jarraitu beharko diete.
+ invite_to_committee_help_2: Herritarren ekimen mota honek gutxienez %{committee_size} kidez (ziurtagiriak) osatutako batzorde sustatzailea behar du. Esteka hau partekatu behar duzu ekimen honetan parte hartzen duten gainerako pertsonekin. Zure kontaktuek esteka hau jasotzen dutenean, adierazitako urratsei jarraitu beharko diete.
more_information: Informazio gehiago
edit:
accept: Onartu ekimena
@@ -440,25 +439,25 @@ eu:
update: Eguneratu
events:
approve_membership_request:
- email_intro: "%{author_nickname} k onartu du zure eskaera %{resource_title} ekimenaren batzorde bultzatzailean parte hartzeko."
+ email_intro: "%{author_name} parte-hartzaileak onartu du zure eskaera %{resource_title} ekimenaren batzorde bultzatzailean parte hartzeko."
email_outro: 'Jakinarazpen hau jaso duzu %{resource_title} ekimenarekin bat egitea eskatu duzulako'
- email_subject: "%{author_nickname} k onartu du zure eskaera batzorde bultzatzailean parte hartzeko"
- notification_title: %{author_nickname} k onartu du zure eskaera %{resource_title} ekimenaren batzorde bultzatzailean parte hartzeko.
+ email_subject: "%{author_name} parte-hartzaileak onartu du zure eskaera batzorde bultzatzailean parte hartzeko"
+ notification_title: %{author_name} parte-hartzaileak onartu du zure eskaera %{resource_title} ekimenaren batzorde bultzatzailean parte hartzeko.
create_initiative_event:
- email_intro: "%{author_name} %{author_nickname} k, jarraitzen ari zarenak, beste ekimen bat sortu du, egiaztatu eta lagundu:"
- email_outro: Jakinarazpen hau jaso duzu %{author_nickname} jarraitzen ari zarelako. Aurreko estekan sartu jakinarazpenak jasotzeari uzteko.
- email_subject: '%{author_nickname} ren bete ekimen bat'
- notification_title: %{resource_title} ekimena %{author_name} %{author_nickname} sortu zen.
+ email_intro: "%{author_name} parte-hartzaileak, jarraitzen ari zarenak, beste ekimen bat sortu du, egiaztatu eta lagundu:"
+ email_outro: Jakinarazpen hau jaso duzu %{author_name} jarraitzen ari zarelako. Aurreko estekan jarraitzeari utzi ahal diozu.
+ email_subject: '%{author_name} parte-hartzailearen bete ekimen bat'
+ notification_title: '%{resource_title} eztabaida sortu da hemen: %{author_name}.'
revoke_membership_request:
- email_intro: "%{author_nickname} k ukatu egin du zure eskaera %{resource_title} ekimenaren batzorde bultzatzailean parte hartzeko."
+ email_intro: "%{author_name} parte-hartzaileak ukatu egin du zure eskaera %{resource_title} ekimenaren batzorde bultzatzailean parte hartzeko."
email_outro: 'Jakinarazpen hau jaso duzu eskatu duzulako parte hartzea %{resource_title} ekimenean.'
- email_subject: "%{author_nickname} k ukatu egin du zure eskaera batzorde bultzatzailean parte hartzeko"
- notification_title: %{author_nickname} k ukatu du zure eskaera %{resource_title} ekimenaren batzorde bultzatzailean parte hartzeko.
+ email_subject: "%{author_name} parte-hartzaileak ukatu egin du zure eskaera batzorde bultzatzailean parte hartzeko"
+ notification_title: %{author_name} parte-hartzaileak ukatu du zure eskaera %{resource_title} ekimenaren batzorde bultzatzailean parte hartzeko.
spawn_committee_request_event:
- email_intro: "%{applicant_nickname} k eskatu du %{resource_title} zure ekimenaren batzorde bultzatzailean parte hartzeko. Eskaera onartzeko edo ukatzeko, zoaz zure ekimenaren edizio-galdetegira."
+ email_intro: "%{applicant_name} parte-hartzaileak eskatu du %{resource_title} zure ekimenaren batzorde bultzatzailean parte hartzeko. Eskaera onartzeko edo ukatzeko, zoaz zure ekimenaren edizio-galdetegira."
email_outro: 'Jakinarazpen hau jaso duzu %{resource_title} ekimenaren egilea zarelako'
- email_subject: "%{applicant_nickname} k zure ekimenarekin bat egin nahi du"
- notification_title: %{applicant_nickname} k eskatu du %{resource_title} zure ekimenaren batzorde bultzatzailearekin bat egitea. Eskaera onartzeko edo ukatzeko, egin klik hemen aquí.
+ email_subject: "%{applicant_name} parte-hartzaileak zure ekimenarekin bat egin nahi du"
+ notification_title: %{applicant_name} parte-hartzaileak eskatu du %{resource_title} zure ekimenaren batzorde bultzatzailearekin bat egitea. Eskaera onartzeko edo ukatzeko, egin klik hemen aquí.
form:
add_attachments: Eranskinak gehitu
add_image: Irudia gehitu
@@ -492,7 +491,7 @@ eu:
invalid_authorization: Ekintzari ekiteko emandako datuak ez dira bateragarriak zure baimenekin edo baimen berri bat lortu behar duzu.
invalid_data: Zure nortasuna egiaztatzeko emandako datu pertsonal batzuk ez dira baliozkoak.
finish:
- back_to_initiative: Ekimenera itzuli
+ back_to_initiative: Itzuli ekimenera
title: Ekimena sinatu duzu
sms_phone_number:
confirmed_data: Zure datuak baieztatu dituzu.
@@ -536,7 +535,7 @@ eu:
area: Arloa
author: Egilea
myself: Nire ekimenak
- scope: Esparrua
+ scope: Eremua
state: Egoera
type: Mota
index_header:
@@ -549,7 +548,7 @@ eu:
most_commented: Iruzkin gehien dutenak
most_voted: Sinadura gehien dutenak
random: Random
- recent: Berrienetatik zaharrenetara
+ recent: Azkenak
recently_published: Oraintsu argitaratutakoa
pending_initiatives:
description: Ekimen horiek oraindik ez dira publikoak. Berrikus itzazue, mesedez, eta balioztatze teknikorako aurkez itzazue, argitara eman daitezen.
@@ -579,7 +578,7 @@ eu:
initiative_rejected_reason: Ekimen hau ukatu egin da sinadura faltagatik.
show:
area: Arloa
- before_send_to_technical_validation_announcement: 'Baliozkotze teknikorako ekimena bidali aurretik, %{count} kide gehiago gehitu behar dizkiozu batzorde sustatzaileari. < br/> < br/>Etxebatzordeko kide izan nahi duzun pertsonekin duzu esteka hau: %{href}'
+ before_send_to_technical_validation_announcement: 'Baliozkotze teknikorako ekimena bidali aurretik, %{count} kide gehiago gehitu behar dizkiozu batzorde sustatzaileari.
Etxebatzordeko kide izan nahi duzun pertsonekin duzu esteka hau: %{href}'
confirm: Ekimena bidaliko duzu administratzaile batek berrikus eta argitara dezan. Argitaratu ondoren, ezin izango duzu editatu. Ziur zaude?
edit: Editatu
initiative_data: Ekimenaren datuak
@@ -598,7 +597,7 @@ eu:
votes_blocked: Sinadura desgaituta dago
votes_count:
count:
- one: SIGNATURE
+ one: Sinadura
other: Sinadurak
initiatives_mailer:
creation_subject: Zure '%{title}'ekimena sortu egin da
@@ -671,16 +670,16 @@ eu:
first_progress_notification_at: Zein datatan bidali zen aurrerapenaren lehen jakinarazpena?
follows_count: Espazio hau zenbat parte-hartzaileek jarraitzen duten
offline_votes: Ekimen honek plataforma honetatik kanpo jaso dituen sinadura kopurua
- online_votes: Ekimen honek online jaso duen sinadura kopurua (plataformaren bidez zuzenean)
+ online_votes: Ekimen honek online jasotako sinaduren kopurua (zuzenean plataformaren bidez)
published_at: Zein egunetan argitaratu zen espazio hau
reference: Espazioaren erreferentzia bakarra
scope: Ekimenaren eremua
second_progress_notification_at: Zein datatan bidali zen aurrerapenaren bigarren jakinarazpena
signature_end_date: Zein datatan amaitzen da sinadura biltzeko epea
signature_start_date: Zein datatan hasten da sinadura biltzeko epea
- signature_type: Zein motatako sinadura bilketa (on-line edo aurrez aurre)
- signatures: Zenbat sinadura ditu ekimen honek?
- state: Zein egoera du ekimen honek une honetan?
+ signature_type: Zein motatako sinadura bilketa (online edo aurrez aurre)
+ signatures: Ekimen honek dituen sinaduren kopurua
+ state: Ekimen honek une honetan duen egoera
title: Ekimenaren izenburua
type: Ekimen mota
updated_at: Zein egunetan eguneratu zen azken aldiz espazio hau
@@ -704,7 +703,7 @@ eu:
promotal_committee: Bilatu sustatzaileak
select_initiative_type: Aukeratu
initiative_signature_creation_header:
- help_information_html: '%{iniciative_autor}-k sustatzen duen %{iniciative_title} ekimena sinatzeko, beharrezkoa da informazio jakin bat ematea, sinatzen duen ekimena legez loteslea izan dadin. Ez da zuri buruzko informaziorik argitaratuko.'
+ help_information_html: '%{initiative_author} ek sustatzen duen %%{initiative_title} ekimena sinatzeko, beharrezkoa da informazio jakin bat ematea, sinatzen duen ekimena legez loteslea izan dadin. Ez da zuri buruzko informaziorik argitaratuko.'
verify_your_identity: Zure nortasuna egiaztatu
initiatives:
no_initiatives_yet:
diff --git a/decidim-initiatives/config/locales/fi-plain.yml b/decidim-initiatives/config/locales/fi-plain.yml
index b3bdf7e546b13..4612ca1236999 100644
--- a/decidim-initiatives/config/locales/fi-plain.yml
+++ b/decidim-initiatives/config/locales/fi-plain.yml
@@ -417,7 +417,6 @@ fi-pl:
new: Luo uusi aloite
select: Haluan tukea tätä aloitetta
select_initiative_type_help_html: "
Aloitteet ovat keino, jolla osallistujat voivat edistää organisaation toimihenkilöiden toimimista yhteisen edun hyväksi. Millaisen aloitteen haluaisit käynnistää?
"
- show_less: Näytä vähemmän
show_more: Näytä enemmän
subtitle: Mitä aloitetta haluat kannattaa?
verification_required: Vahvista tilisi allekirjoittaaksesi tämän aloitteen
@@ -440,25 +439,25 @@ fi-pl:
update: Päivitä
events:
approve_membership_request:
- email_intro: "%{author_nickname} hyväksyi hakemuksesi kannatuskomitean jäseneksi aloitteelle %{resource_title}."
+ email_intro: "%{author_name} hyväksyi hakemuksesi kannatuskomitean jäseneksi aloitteelle %{resource_title}."
email_outro: 'Tämä ilmoitus on lähetetty sinulle, koska olet tehnyt hakemuksen aloitteelle: %{resource_title}'
- email_subject: "%{author_nickname} hyväksyi hakemuksesi kannatuskomitean jäseneksi"
- notification_title: %{author_nickname} hyväksyi hakemuksesi kannatuskomitean jäseneksi aloitteelle %{resource_title}.
+ email_subject: "%{author_name} hyväksyi hakemuksesi kannatuskomitean jäseneksi"
+ notification_title: %{author_name} hyväksyi hakemuksesi kannatuskomitean jäseneksi aloitteelle %{resource_title}.
create_initiative_event:
- email_intro: "%{author_name} %{author_nickname}, jota seuraat, on luonut uuden aloitteen. Tutustu siihen ja osallistu:"
- email_outro: Tämä ilmoitus on lähetetty sinulle, koska seuraat käyttäjää %{author_nickname}. Voit lopettaa ilmoitusten vastaanottamisen edellä esitetyn linkin kautta.
- email_subject: Uusi aloite käyttäjältä %{author_nickname}
- notification_title: %{author_name} %{author_nickname} on luonut aloitteen %{resource_title}.
+ email_intro: "Seuraamasi osallistuja %{author_name} on laatinut uuden aloitteen. Tutustu siihen ja osallistu:"
+ email_outro: Tämä ilmoitus on lähetetty sinulle, koska olet seuraat käyttäjää %{author_name}. Voit lopettaa ilmoitusten vastaanottamisen edellä esitetyn linkin kautta.
+ email_subject: Uusi aloite käyttäjältä %{author_name}
+ notification_title: %{author_name} loi aloiteen %{resource_title}.
revoke_membership_request:
- email_intro: "%{author_nickname} hylkäsi hakemuksesi kannatuskomitean jäseneksi aloitteelle %{resource_title}."
+ email_intro: "%{author_name} hylkäsi hakemuksesi kannatuskomitean jäseneksi aloitteelle %{resource_title}."
email_outro: 'Tämä ilmoitus on lähetetty sinulle, koska olet tehnyt hakemuksen aloitteelle: %{resource_title}.'
- email_subject: "%{author_nickname} hylkäsi hakemuksesi kannatuskomitean jäseneksi"
- notification_title: '%{author_nickname} hylkäsi hakemuksesi kannatuskomitean jäseneksi aloitteelle: %{resource_title}.'
+ email_subject: "%{author_name} hylkäsi hakemuksesi kannatuskomitean jäseneksi"
+ notification_title: %{author_name} hylkäsi hakemuksesi kannatuskomitean jäseneksi aloitteelle %{resource_title}.
spawn_committee_request_event:
- email_intro: "%{applicant_nickname} hakee jäseneksi kannatuskomiteaan aloitteellesi %{resource_title}. Voit hyväksyä tai hylätä hakemuksen aloitteen muokkauslomakkeen kautta."
+ email_intro: "%{applicant_name} hakee kannatuskomitean jäseneksi aloitteellesi %{resource_title}. Voit hyväksyä tai hylätä hakemuksen aloitteen muokkauslomakkeen kautta."
email_outro: 'Tämä ilmoitus on lähetetty sinulle, koska olet luonut aloitteen %{resource_title}'
- email_subject: "%{applicant_nickname} haluaa liittyä mukaan aloitteeseesi"
- notification_title: %{applicant_nickname} haki jäseneksi aloitteesi %{resource_title} kannatuskomiteaan. Voit hyväksyä tai hylätä pyynnön aloitteen muokkaussivulta.
+ email_subject: "%{applicant_name} haluaa liittyä mukaan aloitteeseesi"
+ notification_title: %{applicant_name} haki kannatuskomiteaan aloitteellesi %{resource_title}. Voit hyväksyä tai hylätä hakemuksen täältä.
form:
add_attachments: Lisää liitteitä
add_image: Lisää kuva
diff --git a/decidim-initiatives/config/locales/fi.yml b/decidim-initiatives/config/locales/fi.yml
index 96090e81dae33..f1616e9412f8a 100644
--- a/decidim-initiatives/config/locales/fi.yml
+++ b/decidim-initiatives/config/locales/fi.yml
@@ -245,7 +245,7 @@ fi:
order:
default: Oletus (vanhin ensin)
label: 'Järjestä elementit:'
- most_recent: Uusimmat
+ most_recent: Viimeisimmät
exports:
initiatives: Aloitteet
index:
@@ -417,7 +417,6 @@ fi:
new: Luo uusi aloite
select: Haluan tukea tätä aloitetta
select_initiative_type_help_html: "
Aloitteet ovat keino, jolla osallistujat voivat edistää organisaation toimihenkilöiden toimimista yhteisen edun hyväksi. Millaisen aloitteen haluaisit käynnistää?
"
- show_less: Näytä vähemmän
show_more: Näytä enemmän
subtitle: Mitä aloitetta haluat kannattaa?
verification_required: Vahvista tilisi allekirjoittaaksesi tämän aloitteen
@@ -440,25 +439,25 @@ fi:
update: Päivitä
events:
approve_membership_request:
- email_intro: "%{author_nickname} hyväksyi hakemuksesi kannatuskomitean jäseneksi aloitteelle %{resource_title}."
+ email_intro: "%{author_name} hyväksyi hakemuksesi kannatuskomitean jäseneksi aloitteelle %{resource_title}."
email_outro: 'Tämä ilmoitus on lähetetty sinulle, koska olet tehnyt hakemuksen aloitteelle: %{resource_title}'
- email_subject: "%{author_nickname} hyväksyi hakemuksesi kannatuskomitean jäseneksi"
- notification_title: %{author_nickname} hyväksyi hakemuksesi kannatuskomitean jäseneksi aloitteelle %{resource_title}.
+ email_subject: "%{author_name} hyväksyi hakemuksesi kannatuskomitean jäseneksi"
+ notification_title: %{author_name} hyväksyi hakemuksesi kannatuskomitean jäseneksi aloitteelle %{resource_title}.
create_initiative_event:
- email_intro: "%{author_name} %{author_nickname}, jota seuraat, on laatinut uuden aloitteen. Tutustu siihen ja osallistu:"
- email_outro: Tämä ilmoitus on lähetetty sinulle, koska seuraat käyttäjää %{author_nickname}. Voit lopettaa ilmoitusten vastaanottamisen edellä esitetyn linkin kautta.
- email_subject: Uusi aloite käyttäjältä %{author_nickname}
- notification_title: %{author_name} %{author_nickname} on laatinut aloitteen %{resource_title}.
+ email_intro: "Seuraamasi osallistuja %{author_name} on laatinut uuden aloitteen. Tutustu siihen ja osallistu:"
+ email_outro: Tämä ilmoitus on lähetetty sinulle, koska olet seuraat käyttäjää %{author_name}. Voit lopettaa ilmoitusten vastaanottamisen edellä esitetyn linkin kautta.
+ email_subject: Uusi aloite käyttäjältä %{author_name}
+ notification_title: %{author_name} loi aloiteen %{resource_title}.
revoke_membership_request:
- email_intro: "%{author_nickname} hylkäsi hakemuksesi kannatuskomitean jäseneksi aloitteelle %{resource_title}."
+ email_intro: "%{author_name} hylkäsi hakemuksesi kannatuskomitean jäseneksi aloitteelle %{resource_title}."
email_outro: 'Tämä ilmoitus on lähetetty sinulle, koska olet tehnyt hakemuksen aloitteelle: %{resource_title}.'
- email_subject: "%{author_nickname} hylkäsi hakemuksesi kannatuskomitean jäseneksi"
- notification_title: '%{author_nickname} hylkäsi hakemuksesi kannatuskomitean jäseneksi aloitteelle: %{resource_title}.'
+ email_subject: "%{author_name} hylkäsi hakemuksesi kannatuskomitean jäseneksi"
+ notification_title: %{author_name} hylkäsi hakemuksesi kannatuskomitean jäseneksi aloitteelle %{resource_title}.
spawn_committee_request_event:
- email_intro: "%{applicant_nickname} hakee jäseneksi kannatuskomiteaan aloitteellesi %{resource_title}. Voit hyväksyä tai hylätä hakemuksen aloitteen muokkauslomakkeen kautta."
+ email_intro: "%{applicant_name} hakee kannatuskomitean jäseneksi aloitteellesi %{resource_title}. Voit hyväksyä tai hylätä hakemuksen aloitteen muokkauslomakkeen kautta."
email_outro: 'Tämä ilmoitus on lähetetty sinulle, koska olet laatinut aloitteen %{resource_title}'
- email_subject: "%{applicant_nickname} haluaa liittyä mukaan aloitteeseesi"
- notification_title: %{applicant_nickname} haki jäseneksi aloitteesi %{resource_title} kannatuskomiteaan. Voit hyväksyä tai hylätä pyynnön aloitteen muokkaussivulta.
+ email_subject: "%{applicant_name} haluaa liittyä mukaan aloitteeseesi"
+ notification_title: %{applicant_name} haki kannatuskomiteaan aloitteellesi %{resource_title}. Voit hyväksyä tai hylätä hakemuksen täältä.
form:
add_attachments: Lisää liitteitä
add_image: Lisää kuva
diff --git a/decidim-initiatives/config/locales/fr-CA.yml b/decidim-initiatives/config/locales/fr-CA.yml
index 3536865f038df..833dbcbc49013 100644
--- a/decidim-initiatives/config/locales/fr-CA.yml
+++ b/decidim-initiatives/config/locales/fr-CA.yml
@@ -111,6 +111,8 @@ fr-CA:
initiatives_menu:
see_initiative: Voir la pétition
initiatives_settings: Paramètres
+ initiatives_submenu:
+ info: À propos de cette pétition
initiatives_types: Types d'initiatives
moderations: Modérations
models:
@@ -330,6 +332,7 @@ fr-CA:
create: Créer
title: Nouveau type d'initiative
update:
+ error: Une erreur s'est produite lors de la mise à jour du type de pétition.
success: Le type de pétition a été mis à jour avec succès.
admin_log:
initiative:
@@ -373,8 +376,14 @@ fr-CA:
highlighted_initiatives:
name: Initiatives mises en avant
create_initiative:
+ committee_member:
+ confirm_approve: Êtes-vous sûr de vouloir approuver ce membre ?
+ confirm_revoke: Êtes-vous sûr de vouloir retirer ce membre ?
+ revoke: Retirer
fill_data:
+ confirm_discard: Êtes-vous sûr de vouloir abandonner cette pétition ?
continue: Continuer
+ discard: Abandonner la pétition
fill_data_help: "
Vérifier le contenu de votre pétition : le titre est-il facile à comprendre ? L'objectif de votre pétition est-il clair ?
Vous devez choisir le type de signature : en présentiel, en ligne ou une combinaison des deux
Quelle est le secteur géographique de l'initiative ?
"
select_area: Sélectionnez une zone
select_scope: Sélectionnez une portée
@@ -389,6 +398,12 @@ fr-CA:
new: Créer une nouvelle pétition
select: Créer une initiative
verification_required: Vérifiez votre compte pour créer une pétition
+ send_to_technical_validation_button:
+ button: Envoyer pour validation technique
+ confirm: Vous êtes sur le point d'envoyer cette pétition à un administrateur afin qu'il l'examine et la publie. Une fois publiée, vous ne pourrez plus la modifier. Êtes-vous sûr de vouloir continuer ?
+ share_committee_link:
+ invite_to_committee_help: Lien d'invitation pour les personnes qui feront partie du comité de promotion.
+ more_information: Plus d'informations
edit:
accept: Accepter la pétition
back: Retour
@@ -401,25 +416,11 @@ fr-CA:
update: Mettre à jour
events:
approve_membership_request:
- email_intro: "%{author_nickname} a accepté votre candidature pour faire partie du comité de promotion de la pétition %{resource_title}."
email_outro: 'Vous avez reçu cette notification parce que vous avez demandé à faire partie du comité de promotion de cette pétition: %{resource_title}'
- email_subject: "%{author_nickname} a accepté votre demande de rejoindre le comité de promotion"
- notification_title: %{author_nickname} a accepté votre candidature pour faire partie du comité de promotion de la pétition suivante %{resource_title}.
- create_initiative_event:
- email_intro: "%{author_name} %{author_nickname}, que vous suivez, a créé une nouvelle initiative, lisez -la et contribuez :"
- email_outro: Vous avez reçu cette notification, car vous suivez %{author_nickname}. Vous pouvez arrêter de recevoir des notifications à partir du lien précédent.
- email_subject: Nouvelle initiative de %{author_nickname}
- notification_title: L'initiative %{resource_title} a été créée par %{author_name} %{author_nickname}.
revoke_membership_request:
- email_intro: "%{author_nickname} a accepté votre candidature pour faire partie du comité de promotion de la pétition %{resource_title}."
email_outro: 'Vous avez reçu cette notification parce que vous avez demandé à rejoindre cette pétition : %{resource_title}.'
- email_subject: "%{author_nickname} a rejeté votre candidature au comité de promotion"
- notification_title: %{author_nickname} a rejeté votre candidature pour faire partie du comité de promotion de la pétition suivante %{resource_title}.
spawn_committee_request_event:
- email_intro: "%{applicant_nickname} a postulé pour faire partie du comité de promotion de votre pétition %{resource_title}. Pour accepter ou rejeter la demande, allez dans le formulaire de modification de votre initiative."
email_outro: 'Vous avez reçu cette notification car vous êtes l''auteur de cette pétition : %{resource_title}'
- email_subject: "%{applicant_nickname} veut rejoindre le comité de promotion de votre pétition"
- notification_title: %{applicant_nickname} a postulé pour faire partie du comité de promotion de votre pétition %{resource_title}. Pour accepter ou rejeter la demande, cliquez ici.
form:
add_attachments: Ajouter des pièces jointes
add_image: Ajouter une image
@@ -510,6 +511,8 @@ fr-CA:
random: Aléatoire
recent: Les plus récentes
recently_published: Plus récemment publié
+ pending_initiatives:
+ title: Versions préliminaires et propositions en attente
print:
address: Adresse
author_title: Auteur de la pétition
@@ -582,6 +585,7 @@ fr-CA:
show:
badge_name:
accepted: Assez de signatures
+ created: Rédigé
discarded: Abandonné
open: Ouverte
rejected: Pas assez de signatures
@@ -595,9 +599,23 @@ fr-CA:
expired: Expirées
unavailable_scope: Portée indisponible
update:
+ error: Un problème est survenu lors de la mise à jour de la pétition.
success: La pétition a été mise à jour avec succès.
menu:
initiatives: Pétitions
+ open_data:
+ help:
+ initiatives:
+ answer: La suite donnée à cette pétition (le cas échéant)
+ authors: Les auteurs de cette pétition
+ comments_count: Le nombre de commentaires suscités par cette pétition
+ description: La description de cette pétition
+ first_progress_notification_at: La date à laquelle la première notification de progrès a été envoyée
+ offline_votes: Le nombre de signatures récoltées par cette pétition en dehors de la plateforme
+ online_votes: Le nombre de signatures récoltées en ligne par cette pétition (directement via la plateforme)
+ scope: La portée de cette pétition
+ second_progress_notification_at: La date à laquelle la deuxième notification de progrès a été envoyée
+ signature_end_date: La date à laquelle la période de collecte des signatures prend fin
resources:
initiative:
actions:
diff --git a/decidim-initiatives/config/locales/fr.yml b/decidim-initiatives/config/locales/fr.yml
index f1a62f9ecba10..b740c1d2cf1c8 100644
--- a/decidim-initiatives/config/locales/fr.yml
+++ b/decidim-initiatives/config/locales/fr.yml
@@ -111,6 +111,8 @@ fr:
initiatives_menu:
see_initiative: Voir la pétition
initiatives_settings: Paramètres
+ initiatives_submenu:
+ info: À propos de cette pétition
initiatives_types: Types de pétitions
moderations: Modérations
models:
@@ -330,6 +332,7 @@ fr:
create: Créer
title: Nouveau type de pétition
update:
+ error: Une erreur s'est produite lors de la mise à jour du type de pétition.
success: Le type de pétition a été mis à jour avec succès.
admin_log:
initiative:
@@ -373,8 +376,14 @@ fr:
highlighted_initiatives:
name: Pétitions mises en avant
create_initiative:
+ committee_member:
+ confirm_approve: Êtes-vous sûr de vouloir approuver ce membre ?
+ confirm_revoke: Êtes-vous sûr de vouloir retirer ce membre ?
+ revoke: Retirer
fill_data:
+ confirm_discard: Êtes-vous sûr de vouloir abandonner cette pétition ?
continue: Continuer
+ discard: Abandonner la pétition
fill_data_help: "
Vérifier le contenu de votre pétition : le titre est-il facile à comprendre ? L'objectif de votre pétition est-il clair ?
Vous devez choisir le type de signature : en présentiel, en ligne ou une combinaison des deux
Quelle est le secteur géographique de l'initiative ?
"
select_area: Sélectionnez une zone
select_scope: Sélectionnez une portée
@@ -389,6 +398,12 @@ fr:
new: Créer une nouvelle pétition
select: Créer une pétition
verification_required: Vérifiez votre compte pour créer une pétition
+ send_to_technical_validation_button:
+ button: Envoyer pour validation technique
+ confirm: Vous êtes sur le point d'envoyer cette pétition à un administrateur afin qu'il l'examine et la publie. Une fois publiée, vous ne pourrez plus la modifier. Êtes-vous sûr de vouloir continuer ?
+ share_committee_link:
+ invite_to_committee_help: Lien d'invitation pour les personnes qui feront partie du comité de promotion.
+ more_information: Plus d'informations
edit:
accept: Accepter la pétition
back: Retour
@@ -401,25 +416,11 @@ fr:
update: Mettre à jour
events:
approve_membership_request:
- email_intro: "%{author_nickname} a accepté votre candidature pour faire partie du comité de promotion de la pétition %{resource_title}."
email_outro: 'Vous avez reçu cette notification parce que vous avez demandé à faire partie du comité de promotion de cette pétition: %{resource_title}. Si vous souhaitez vous désabonner des notifications, connectez-vous à la plateforme, puis rendez-vous dans l''onglet “Mon compte” > “Paramètres des notifications”.'
- email_subject: "%{author_nickname} a accepté votre demande de rejoindre le comité de promotion"
- notification_title: %{author_nickname} a accepté votre candidature pour faire partie du comité de promotion de la pétition suivante %{resource_title}.
- create_initiative_event:
- email_intro: "%{author_name} %{author_nickname}, que vous suivez, a créé une nouvelle pétition, lisez -la et contribuez :"
- email_outro: Vous avez reçu cette notification, car vous suivez %{author_nickname}. Si vous souhaitez vous désabonner des notifications, connectez-vous à la plateforme, puis rendez-vous dans l'onglet “Mon compte” > “Paramètres des notifications”.
- email_subject: Nouvelle pétition de %{author_nickname}
- notification_title: La pétition %{resource_title} a été créée par %{author_name} %{author_nickname}.
revoke_membership_request:
- email_intro: "%{author_nickname} a rejeté votre candidature pour faire partie du comité de promotion de la pétition %{resource_title}."
email_outro: 'Vous avez reçu cette notification parce que vous avez demandé à rejoindre cette pétition : %{resource_title}. Si vous souhaitez vous désabonner des notifications, connectez-vous à la plateforme, puis rendez-vous dans l''onglet “Mon compte” > “Paramètres des notifications”.'
- email_subject: "%{author_nickname} a rejeté votre candidature au comité de promotion"
- notification_title: %{author_nickname} a rejeté votre candidature pour faire partie du comité de promotion de la pétition suivante %{resource_title}.
spawn_committee_request_event:
- email_intro: "%{applicant_nickname} a postulé pour faire partie du comité de promotion de votre pétition %{resource_title}. Pour accepter ou rejeter la demande, allez dans le formulaire de modification de votre pétition."
email_outro: 'Vous avez reçu cette notification car vous êtes l''auteur de cette pétition : %{resource_title}. Si vous souhaitez vous désabonner des notifications, connectez-vous à la plateforme, puis rendez-vous dans l''onglet “Mon compte” > “Paramètres des notifications”.'
- email_subject: "%{applicant_nickname} veut rejoindre le comité de promotion de votre pétition"
- notification_title: %{applicant_nickname} a postulé pour faire partie du comité de promotion de votre pétition %{resource_title}. Pour accepter ou rejeter la demande, cliquez ici.
form:
add_attachments: Ajouter des pièces jointes
add_image: Ajouter une image
@@ -510,6 +511,8 @@ fr:
random: Aléatoire
recent: Les plus récentes
recently_published: Plus récemment publié
+ pending_initiatives:
+ title: Versions préliminaires et propositions en attente
print:
address: Adresse
author_title: Auteur de la pétition
@@ -582,6 +585,7 @@ fr:
show:
badge_name:
accepted: Assez de signatures
+ created: Rédigé
discarded: Retirée
open: Ouverte
rejected: Pas assez de signatures
@@ -595,9 +599,23 @@ fr:
expired: Expirées
unavailable_scope: Portée indisponible
update:
+ error: Un problème est survenu lors de la mise à jour de la pétition.
success: La pétition a été mise à jour avec succès.
menu:
initiatives: Pétitions
+ open_data:
+ help:
+ initiatives:
+ answer: La suite donnée à cette pétition (le cas échéant)
+ authors: Les auteurs de cette pétition
+ comments_count: Le nombre de commentaires suscités par cette pétition
+ description: La description de cette pétition
+ first_progress_notification_at: La date à laquelle la première notification de progrès a été envoyée
+ offline_votes: Le nombre de signatures récoltées par cette pétition en dehors de la plateforme
+ online_votes: Le nombre de signatures récoltées en ligne par cette pétition (directement via la plateforme)
+ scope: La portée de cette pétition
+ second_progress_notification_at: La date à laquelle la deuxième notification de progrès a été envoyée
+ signature_end_date: La date à laquelle la période de collecte des signatures prend fin
resources:
initiative:
actions:
diff --git a/decidim-initiatives/config/locales/gl.yml b/decidim-initiatives/config/locales/gl.yml
index fe575ed145c80..483b6fa212422 100644
--- a/decidim-initiatives/config/locales/gl.yml
+++ b/decidim-initiatives/config/locales/gl.yml
@@ -212,12 +212,6 @@ gl:
choose_html: Quero crear un %{title}
more_information: (Máis información)
select: Quero promocionar esta iniciativa
- events:
- create_initiative_event:
- email_intro: "%{author_name} %{author_nickname}, quen está seguindo, creou unha nova iniciativa, revisa e contribúe:"
- email_outro: Recibiches esta notificación porque estás seguindo %{author_nickname}. Podes deixar de recibir notificacións seguindo a ligazón anterior.
- email_subject: Nova iniciativa por %{author_nickname}
- notification_title: A %{resource_title} iniciativa foi creada por %{author_name} %{author_nickname}.
initiative_signatures:
finish:
back_to_initiative: Volver á iniciativa
diff --git a/decidim-initiatives/config/locales/hu.yml b/decidim-initiatives/config/locales/hu.yml
index f75468c70c4c7..f7ca8d63cde35 100644
--- a/decidim-initiatives/config/locales/hu.yml
+++ b/decidim-initiatives/config/locales/hu.yml
@@ -349,25 +349,11 @@ hu:
update: Frissítés
events:
approve_membership_request:
- email_intro: "%{author_nickname} elfogadta a jelentkezésedet, hogy részt vegyen a %{resource_title} kezdeményezést előterjesztő bizottságban."
email_outro: 'Ezt az értesítést azért kaptad, mert jelentkeztél a %{resource_title} kezdeményezéshez'
- email_subject: "%{author_nickname} elfogadta a jelentkezésedet az előterjesztő bizottságba"
- notification_title: %{author_nickname} elfogadta a jelentkezésedet a %{resource_title} kezdeményezés előterjesztő bizottságába.
- create_initiative_event:
- email_intro: "%{author_name} %{author_nickname} (akit követsz) új kezdeményezést hozott létre, nézd meg és tegyél hozzá valamit:"
- email_outro: 'Ezt az értesítést azért kaptad, mert őt követed: "%{author_nickname}". Az értesítéseket a következő linkre kattintva kapcsolhatod ki.'
- email_subject: '%{author_nickname} új kezdeményezést indított'
- notification_title: 'A(z) %{resource_title}kezdeményezés létrejött itt, általa: %{author_name} %{author_nickname}.'
revoke_membership_request:
- email_intro: "%{author_nickname} visszautasította a jelentkezésedet, hogy részt vegyél a %{resource_title} kezdeményezést előterjesztő bizottságban."
email_outro: 'Ezt az értesítést azért kaptad, mert jelentkeztél a %{resource_title} kezdeményezéshez.'
- email_subject: "%{author_nickname} visszautasította a jelentkezésedet az előterjesztő bizottságba"
- notification_title: %{author_nickname} visszautasította a jelentkezésedet a %{resource_title} kezdeményezés előterjesztő bizottságába.
spawn_committee_request_event:
- email_intro: "%{applicant_nickname} a %{resource_title} kezdeményezésed előterjesztő bizottságába jelentkezett. Az elfogadást vagy visszautasítását a kezdeményezésed szerkesztésénél teheted meg."
email_outro: 'Ezt az értesítést azért kaptad, mert Te vagy a %{resource_title} kezdeményezés elindítója.'
- email_subject: "%{applicant_nickname} szeretne csatlakozni a kezdeményezésedhez"
- notification_title: %{applicant_nickname} a %{resource_title} kezdeményezésed előterjesztő bizottságába jelentkezett. Az elfogadáshoz vagy elutasításhoz kattints ide.
initiative_signatures:
finish:
back_to_initiative: Vissza a kezdeményezéshez
diff --git a/decidim-initiatives/config/locales/id-ID.yml b/decidim-initiatives/config/locales/id-ID.yml
index 9cffafa8cf5b1..49f96936e68eb 100644
--- a/decidim-initiatives/config/locales/id-ID.yml
+++ b/decidim-initiatives/config/locales/id-ID.yml
@@ -207,12 +207,6 @@ id:
choose_html: Saya ingin membuat %{title}
more_information: (Informasi lebih lanjut)
select: Saya ingin mempromosikan inisiatif ini
- events:
- create_initiative_event:
- email_intro: "%{author_name} %{author_nickname}, siapa yang Anda ikuti, telah membuat inisiatif baru, lihat dan sumbangkan:"
- email_outro: Anda telah menerima pemberitahuan ini karena Anda mengikuti %{author_nickname}. Anda dapat berhenti menerima notifikasi mengikuti tautan sebelumnya.
- email_subject: Inisiatif baru dengan %{author_nickname}
- notification_title: Inisiatif %{resource_title} dibuat oleh %{author_name} %{author_nickname}.
initiative_signatures:
finish:
back_to_initiative: Kembali ke inisiatif
diff --git a/decidim-initiatives/config/locales/is-IS.yml b/decidim-initiatives/config/locales/is-IS.yml
index 2b3586bd48f99..ec6153be1ab11 100644
--- a/decidim-initiatives/config/locales/is-IS.yml
+++ b/decidim-initiatives/config/locales/is-IS.yml
@@ -109,12 +109,6 @@ is:
select_initiative_type:
back: Til baka
more_information: (Meiri upplýsingar)
- events:
- create_initiative_event:
- email_intro: "%{author_name} %{author_nickname}, sem þú fylgist með, hefur búið til nýtt frumkvæði, athugaðu það og stuðlað að:"
- email_outro: Þú hefur fengið þessa tilkynningu vegna þess að þú fylgist með %{author_nickname}. Þú getur hætt við að fá tilkynningar eftir fyrri tengilinn.
- email_subject: Nýtt frumkvæði með %{author_nickname}
- notification_title: %{resource_title} frumkvöðull var búin til af %{author_name} %{author_nickname}.
initiatives:
count:
title:
diff --git a/decidim-initiatives/config/locales/it.yml b/decidim-initiatives/config/locales/it.yml
index 4aba6366ad47f..bd21b22455997 100644
--- a/decidim-initiatives/config/locales/it.yml
+++ b/decidim-initiatives/config/locales/it.yml
@@ -300,25 +300,11 @@ it:
update: Modifica
events:
approve_membership_request:
- email_intro: "%{author_nickname} ha respinto la tua richiesta di far parte del comitato promotore per la seguente iniziativa %{resource_title}."
email_outro: 'Hai ricevuto questa notifica perché sei l''autore di questa iniziativa: %{resource_title}'
- email_subject: "%{author_nickname} ha accettato la tua candidatura al comitato promoter"
- notification_title: %{author_nickname} ha respinto la tua richiesta di far parte del comitato di promozione per la seguente iniziativa %{resource_title}.
- create_initiative_event:
- email_intro: "%{author_name} %{author_nickname}, che stai seguendo, ha creato una nuova iniziativa, dai un'occhiata e dai il tuo contributo:"
- email_outro: Hai ricevuto questa notifica perché stai seguendo %{author_nickname}. È possibile interrompere la ricezione di notifiche seguendo il collegamento precedente.
- email_subject: Nuova iniziativa di %{author_nickname}
- notification_title: L'iniziativa %{resource_title} è stata creata da %{author_name} %{author_nickname}.
revoke_membership_request:
- email_intro: "%{author_nickname} ha respinto la tua richiesta di far parte del comitato promoter per la seguente iniziativa %{resource_title}."
email_outro: 'Hai ricevuto questa notifica perché sei l''autore di questa iniziativa: %{resource_title}.'
- email_subject: "%{author_nickname} ha respinto la tua richiesta per il comitato promoter"
- notification_title: %{author_nickname} ha respinto la tua richiesta di far parte del comitato di promozione per la seguente iniziativa %{resource_title}.
spawn_committee_request_event:
- email_intro: "%{applicant_nickname} ha fatto domanda per il comitato promoter della tua iniziativa %{resource_title}. Per accettare o respingere l'applicazione, vai al modulo di modifica della tua iniziativa."
email_outro: 'Hai ricevuto questa notifica perché sei l''autore di questa iniziativa: %{resource_title}'
- email_subject: "%{applicant_nickname} vuole unirsi alla tua iniziativa"
- notification_title: %{applicant_nickname} ha fatto domanda per il comitato promoter della tua iniziativa %{resource_title}. Per accettare o rifiutare clicca qui.
initiative_signatures:
finish:
back_to_initiative: Ritorno all'iniziativa
diff --git a/decidim-initiatives/config/locales/ja.yml b/decidim-initiatives/config/locales/ja.yml
index 15f7a4e04f06a..049dc487f7d2d 100644
--- a/decidim-initiatives/config/locales/ja.yml
+++ b/decidim-initiatives/config/locales/ja.yml
@@ -414,7 +414,6 @@ ja:
new: 新しいイニシアチブを作成
select: 私はこのイニシアチブを推進したいです
select_initiative_type_help_html: "
"
- show_less: 一部のみ表示
show_more: もっと見る
subtitle: どのような取り組みを推進したいですか?
verification_required: このイニシアチブを推進するためにあなたのアカウントを確認してください
@@ -437,25 +436,25 @@ ja:
update: 更新する
events:
approve_membership_request:
- email_intro: "%{author_nickname} は、%{resource_title} イニシアチブの推進委員会に参加するあなたの申請を承認しました。"
+ email_intro: "%{author_name} は、イニシアチブ %{resource_title} の推進委員会メンバーとなるためのあなたの申請を承認しました。"
email_outro: 'この通知を受け取ったのは、イニシアチブ %{resource_title} に応募したためです。'
- email_subject: "%{author_nickname} が推進委員会への申請を承認しました"
- notification_title: %{author_nickname} は、以下のイニシアチブ %{resource_title} のための推進委員会の一員となるためのあなたの申請を承認しました。
+ email_subject: "%{author_name} が推進委員会へのあなたの申請を承認しました"
+ notification_title: %{author_name} は、以下のイニシアチブ %{resource_title} の推進委員会のメンバーとなるためのあなたの申請を承認しました。
create_initiative_event:
- email_intro: "あなたがフォローしている%{author_name} %{author_nickname}が新しいイニシアチブを作成しました。チェックして貢献してください:"
- email_outro: '%{author_nickname}をフォローしているため、この通知を受け取りました。前のリンクに続く通知の受信を停止することができます。'
- email_subject: '%{author_nickname} による新しいイニシアチブの作成'
- notification_title: %{resource_title} イニシアチブは、 %{author_name} %{author_nickname} によって作成されました。
+ email_intro: "フォロー中の %{author_name} が新しいイニシアチブを作成しました。ぜひ内容を確認し、ご協力ください:"
+ email_outro: '%{author_name} をフォローしているため、この通知が届きました。前のリンクからフォローを解除することで、通知の受信を停止できます。'
+ email_subject: '%{author_name} による新しいイニシアチブ'
+ notification_title: %{resource_title} イニシアチブは %{author_name} によって作成されました。
revoke_membership_request:
- email_intro: "%{author_nickname} は、以下のイニシアチブ %{resource_title} の推進委員会に参加する申請を拒否しました。"
+ email_intro: "%{author_name} により、以下のイニシアチブ %{resource_title} の推進委員会メンバーとなるための申請が却下されました。"
email_outro: 'この通知を受け取ったのは、イニシアチブ %{resource_title} に応募したためです。'
- email_subject: "%{author_nickname} が推進委員会への申請を拒否しました"
- notification_title: %{author_nickname} は、以下のイニシアチブ %{resource_title} のための推進委員会の一員となるためのあなたの申請を拒否しました。
+ email_subject: "%{author_name} があなたからの推進委員会への申請を却下しました"
+ notification_title: %{author_name} は、以下のイニシアチブ %{resource_title} の推進委員会メンバーとしての申請を却下しました。
spawn_committee_request_event:
- email_intro: "%{applicant_nickname} は、あなたのイニシアチブの推進委員会 %{resource_title} への参加を希望しました。リクエストを承認または拒否するには、イニシアチブの編集フォームに進んでください。"
+ email_intro: "%{applicant_name} がイニシアチブ %{resource_title} の推進委員会に応募しました。承認または却下するには、イニシアチブの編集フォームにアクセスしてください。"
email_outro: 'この通知を受け取ったのは、イニシアチブ %{resource_title} の作成者だからです。'
- email_subject: "%{applicant_nickname} があなたのイニシアチブに参加しようとしています"
- notification_title: %{applicant_nickname} があなたのイニシアチブの推進委員会に申請しました %{resource_title}. 受け入れるか拒否するには ここをクリックしてください。
+ email_subject: "%{applicant_name} はあなたのイニシアチブへの参加を希望しています"
+ notification_title: %{applicant_name} がイニシアチブ %{resource_title} の推進委員会に応募しました。承認または拒否するには、こちらをクリックしてください。
form:
add_attachments: 添付ファイルを追加
add_image: 画像を追加
diff --git a/decidim-initiatives/config/locales/lb.yml b/decidim-initiatives/config/locales/lb.yml
index a545e9e157c5b..cb857daf9770d 100644
--- a/decidim-initiatives/config/locales/lb.yml
+++ b/decidim-initiatives/config/locales/lb.yml
@@ -254,25 +254,11 @@ lb:
update: Aktualiséieren
events:
approve_membership_request:
- email_intro: "%{author_nickname} hat Ihre Anfrage fürs Promoter-Komittee der Initiative %{resource_title} akzeptiert."
email_outro: 'Sie haben diese Benachrichtigung erhalten, weil Sie sich bei dieser Initiative beworben haben: %{resource_title}'
- email_subject: "%{author_nickname} hat Ihre Anfrage fürs Promoter-Komittee akzeptiert"
- notification_title: %{author_nickname} hat Ihre Anfrage fürs Promoter-Komittee der Initiative %{resource_title} akzeptiert.
- create_initiative_event:
- email_intro: "%{author_name} %{author_nickname}, dem du folgst, hat eine neue Initiative erstellt, sehen Sie es sich an und reden Sie mit:"
- email_outro: Du hues dës Noriicht kritt, well s'du dem %{author_nickname} nogees. Falls du esou Noriichten net méi wëlls kréien, géi op den Link uewen.
- email_subject: Neue Initiative von %{author_nickname}
- notification_title: Die Initiative %{resource_title} wurde von %{author_name} %{author_nickname} erstellt.
revoke_membership_request:
- email_intro: "%{author_nickname} hat Ihre Anfrage fürs Promoter-Komittee der Initiative %{resource_title} abgelehnt."
email_outro: 'Sie haben diese Benachrichtigung erhalten, weil Sie sich bei dieser Initiative beworben haben: %{resource_title}.'
- email_subject: "%{author_nickname} hat Ihre Anfrage fürs Promoter-Komittee abgelehnt"
- notification_title: %{author_nickname} hat Ihre Anfrage für das Promoter-Komittee der Initiative %{resource_title} abgelehnt.
spawn_committee_request_event:
- email_intro: "%{applicant_nickname} hat sich fürs Promoter-Komittee Ihrer Initiative %{resource_title} beworben. Um die Anfrage zu akzeptieren oder abzulehnen, besuchen Sie das Bearbeitungsformular Ihrer Initiative."
email_outro: 'Sie haben diese Benachrichtigung erhalten, weil Sie der Autor der Initiative %{resource_title} sind'
- email_subject: "%{applicant_nickname} möchte Ihrer Initiative beitreten"
- notification_title: %{applicant_nickname} hat sich für das Promoter-Komittee Ihrer Initiative %{resource_title} beworben. Um anzunehmen oder abzulehnen, klicken Sie hier.
initiative_signatures:
finish:
back_to_initiative: Zurück zur Initiative
diff --git a/decidim-initiatives/config/locales/lt.yml b/decidim-initiatives/config/locales/lt.yml
index 81801c789d01e..6ce55c5c51ad8 100644
--- a/decidim-initiatives/config/locales/lt.yml
+++ b/decidim-initiatives/config/locales/lt.yml
@@ -359,25 +359,11 @@ lt:
update: Atnaujinti
events:
approve_membership_request:
- email_intro: "%{author_nickname} priėmė aplikaciją tapti remėjų komiteto dalimi %{resource_title} iniciatyvai."
email_outro: 'Ši pranešimą gavote nes aplikavote į iniciatyvą: %{resource_title}'
- email_subject: "%{author_nickname} priėmė Jūsų aplikaciją į remėjų komitetą"
- notification_title: %{author_nickname} priėmė Jūsų aplikaciją tapti remėjų komiteto dalimi šiai iniciatyvai:%{resource_title}.
- create_initiative_event:
- email_intro: "%{author_name}%{author_nickname} kurį sekate sukūrė naują iniciatyvą. Ją rasite čia:"
- email_outro: Šį pranešimą gavote dėl to, kad sekate %{author_nickname}. Jeigu nebenorite gauti pranešimų, spustelėkite aukščiau esančią nuorodą.
- email_subject: Nauja %{author_nickname} iniciatyva
- notification_title: Iniciatyvą %{resource_title} sukūrė %{author_name} %{author_nickname}.
revoke_membership_request:
- email_intro: "%{author_nickname} atmetė Jūsų aplikaciją tapti remėjų komiteto nariu %{resource_title} iniciatyvai."
email_outro: 'Ši pranešimą gavote nes aplikavote į iniciatyvą: %{resource_title}.'
- email_subject: "%{author_nickname} priėmė Jūsų aplikaciją į remėjų komitetą"
- notification_title: %{author_nickname} atmetė Jūsų aplikaciją tapti remėjų komiteto dalimi šiai iniciatyvai:%{resource_title}.
spawn_committee_request_event:
- email_intro: "%{applicant_nickname} pateikė paraišką prisijungti prie %{resource_title} iniciatyvos remėjų komiteto. Norėdami priimti ar atmesti paraišką, eikite į iniciatyvos redagavimo formą."
email_outro: 'Šį pranešimą gavote dėl to, kad esate %{resource_title} iniciatyvos autorius'
- email_subject: "%{applicant_nickname} nori prisijungti prie Jūsų iniciatyvos"
- notification_title: %{applicant_nickname} pateikė paraišką prisijungti prie %{resource_title} iniciatyvos remėjų komiteto. Norėdami priimti ar atmesti paraišką, spauskite čia.
form:
add_image: Pridėti paveikslėlį
edit_image: Redaguoti paveikslėlį
diff --git a/decidim-initiatives/config/locales/lv.yml b/decidim-initiatives/config/locales/lv.yml
index 789958bbec4ac..1fddec18a0de9 100644
--- a/decidim-initiatives/config/locales/lv.yml
+++ b/decidim-initiatives/config/locales/lv.yml
@@ -245,12 +245,6 @@ lv:
choose_html: Es vēlos izveidot %{title}
more_information: (Papildu informācija)
select: Es vēlos veicināt šo iniciatīvu
- events:
- create_initiative_event:
- email_intro: "{author_name}%{author_nickname}, kam jūs sekojat, ir izveidojis jaunu iniciatīvu \"%{resource_title}\". Aplūkojiet to un piedalieties:"
- email_outro: Jūs saņēmāt šo paziņojumu, jo sekojat %{author_nickname}. Jūs varat atteikties no paziņojumu saņemšanas, sekojot iepriekšējai saitei.
- email_subject: '%{author_nickname} ir jauna iniciatīva'
- notification_title: %{author_name} %{author_nickname} izveidoja iniciatīvu %{resource_title}.
initiative_signatures:
finish:
back_to_initiative: Atpakaļ pie iniciatīvas
diff --git a/decidim-initiatives/config/locales/nl.yml b/decidim-initiatives/config/locales/nl.yml
index 9233db3f391c3..d1b2dc9b50df7 100644
--- a/decidim-initiatives/config/locales/nl.yml
+++ b/decidim-initiatives/config/locales/nl.yml
@@ -262,24 +262,8 @@ nl:
more_information: (Meer informatie)
select: Ik wil dit initiatief promoten
events:
- approve_membership_request:
- email_intro: "%{author_nickname} heeft je aanvraag om deel uit te maken van het promotiecomité %{resource_title} aanvaard."
- email_subject: "%{author_nickname} heeft je aanvraag voor de promotiecommissie geaccepteerd"
- notification_title: %{author_nickname} heeft je aanvraag om deel uit te maken van de promotiecommissie voor het volgende initiatief %{resource_title} aanvaard.
- create_initiative_event:
- email_intro: "%{author_name} %{author_nickname}, die je volgt, heeft een nieuw initiatief gemaakt, bekijk het en draag bij:"
- email_outro: Je hebt deze melding ontvangen omdat je %{author_nickname} volgt. Je kunt stoppen met het ontvangen van notificaties door te klikken op de voorgaande link.
- email_subject: Nieuw initiatief van %{author_nickname}
- notification_title: Het %{resource_title} initiatief is gemaakt door %{author_name} %{author_nickname}.
- revoke_membership_request:
- email_intro: "%{author_nickname} heeft je aanvraag om deel uit te maken van de promotiecommissie voor het volgende initiatief %{resource_title} aanvaard."
- email_subject: "%{author_nickname} heeft je aanvraag voor de promotiecommissie afgewezen"
- notification_title: %{author_nickname} heeft je aanvraag om deel uit te maken van de promotiecommissie voor het volgende initiatief %{resource_title} afgewezen.
spawn_committee_request_event:
- email_intro: "%{applicant_nickname} wil graag toetreden tot de promotiecommissie van je initiatief %{resource_title}. Om de aanvraag te accepteren of af te wijzen, bewerk je je initiatief."
email_outro: 'Je hebt deze melding ontvangen omdat je de auteur bent van het initiatief %{resource_title}'
- email_subject: "%{applicant_nickname} wil deelnemen aan je initiatief"
- notification_title: %{applicant_nickname} wil graag deel uitmaken van de promotiecommissie voor jouw initiatief %{resource_title}. Om te accepteren of te weigeren, klik hier.
initiative_signatures:
finish:
back_to_initiative: Terug naar initiatief
diff --git a/decidim-initiatives/config/locales/no.yml b/decidim-initiatives/config/locales/no.yml
index 5781b4fe473c2..1a4518be09eab 100644
--- a/decidim-initiatives/config/locales/no.yml
+++ b/decidim-initiatives/config/locales/no.yml
@@ -310,18 +310,9 @@
update: Oppdater
events:
approve_membership_request:
- email_intro: "%{author_nickname} aksepterte din søknad om å være en del av promotørutvalget for initiativ %{resource_title}."
email_outro: 'Du mottok dette varselet fordi du søkte på dette initiativet: %{resource_title}'
- email_subject: "%{author_nickname} aksepterte din søknad til promotørkomiteen"
- create_initiative_event:
- email_intro: "%{author_name}%{author_nickname}, som du følger, har opprettet et nytt initiativ, sjekk det ut og bidra:"
- email_outro: Du har mottatt denne varslingen fordi du følger %{author_nickname}. Du kan slutte å motta varsler hvis du følger den forrige lenken.
- email_subject: Nytt initiativ av %{author_nickname}
- notification_title: %{resource_title} initiativet ble opprettet av %{author_name} %{author_nickname}.
revoke_membership_request:
email_outro: 'Du mottok dette varselet fordi du søkte på dette initiativet: %{resource_title}.'
- email_subject: "%{author_nickname} avviste din søknad til promotørkomiteen"
- notification_title: %{author_nickname} avviste søknaden din om å være en del av promotørutvalget i følgende initiativ %{resource_title}.
initiative_signatures:
finish:
back_to_initiative: Tilbake til initiativ
diff --git a/decidim-initiatives/config/locales/pl.yml b/decidim-initiatives/config/locales/pl.yml
index e0c4b273af659..f68c78d724718 100644
--- a/decidim-initiatives/config/locales/pl.yml
+++ b/decidim-initiatives/config/locales/pl.yml
@@ -371,25 +371,11 @@ pl:
update: Aktualizuj
events:
approve_membership_request:
- email_intro: "%{author_nickname} zaakceptował Twoje zgłoszenie na członka komitetu organizacyjnego inicjatywy %{resource_title}."
email_outro: 'Otrzymałeś to powiadomienie, ponieważ zgłosiłeś się do inicjatywy %{resource_title}'
- email_subject: "%{author_nickname} zaakceptował Twoje zgłoszenie na członka komitetu organizacyjnego"
- notification_title: %{author_nickname} zaakceptował Twoje zgłoszenie na członka komitetu organizacyjnego inicjatywy %{resource_title}.
- create_initiative_event:
- email_intro: "Użytkownik %{author_name} %{author_nickname}, którego obserwujesz, utworzył nową inicjatywę, sprawdź ją i przyłącz się:"
- email_outro: Otrzymałeś to powiadomienie, ponieważ obserwujesz %{author_nickname}. Możesz przestać otrzymywać powiadomienia po kliknięciu w poprzedni link.
- email_subject: Nowa inicjatywa autorstwa %{author_nickname}
- notification_title: Inicjatywa %{resource_title} została utworzona przez %{author_name} %{author_nickname}.
revoke_membership_request:
- email_intro: "%{author_nickname} odrzucił Twoje zgłoszenie na członka komitetu organizacyjnego inicjatywy %{resource_title}."
email_outro: 'Otrzymałeś to powiadomienie, ponieważ zgłosiłeś się do inicjatywy %{resource_title}.'
- email_subject: "%{author_nickname} odrzucił Twoje zgłoszenie na członka komitetu organizacyjnego"
- notification_title: %{author_nickname} odrzucił Twoje zgłoszenie na członka komitetu organizacyjnego inicjatywy %{resource_title}.
spawn_committee_request_event:
- email_intro: "%{applicant_nickname} złożył wniosek na członka komitetu organizacyjnego Twojej inicjatywy %{resource_title}. Aby zaakceptować lub odrzucić zgłoszenie przejdź do formularza edycji swojej inicjatywy."
email_outro: 'Otrzymałeś to powiadomienie, ponieważ jesteś autorem inicjatywy %{resource_title}'
- email_subject: "%{applicant_nickname} chce dołączyć do Twojej inicjatywy"
- notification_title: %{applicant_nickname} złożył wniosek na członka komitetu organizacyjnego Twojej inicjatywy %{resource_title}. Aby zaakceptować lub odrzucić kliknij tutaj.
form:
add_image: Dodaj obraz
edit_image: Edytuj obraz
diff --git a/decidim-initiatives/config/locales/pt-BR.yml b/decidim-initiatives/config/locales/pt-BR.yml
index 5f0d865cf1188..ea616ced18fb7 100644
--- a/decidim-initiatives/config/locales/pt-BR.yml
+++ b/decidim-initiatives/config/locales/pt-BR.yml
@@ -355,25 +355,11 @@ pt-BR:
update: Atualizar
events:
approve_membership_request:
- email_intro: "%{author_nickname} aceitou seu pedido para fazer parte do comitê de promotores da iniciativa %{resource_title}."
email_outro: 'Você recebeu esta notificação porque você aplicou nesta iniciativa: %{resource_title}'
- email_subject: "%{author_nickname} aceitou seu pedido ao comitê de promotores"
- notification_title: %{author_nickname} aceitou seu pedido como parte do comitê de promotores da seguinte iniciativa %{resource_title}.
- create_initiative_event:
- email_intro: "%{author_name} %{author_nickname}, que você está seguindo, criou uma nova iniciativa, confira e contribua:"
- email_outro: Você recebeu esta notificação porque está seguindo %{author_nickname}. Você pode parar de receber notificações após o link anterior.
- email_subject: Nova iniciativa de %{author_nickname}
- notification_title: A %{resource_title} iniciativa foi criada por %{author_name} %{author_nickname}.
revoke_membership_request:
- email_intro: "%{author_nickname} rejeitou sua solicitação para fazer parte do comitê de promotores para a seguinte iniciativa %{resource_title}."
email_outro: 'Você recebeu esta notificação porque você aplicou nesta iniciativa: %{resource_title}.'
- email_subject: "%{author_nickname} rejeitou seu pedido ao comitê de promotores"
- notification_title: %{author_nickname} rejeitou seu pedido de adesão por fazer parte do comitê de promotores da seguinte iniciativa %{resource_title}.
spawn_committee_request_event:
- email_intro: "%{applicant_nickname} candidatou-se ao comitê de promotores da sua iniciativa %{resource_title}. Para aceitar ou rejeitar a solicitação, vá ao formulário de edição da sua iniciativa."
email_outro: 'Você recebeu esta notificação porque você é o autor desta iniciativa: %{resource_title}'
- email_subject: "%{applicant_nickname} quer participar de sua iniciativa"
- notification_title: %{applicant_nickname} se candidatou ao comitê de promotores da sua iniciativa %{resource_title}. Para aceitar ou rejeitar, clique aqui.
form:
add_image: Adicionar imagem
edit_image: Editar imagem
diff --git a/decidim-initiatives/config/locales/pt.yml b/decidim-initiatives/config/locales/pt.yml
index 1234ecd785351..a7e13610c19a8 100644
--- a/decidim-initiatives/config/locales/pt.yml
+++ b/decidim-initiatives/config/locales/pt.yml
@@ -297,25 +297,11 @@ pt:
update: Actualizar
events:
approve_membership_request:
- email_intro: "%{author_nickname} aceitou a sua candidatura para ser parte da comissão promotora da iniciativa %{resource_title}."
email_outro: 'Recebeu esta notificação porque se candidatou esta iniciativa: %{resource_title}'
- email_subject: "%{author_nickname} aceitou a sua candidatura para a comissão promotora"
- notification_title: %{author_nickname} aceitou a sua candidatura para ser parte da comissão promotora para a iniciativa seguinte %{resource_title}.
- create_initiative_event:
- email_intro: "%{author_name} %{author_nickname}, que você segue, criou uma nova iniciativa, confira e contribua:"
- email_outro: Recebeu esta notificação porque segue %{author_nickname}. Pode parar de receber notificações seguindo a hiperligação anterior.
- email_subject: Nova iniciativa de %{author_nickname}
- notification_title: A iniciativa %{resource_title} foi criada por %{author_name} %{author_nickname}.
revoke_membership_request:
- email_intro: "%{author_nickname} aceitou a sua candidatura para fazer parte da comissão promotora da iniciativa %{resource_title}."
email_outro: 'Recebeu esta notificação porque se candidatou esta iniciativa: %{resource_title}'
- email_subject: "%{author_nickname} aceitou a sua candidatura para a comissão promotora"
- notification_title: %{author_nickname} rejeitou a sua candidatura para fazer parte da comissão promotora da iniciativa seguinte %{resource_title}.
spawn_committee_request_event:
- email_intro: "%{applicant_nickname} Candidatou-se para a comissão promotora da sua iniciativa %{resource_title}. Para aceitar ou rejeitar a aplicação vá ao formulário de edição da iniciativa."
email_outro: 'Recebeu esta notificação porque é o autor desta iniciativa: %{resource_title}'
- email_subject: "%{applicant_nickname} quer juntar-se à sua iniciativa"
- notification_title: %{applicant_nickname} candidatou-se para a comissão promotora da sua iniciativa %{resource_title}. Para aceitar ou rejeitar clique aqui.
initiative_signatures:
finish:
back_to_initiative: Retroceder para a iniciativa
diff --git a/decidim-initiatives/config/locales/ro-RO.yml b/decidim-initiatives/config/locales/ro-RO.yml
index 93952a379bb51..063f16d610d1f 100644
--- a/decidim-initiatives/config/locales/ro-RO.yml
+++ b/decidim-initiatives/config/locales/ro-RO.yml
@@ -354,7 +354,6 @@ ro:
more_information: (Mai multe informații)
select: Doresc să promovez această iniţiativă
select_initiative_type_help_html: "
Inițiativele sunt un mijloc prin care participanții pot interveni astfel încât organizația să poată întreprinde acțiuni de apărare a interesului general. Ce inițiativă doriți să lansați?
"
- show_less: Afișați mai puțin
show_more: Afișați mai mult
subtitle: Ce inițiativă doriți să promovați?
send_to_technical_validation_button:
@@ -376,25 +375,11 @@ ro:
update: Actualizare
events:
approve_membership_request:
- email_intro: "%{author_nickname} a acceptat cererea ta de a face parte din comitetul promotorilor pentru inițiativa %{resource_title}."
email_outro: 'Ai primit această notificare deoarece ai aplicat pentru a face parte din comitetul promotor pentru această inițiativă: %{resource_title}'
- email_subject: "%{author_nickname} a acceptat cererea ta de a intra în comitetul de promovare"
- notification_title: %{author_nickname} a acceptat cererea tade a face parte din comitetul de promovare pentru următoarea inițiativă %{resource_title}.
- create_initiative_event:
- email_intro: "%{author_name} %{author_nickname}, pe care îl urmărești, a creat o nouă inițiativă, verifică și contribuie:"
- email_outro: Ai primit această notificare deoarece urmărești%{author_nickname}. Poți opri notificările accesând linkul anterior.
- email_subject: O nouă inițiativă a %{author_nickname}
- notification_title: Inițiativa %{resource_title} a fost creată de %{author_name} %{author_nickname}.
revoke_membership_request:
- email_intro: "%{author_nickname} a respins cererea tapentru a face parte din comitetul de promovare pentru inițiativa următoare %{resource_title}."
email_outro: 'Ai primit această notificare deoarece ai cerut să iei parte la această inițiativă: %{resource_title}.'
- email_subject: "%{author_nickname} a respins cererea ta la comitetul de promovare"
- notification_title: %{author_nickname} a respins cererea ta de a face parte din comitetul de promovare pentru următoarea inițiativă %{resource_title}.
spawn_committee_request_event:
- email_intro: "%{applicant_nickname} a aplicat pentru comitetul de promovare al inițiativei tale %{resource_title}. Pentru a accepta sau respinge cererea, accesează formularul de editare al inițiativei ta."
email_outro: 'Ai primit această notificare deoarece ești autorul acestei inițiative: %{resource_title}'
- email_subject: "%{applicant_nickname} vrea să se alăture inițiativei tale"
- notification_title: %{applicant_nickname} a depus cerere pentru comitetul de promovare al inițiativa tale %{resource_title}. Pentru a accepta sau respinge apasă aici.
initiative_signatures:
dummy_signature:
form:
diff --git a/decidim-initiatives/config/locales/ru.yml b/decidim-initiatives/config/locales/ru.yml
index 34ef4c2197178..40c26fb9a2e8a 100644
--- a/decidim-initiatives/config/locales/ru.yml
+++ b/decidim-initiatives/config/locales/ru.yml
@@ -154,12 +154,6 @@ ru:
select_initiative_type:
back: Вернуться
more_information: (Дополнительные сведения)
- events:
- create_initiative_event:
- email_intro: "%{author_name} %{author_nickname}, за которым вы следите, создал новый почин. Прочитайте его и внесите свой вклад:"
- email_outro: Вы получили это уведомление, потому что вы следите за «%{author_nickname}». Вы можете отписаться от уведомлений, перейдя по приведенной выше ссылке.
- email_subject: Новый почин от %{author_nickname}
- notification_title: %{author_name} %{author_nickname} предложил почин %{resource_title}.
initiative_votes:
create:
error: При попытке подписаться за этот почин произошли ошибки.
diff --git a/decidim-initiatives/config/locales/sk.yml b/decidim-initiatives/config/locales/sk.yml
index e7e21b813a9e3..53318d054db4e 100644
--- a/decidim-initiatives/config/locales/sk.yml
+++ b/decidim-initiatives/config/locales/sk.yml
@@ -423,7 +423,6 @@ sk:
new: Vytvoriť novú iniciatívu
select: Chcem túto iniciatívu podporiť
select_initiative_type_help_html: "
Iniciatívy sú prostriedkom, prostredníctvom ktorého môžu účastníci zasiahnuť, aby organizácia mohla podniknúť kroky na obranu všeobecného záujmu. Ktorú iniciatívu chcete spustiť?
"
- show_less: Zobraziť menej
show_more: Zobraziť viac
subtitle: Akú iniciatívu chcete presadzovať?
verification_required: Overte svoj účet, aby ste mohli presadzovať túto iniciatívu
@@ -446,25 +445,11 @@ sk:
update: Aktualizovať
events:
approve_membership_request:
- email_intro: "%{author_nickname} prijal/a vašu žiadosť o členstvo vo výbore navrhovateľov pre iniciatívu %{resource_title}."
email_outro: 'Toto upozornenie ste dostali, pretože ste sa prihlásili do tejto iniciatívy: %{resource_title}'
- email_subject: "%{author_nickname} prijal/a vašu žiadosť do výboru navrhovateľov"
- notification_title: %{author_nickname} prijal/a vašu žiadosť o členstvo vo výbore navrhovateľov pre nasledujúcu iniciatívu %{resource_title}.
- create_initiative_event:
- email_intro: "% {AUTHOR_NAME}% {author_nickname}, ktorého sledujete, vytvoril novú iniciatívu, skontroloval ju a prispel:"
- email_outro: Toto oznámenie ste dostali, pretože sledujete %{author_nickname}. Notifikácie môžete zrušiť po kliknutí na predchádzajúci odkaz.
- email_subject: Nová iniciatíva od%{author_nickname}
- notification_title: Iniciatíva % {resource_title} bola vytvorená % {AUTHOR_NAME}% {author_nickname} .
revoke_membership_request:
- email_intro: "%{author_nickname} zamietol/a vašu žiadosť o členstvo vo výbore navrhovateľov pre nasledujúcu iniciatívu %{resource_title}."
email_outro: 'Toto upozornenie ste dostali, pretože ste sa prihlásili do tejto iniciatívy: %{resource_title}.'
- email_subject: "%{author_nickname} zamietol/a vašu žiadosť do výboru navrhovateľov"
- notification_title: %{author_nickname} zamietol/a vašu žiadosť o členstvo vo výbore navrhovateľov pre nasledujúcu iniciatívu %{resource_title}.
spawn_committee_request_event:
- email_intro: "%{applicant_nickname} požiadal/a o členstvo vo výbore navrhovateľov vašej iniciatívy %{resource_title}. Ak chcete žiadosť prijať alebo zamietnuť, prejdite do formulára na úpravu vašej iniciatívy."
email_outro: 'Toto upozornenie ste dostali, pretože ste autorom tejto iniciatívy: %{resource_title}'
- email_subject: "%{applicant_nickname} sa chce pripojiť k vašej iniciatíve"
- notification_title: %{applicant_nickname} požiadal/a o členstvo vo výbore navrhovateľov vašej iniciatívy %{resource_title}. Ak chcete prijať alebo zamietnuť, kliknite sem.
form:
add_attachments: Pridať prílohy
add_image: Pridať obrázok
diff --git a/decidim-initiatives/config/locales/sv.yml b/decidim-initiatives/config/locales/sv.yml
index d0c56398b3f99..d9280e282fbc5 100644
--- a/decidim-initiatives/config/locales/sv.yml
+++ b/decidim-initiatives/config/locales/sv.yml
@@ -415,7 +415,6 @@ sv:
new: Skapa nytt initiativ
select: Jag vill arbeta för detta initiativ
select_initiative_type_help_html: "
Initiativ är ett sätt för deltagare att påverka och ta initiativ till förbättringar. Vilket initiativ vill du starta?
"
- show_less: Visa mindre
show_more: Visa mer
subtitle: Vilket initiativ vill du stödja?
verification_required: Verifiera ditt konto för att skriva under initiativet
@@ -438,25 +437,11 @@ sv:
update: Uppdatera
events:
approve_membership_request:
- email_intro: "%{author_nickname} accepterade din ansökan att ingå i kampanjgruppen för initiativet %{resource_title}."
email_outro: 'Du har fått det här meddelandet eftersom du är författaren av initiativet %{resource_title}'
- email_subject: "%{author_nickname} godkände din ansökan till kampanjgruppen"
- notification_title: %{author_nickname} godkände din ansökan att ingå i kampanjgruppen för följande initiativ %{resource_title}.
- create_initiative_event:
- email_intro: "%{author_name} %{author_nickname}, som du följer, har skapat ett nytt initiativ. Ta en titt och bidra:"
- email_outro: Du har fått det här meddelandet eftersom du följer %{author_nickname}. Du kan sluta ta att emot meddelanden via föregående länk.
- email_subject: Nytt initiativ från %{author_nickname}
- notification_title: Initiativet %{resource_title} skapades av %{author_name} %{author_nickname}.
revoke_membership_request:
- email_intro: "%{author_nickname} avslog din ansökan om att ingå i kampanjgruppen för följande initiativ %{resource_title}."
email_outro: 'Du har fått det här meddelandet eftersom du är författaren av initiativet %{resource_title}.'
- email_subject: "%{author_nickname} avvisade din ansökan till kampanjgruppen"
- notification_title: %{author_nickname} avvisade din ansökan att ingå i kampanjgruppen för följande initiativ %{resource_title}.
spawn_committee_request_event:
- email_intro: "%{applicant_nickname} ansökte om att bli kampanjmedlem för %{resource_title}. För att acceptera eller avvisa ansökan går du till redigeringsformuläret för ditt initiativ."
email_outro: 'Du fick detta meddelande eftersom du är författare till detta initiativ: %{resource_title}'
- email_subject: "%{applicant_nickname} vill gå med i ditt initiativ"
- notification_title: %{applicant_nickname} ansökte om att gå med i kampanjgruppen för ditt initiativ %{resource_title}. För att acceptera eller avvisa klickar du här.
form:
add_attachments: Lägg till bilagor
add_image: Lägg till bild
diff --git a/decidim-initiatives/config/locales/tr-TR.yml b/decidim-initiatives/config/locales/tr-TR.yml
index 8f750e7485961..af11873329179 100644
--- a/decidim-initiatives/config/locales/tr-TR.yml
+++ b/decidim-initiatives/config/locales/tr-TR.yml
@@ -284,12 +284,6 @@ tr:
reject: Girişimi reddet
title: Girişimi düzenle
update: Güncelle
- events:
- create_initiative_event:
- email_intro: "Takip ettiğiniz %{author_name} %{author_nickname} yeni bir girişim oluşturdu, inceleyin ve katkıda bulunun:"
- email_outro: Bu bildirimi, %{author_nickname}izlediğiniz için aldınız. Önceki bağlantıyı takip ederek bildirimleri almayı durdurabilirsiniz.
- email_subject: '%{author_nickname} tarafından yeni girişim'
- notification_title: %{resource_title} girişimi %{author_name} %{author_nickname} tarafından oluşturuldu.
initiative_signatures:
finish:
back_to_initiative: Girişime geri dön
diff --git a/decidim-initiatives/config/locales/uk.yml b/decidim-initiatives/config/locales/uk.yml
index c666307f88ac0..80ad4e9675bce 100644
--- a/decidim-initiatives/config/locales/uk.yml
+++ b/decidim-initiatives/config/locales/uk.yml
@@ -151,12 +151,6 @@ uk:
select_initiative_type:
back: Повернутись
more_information: (Додаткові відомості)
- events:
- create_initiative_event:
- email_intro: "%{author_name} %{author_nickname}, за яким ви стежите, зробив новий почин. Прочитайте його та зробіть свій внесок:"
- email_outro: Ви отримали це сповіщення, тому що ви стежите за %{author_nickname}. Ви можете відписатися від цих сповіщень, перейшовши за наведеним вище посиланням.
- email_subject: Новий почин, започаткований %{author_nickname}
- notification_title: %{author_name} %{author_nickname} створив почин %{resource_title}.
initiative_votes:
create:
error: При підписанні цього почину сталися помилки.
diff --git a/decidim-initiatives/config/locales/zh-CN.yml b/decidim-initiatives/config/locales/zh-CN.yml
index b3a93e2174235..8a3b4ceb58a21 100644
--- a/decidim-initiatives/config/locales/zh-CN.yml
+++ b/decidim-initiatives/config/locales/zh-CN.yml
@@ -262,12 +262,6 @@ zh-CN:
choose_html: 我想要创建 %{title}
more_information: (更多信息)
select: 我想促进这项倡议
- events:
- create_initiative_event:
- email_intro: "%{author_name} %{author_nickname},您正在关注这个问题,已经创建了一个新的倡议,查看它并做出贡献:"
- email_outro: 您收到此通知是因为您正在关注 %{author_nickname}。您可以停止收到跟随上一个链接的通知。
- email_subject: '%{author_nickname} 的新举措'
- notification_title: %{resource_title} 倡议是由 %{author_name} %{author_nickname} 创建的。
initiative_signatures:
finish:
back_to_initiative: 回到倡议
diff --git a/decidim-initiatives/config/locales/zh-TW.yml b/decidim-initiatives/config/locales/zh-TW.yml
index 2d89c0b4366d8..3e33a7cbb0605 100644
--- a/decidim-initiatives/config/locales/zh-TW.yml
+++ b/decidim-initiatives/config/locales/zh-TW.yml
@@ -349,25 +349,11 @@ zh-TW:
update: 更新
events:
approve_membership_request:
- email_intro: "%{author_nickname} 同意您加入 %{resource_title} 倡議的推動委員會。"
email_outro: '這是您收到的通知,因為您申請參與這個倡議:%{resource_title}。'
- email_subject: "%{author_nickname} 同意您加入推動委員會。"
- notification_title: %{author_nickname} 同意您加入以下倡議的推動委員會:%{resource_title}。
- create_initiative_event:
- email_intro: "%{author_name} %{author_nickname},您正在追蹤的用戶,創建了一個新的倡議,請查看並做出貢獻:"
- email_outro: 您收到此通知,是因為您正在關注 %{author_nickname}。您可以使用上面的連結停止接收通知。
- email_subject: 由 %{author_nickname} 提出的新倡議
- notification_title: 倡議 %{resource_title} 由 %{author_name} %{author_nickname} 提出。
revoke_membership_request:
- email_intro: "%{author_nickname} 拒絕了您加入 %{resource_title} 倡議發起委員會的申請。"
email_outro: '這是您收到的通知,因為您申請參與這個倡議:%{resource_title}。'
- email_subject: "%{author_nickname} 拒絕了你加入推廣委員會的申請"
- notification_title: %{author_nickname} 拒絕了您加入 %{resource_title} 倡議的推廣委員會成員的申請。
spawn_committee_request_event:
- email_intro: "%{applicant_nickname} 申請加入您的倡議 %{resource_title} 推廣委員會。要接受或拒絕申請,請前往您的倡議編輯表單。"
email_outro: '你收到這個通知是因為你是該倡議 %{resource_title} 的作者。'
- email_subject: "%{applicant_nickname} 想加入你的倡議"
- notification_title: %{applicant_nickname} 申請加入你的倡議 %{resource_title} 的推動委員會。點擊這裡接受或拒絕申請。
index:
uninitialized: 尚未由管理員設置倡議。
initiative_signatures:
diff --git a/decidim-initiatives/lib/decidim/initiatives/version.rb b/decidim-initiatives/lib/decidim/initiatives/version.rb
index 51b7eb6952ed7..744ea3dafc729 100644
--- a/decidim-initiatives/lib/decidim/initiatives/version.rb
+++ b/decidim-initiatives/lib/decidim/initiatives/version.rb
@@ -4,7 +4,7 @@ module Decidim
# This holds the decidim-initiatives version.
module Initiatives
def self.version
- "0.31.4"
+ "0.31.7"
end
end
end
diff --git a/decidim-initiatives/spec/commands/decidim/initiatives/update_initiative_spec.rb b/decidim-initiatives/spec/commands/decidim/initiatives/update_initiative_spec.rb
index 738cb732636b0..9bdfe550123b9 100644
--- a/decidim-initiatives/spec/commands/decidim/initiatives/update_initiative_spec.rb
+++ b/decidim-initiatives/spec/commands/decidim/initiatives/update_initiative_spec.rb
@@ -33,8 +33,8 @@ module Initiatives
signature_type:,
type_id:,
attachment:,
- add_documents: uploaded_files,
- documents: current_files
+ add_attachments: uploaded_files,
+ attachments: current_files
}
end
let(:command) do
@@ -86,8 +86,8 @@ module Initiatives
signature_type:,
type_id: initiative_type.id,
attachment:,
- add_documents: uploaded_files,
- documents: current_files,
+ add_attachments: uploaded_files,
+ attachments: current_files,
signature_end_date: Date.tomorrow
}
end
@@ -146,7 +146,7 @@ module Initiatives
it "keeps the new and old attachments" do
command.call
initiative.reload
- expect(initiative.documents.count).to eq(3)
+ expect(initiative.attachments.count).to eq(3)
end
context "when the old attachments are deleted by the user" do
@@ -155,8 +155,8 @@ module Initiatives
it "deletes the old attachments" do
command.call
initiative.reload
- expect(initiative.documents.count).to eq(2)
- expect(initiative.documents).not_to include(document)
+ expect(initiative.attachments.count).to eq(2)
+ expect(initiative.attachments).not_to include(document)
end
end
end
diff --git a/decidim-initiatives/spec/events/decidim/initiatives/approve_membership_request_event_spec.rb b/decidim-initiatives/spec/events/decidim/initiatives/approve_membership_request_event_spec.rb
index 6f0ec15e2fe4b..ac3d2247efb3e 100644
--- a/decidim-initiatives/spec/events/decidim/initiatives/approve_membership_request_event_spec.rb
+++ b/decidim-initiatives/spec/events/decidim/initiatives/approve_membership_request_event_spec.rb
@@ -13,13 +13,13 @@
let(:author) { resource.author }
let(:author_profile_url) { Decidim::UserPresenter.new(author).profile_url }
- let(:author_nickname) { Decidim::UserPresenter.new(author).nickname }
+ let(:author_name) { Decidim::UserPresenter.new(author).name }
let(:user) { create(:initiatives_committee_member, initiative: resource, state: "requested").user }
let(:resource_url) { resource_locator(resource).url }
- let(:email_subject) { "#{author_nickname} accepted your application to the promoter committee" }
- let(:email_intro) { "#{author_nickname} accepted your application to be part of the promoter committee for the initiative #{resource_title}." }
+ let(:email_subject) { "#{author_name} accepted your application to the promoter committee" }
+ let(:email_intro) { "#{author_name} accepted your application to be part of the promoter committee for the initiative #{resource_title}." }
let(:email_outro) { "You received this notification because you applied to this initiative: #{resource_title}" }
- let(:notification_title) { "#{author_nickname} accepted your application to be part of the promoter committee for the following initiative #{resource_title}." }
+ let(:notification_title) { "#{author_name} accepted your application to be part of the promoter committee for the following initiative #{resource_title}." }
describe "types" do
subject { described_class }
diff --git a/decidim-initiatives/spec/events/decidim/initiatives/create_initiative_event_spec.rb b/decidim-initiatives/spec/events/decidim/initiatives/create_initiative_event_spec.rb
index 990168739d2e7..cf10bbdd2cde1 100644
--- a/decidim-initiatives/spec/events/decidim/initiatives/create_initiative_event_spec.rb
+++ b/decidim-initiatives/spec/events/decidim/initiatives/create_initiative_event_spec.rb
@@ -15,10 +15,10 @@
let(:event_name) { "decidim.events.initiatives.initiative_created" }
let(:user) { create(:user, organization:) }
let(:resource_path) { resource_locator(resource).path }
- let(:email_subject) { "New initiative by @#{initiative_author.nickname}" }
- let(:email_intro) { "#{initiative_author.name} @#{initiative_author.nickname}, who you are following, has created a new initiative, check it out and contribute:" }
- let(:email_outro) { "You have received this notification because you are following @#{initiative_author.nickname}. You can stop receiving notifications following the previous link." }
- let(:notification_title) { "The #{resource_title} initiative was created by #{initiative_author.name} @#{initiative_author.nickname}." }
+ let(:email_subject) { "New initiative by #{initiative_author.name}" }
+ let(:email_intro) { "#{initiative_author.name}, who you are following, has created a new initiative, check it out and contribute:" }
+ let(:email_outro) { "You have received this notification because you are following #{initiative_author.name}. You can stop receiving notifications following the previous link." }
+ let(:notification_title) { "The #{resource_title} initiative was created by #{initiative_author.name}." }
it_behaves_like "a simple event email"
it_behaves_like "a simple event notification"
diff --git a/decidim-initiatives/spec/events/decidim/initiatives/revoke_membership_request_event_spec.rb b/decidim-initiatives/spec/events/decidim/initiatives/revoke_membership_request_event_spec.rb
index beb4ce6101e14..a16ead10c1302 100644
--- a/decidim-initiatives/spec/events/decidim/initiatives/revoke_membership_request_event_spec.rb
+++ b/decidim-initiatives/spec/events/decidim/initiatives/revoke_membership_request_event_spec.rb
@@ -12,13 +12,13 @@
let!(:resource) { create(:initiative, :created, organization:) }
let(:author) { resource.author }
let(:author_profile_url) { Decidim::UserPresenter.new(author).profile_url }
- let(:author_nickname) { Decidim::UserPresenter.new(author).nickname }
+ let(:author_name) { Decidim::UserPresenter.new(author).name }
let(:user) { create(:initiatives_committee_member, initiative: resource, state: "requested").user }
let(:resource_url) { resource_locator(resource).url }
- let(:email_subject) { "#{author_nickname} rejected your application to the promoter committee" }
- let(:email_intro) { "#{author_nickname} rejected your application to be part of the promoter committee for the following initiative #{resource_title}." }
+ let(:email_subject) { "#{author_name} rejected your application to the promoter committee" }
+ let(:email_intro) { "#{author_name} rejected your application to be part of the promoter committee for the following initiative #{resource_title}." }
let(:email_outro) { "You received this notification because you applied to this initiative: #{resource_title}." }
- let(:notification_title) { "#{author_nickname} rejected your application to be part of the promoter committee for the following initiative #{resource_title}." }
+ let(:notification_title) { "#{author_name} rejected your application to be part of the promoter committee for the following initiative #{resource_title}." }
it_behaves_like "a simple event email"
it_behaves_like "a simple event notification"
diff --git a/decidim-initiatives/spec/events/decidim/initiatives/spawn_committee_request_event_spec.rb b/decidim-initiatives/spec/events/decidim/initiatives/spawn_committee_request_event_spec.rb
index de4d8c6045fba..15f4ddc7ac5ba 100644
--- a/decidim-initiatives/spec/events/decidim/initiatives/spawn_committee_request_event_spec.rb
+++ b/decidim-initiatives/spec/events/decidim/initiatives/spawn_committee_request_event_spec.rb
@@ -13,12 +13,12 @@
let(:event_name) { "decidim.events.initiatives.initiative_created" }
let(:applicant) { create(:user, organization:) }
let(:applicant_profile_url) { Decidim::UserPresenter.new(applicant).profile_url }
- let(:applicant_nickname) { Decidim::UserPresenter.new(applicant).nickname }
+ let(:applicant_name) { Decidim::UserPresenter.new(applicant).name }
let(:resource_url) { resource_locator(resource).url }
- let(:email_subject) { "#{applicant_nickname} wants to join your initiative" }
- let(:email_intro) { "#{applicant_nickname} applied for the promoter committee of your initiative #{resource_title}. To accept or reject the application, go to the edit form of your initiative." }
+ let(:email_subject) { "#{applicant_name} wants to join your initiative" }
+ let(:email_intro) { "#{applicant_name} applied for the promoter committee of your initiative #{resource_title}. To accept or reject the application, go to the edit form of your initiative." }
let(:email_outro) { "You received this notification because you are the author of this initiative: #{resource_title}" }
- let(:notification_title) { "#{applicant_nickname} applied for the promoter committee of your initiative #{resource_title}. To accept or reject click here." }
+ let(:notification_title) { "#{applicant_name} applied for the promoter committee of your initiative #{resource_title}. To accept or reject click here." }
describe "types" do
subject { described_class }
diff --git a/decidim-initiatives/spec/models/decidim/initiative_spec.rb b/decidim-initiatives/spec/models/decidim/initiative_spec.rb
index 779dd5b3b4a72..aee29a29d29de 100644
--- a/decidim-initiatives/spec/models/decidim/initiative_spec.rb
+++ b/decidim-initiatives/spec/models/decidim/initiative_spec.rb
@@ -173,6 +173,10 @@ module Decidim
it "returns false for any other user" do
expect(initiative).not_to have_authorship(user)
end
+
+ it "returns false for any inexistent user" do
+ expect(initiative).not_to have_authorship(nil)
+ end
end
describe "signatures calculations" do
diff --git a/decidim-initiatives/spec/shared/create_initiative_example.rb b/decidim-initiatives/spec/shared/create_initiative_example.rb
index 142e0dfbb68ce..f04dfeb985c3f 100644
--- a/decidim-initiatives/spec/shared/create_initiative_example.rb
+++ b/decidim-initiatives/spec/shared/create_initiative_example.rb
@@ -24,8 +24,8 @@
type_id: scoped_type.type.id,
signature_type: "online",
scope_id: scoped_type.scope.id,
- add_documents: uploaded_files,
- documents: current_files
+ add_attachments: uploaded_files,
+ attachments: current_files
}
end
diff --git a/decidim-initiatives/spec/system/admin/admin_manages_initiative_components_spec.rb b/decidim-initiatives/spec/system/admin/admin_manages_initiative_components_spec.rb
index 4d0a19fea811b..90c7b368f7748 100644
--- a/decidim-initiatives/spec/system/admin/admin_manages_initiative_components_spec.rb
+++ b/decidim-initiatives/spec/system/admin/admin_manages_initiative_components_spec.rb
@@ -60,6 +60,7 @@
end
it "has a successful admin log" do
+ expect(page).to have_content("Component created successfully.")
visit decidim_admin.root_path
expect(page).to have_content("created #{translated(attributes[:name])} in #{translated(initiative.title)}")
end
@@ -210,9 +211,25 @@
context "when the component is published" do
let(:published_at) { Time.current }
+ describe "when there are special characters (', &) in the nav links" do
+ let(:participatory_space) { initiative }
+ let(:component_name) { "People's Budget & Ideas" }
+ let!(:proposal_component) { create(:proposal_component, name: { en: component_name }, participatory_space:) }
+
+ it "renders the component name correctly" do
+ visit decidim_initiatives.initiative_path(initiative, locale: I18n.locale)
+ within ".participatory-space__nav-container" do
+ expect(page).to have_content(component_name)
+ expect(page).to have_no_content("'")
+ expect(page).to have_no_content("'")
+ end
+ end
+ end
+
it "hides the component from the menu" do
visit decidim_initiatives.initiative_path(initiative, locale: I18n.locale)
- expect(page).to have_content decidim_escape_translated(component.name)
+ expect(page).to have_content translated(component.name)
+ expect(page.html).to include decidim_escape_translated(component.name).gsub(""", "\"")
visit decidim_admin_initiatives.components_path(initiative)
@@ -227,7 +244,7 @@
end
visit decidim_initiatives.initiative_path(initiative, locale: I18n.locale)
- expect(page).to have_no_content decidim_escape_translated(component.name)
+ expect(page).to have_no_content translated(component.name)
end
end
diff --git a/decidim-initiatives/spec/system/admin/admin_manages_initiatives_spec.rb b/decidim-initiatives/spec/system/admin/admin_manages_initiatives_spec.rb
index 28bc1d65f0a08..408bf03e05ef1 100644
--- a/decidim-initiatives/spec/system/admin/admin_manages_initiatives_spec.rb
+++ b/decidim-initiatives/spec/system/admin/admin_manages_initiatives_spec.rb
@@ -133,4 +133,85 @@ def initiative_without_area(area)
it_behaves_like "paginating a collection"
end
+
+ context "when the initiative has an attachment" do
+ let!(:initiative_with_attachment) { create(:initiative, organization:) }
+ let!(:document) { create(:attachment, :with_image, attached_to: initiative_with_attachment) }
+
+ it "can remove an attachment" do
+ visit decidim_admin_initiatives.edit_initiative_path(initiative_with_attachment)
+ click_on("Edit")
+
+ find("tbody tr:first-child button[data-controller='dropdown']").click
+ click_on "Delete"
+
+ click_on "OK"
+
+ expect(page).to have_text("Attachment destroyed successfully.")
+
+ visit decidim_admin_initiatives.edit_initiative_path(initiative_with_attachment)
+
+ expect(page).to have_no_text(document.file.blob.filename.to_s)
+ end
+
+ it "can attach a file" do
+ visit decidim_admin_initiatives.edit_initiative_path(initiative_with_attachment)
+
+ within("#accordion-homepage_attachments") do
+ click_on("New")
+ end
+
+ fill_in_i18n(
+ :attachment_title,
+ "#attachment-title-tabs",
+ en: "Super city!"
+ )
+ fill_in_i18n(
+ :attachment_description,
+ "#attachment-description-tabs",
+ en: "Attachment description"
+ )
+
+ click_on("Add file")
+
+ filename = "city3.jpeg"
+ within ".upload-modal" do
+ find("input[type='file']", visible: :all).attach_file(Decidim::Dev.asset(filename))
+ within "li[data-filename='#{filename}']:not([data-attachment-id])" do
+ expect(page).to have_css("progress[value='100']")
+ end
+ expect(page).to have_css("button[data-dropzone-save]:not([disabled])")
+ click_on("Save")
+ end
+
+ expect(page).to have_no_css(".upload-modal")
+
+ click_on("Create attachment")
+
+ expect(page).to have_text("Super city!")
+ end
+
+ it "can edit an initiative with an attachment" do
+ visit decidim_admin_initiatives.edit_initiative_path(initiative_with_attachment)
+
+ expect(page.html).to include(document.file.blob.filename.to_s)
+
+ fill_in_i18n(
+ :initiative_title,
+ "#initiative-title-tabs",
+ en: "Updated initiative title with attachments"
+ )
+
+ within("[data-content]") do
+ find("*[type=submit]").click
+ end
+
+ expect(page).to have_content "The initiative has been successfully updated."
+
+ visit decidim_admin_initiatives.edit_initiative_path(initiative_with_attachment)
+
+ expect(page.html).to include(document.file.blob.filename.to_s)
+ expect(page).to have_field("initiative_title_en", with: "Updated initiative title with attachments")
+ end
+ end
end
diff --git a/decidim-initiatives/spec/system/create_initiative_spec.rb b/decidim-initiatives/spec/system/create_initiative_spec.rb
index 5b0ac8301d586..dae3d1b72af67 100644
--- a/decidim-initiatives/spec/system/create_initiative_spec.rb
+++ b/decidim-initiatives/spec/system/create_initiative_spec.rb
@@ -752,6 +752,8 @@
fill_in "Title", with: translated(initiative.title, locale: :en)
fill_in "initiative_description", with: translated(initiative.description, locale: :en)
+
+ expect(page).to have_select("Signature collection type")
select("Online", from: "Signature collection type")
select(translated(initiative_type_scope&.scope&.name, locale: :en), from: "Scope")
find_button("Continue").click
@@ -810,7 +812,7 @@
fill_in "initiative_description", with: translated(initiative.description, locale: :en)
select("Online", from: "Signature collection type")
select(translated(initiative_type_scope&.scope&.name, locale: :en), from: "Scope")
- dynamically_attach_file(:initiative_documents, Decidim::Dev.asset("Exampledocument.pdf"))
+ dynamically_attach_file(:initiative_attachments, Decidim::Dev.asset("Exampledocument.pdf"))
dynamically_attach_file(:initiative_photos, Decidim::Dev.asset("avatar.jpg"))
find_button("Continue").click
expect(page).to have_content("Your initiative has been successfully created.")
@@ -818,7 +820,6 @@
it "saves the attachments" do
expect(Decidim::Initiative.last.documents.count).to eq(1)
- expect(Decidim::Initiative.last.photos.count).to eq(1)
end
context "when minimum committee size is above zero" do
@@ -844,6 +845,8 @@
fill_in "Title", with: translated(initiative.title, locale: :en)
fill_in "initiative_description", with: translated(initiative.description, locale: :en)
+
+ expect(page).to have_select("Signature collection type")
select("Online", from: "Signature collection type")
select(translated(initiative_type_scope&.scope&.name, locale: :en), from: "Scope")
find_button("Continue").click
@@ -869,6 +872,8 @@
fill_in "Title", with: translated(initiative.title, locale: :en)
fill_in "initiative_description", with: translated(initiative.description, locale: :en)
+
+ expect(page).to have_select("Signature collection type")
select("Online", from: "Signature collection type")
select(translated(initiative_type_scope&.scope&.name, locale: :en), from: "Scope")
find_button("Continue").click
diff --git a/decidim-initiatives/spec/system/edit_initiative_spec.rb b/decidim-initiatives/spec/system/edit_initiative_spec.rb
index fa9070596f7b0..bf3ea64d2f825 100644
--- a/decidim-initiatives/spec/system/edit_initiative_spec.rb
+++ b/decidim-initiatives/spec/system/edit_initiative_spec.rb
@@ -86,27 +86,66 @@
expect(page).to have_no_xpath("//select[@id='initiative_state']")
end
- it "allows adding attachments" do
- visit initiative_path
+ context "when the initiative has an attachment" do
+ let!(:initiative) { create(:initiative, :created, author: user, scoped_type:, organization:) }
+ let!(:document) { create(:attachment, :with_pdf, attached_to: initiative) }
+ let!(:image) { create(:attachment, :with_image, attached_to: initiative) }
- click_on("Edit")
+ it "can remove an attachment" do
+ visit initiative_path
- expect(page).to have_content "Edit Initiative"
+ click_on("Edit")
- expect(initiative.reload.attachments.count).to eq(0)
+ expect(page).to have_text "Edit Initiative"
- dynamically_attach_file(:initiative_documents, Decidim::Dev.asset("Exampledocument.pdf"))
- dynamically_attach_file(:initiative_photos, Decidim::Dev.asset("avatar.jpg"))
+ within "form.edit_initiative" do
+ find_by_id("initiative_attachments_button").click
+ end
+ within ".upload-modal" do
+ within "[data-filename='#{document.file.blob.filename}']" do
+ click_on "Remove"
+ end
+ click_on "Save"
+ end
+ within "form.edit_initiative" do
+ expect(page).to have_no_css("img[src*='#{document.file.blob.filename}']")
+ end
+ end
- within "form.edit_initiative" do
- click_on "Update"
+ it "can attach a file" do
+ visit initiative_path
+
+ click_on("Edit")
+
+ expect(page).to have_content "Edit Initiative"
+
+ dynamically_attach_file(:initiative_attachments, Decidim::Dev.asset("city3.jpeg"))
+
+ within "form.edit_initiative" do
+ click_on "Update"
+ end
+
+ perform_enqueued_jobs
+
+ expect(initiative.reload.attachments.count).to eq(3)
end
- perform_enqueued_jobs
+ it "can edit an initiative with attachments" do
+ visit initiative_path
- expect(initiative.reload.documents.count).to eq(1)
- expect(initiative.photos.count).to eq(1)
- expect(initiative.attachments.count).to eq(2)
+ click_on("Edit")
+
+ expect(page).to have_text "Edit Initiative"
+
+ fill_in :initiative_title, with: "Updated initiative title with attachments"
+
+ within "form.edit_initiative" do
+ click_on "Update"
+ end
+
+ expect(page).to have_text("Updated initiative title with attachments")
+ expect(initiative.reload.attachments.count).to eq(1)
+ end
end
context "when using the wizard steps" do
diff --git a/decidim-initiatives/spec/system/initiative_spec.rb b/decidim-initiatives/spec/system/initiative_spec.rb
index 8b89b9731d717..605ddd6d0288e 100644
--- a/decidim-initiatives/spec/system/initiative_spec.rb
+++ b/decidim-initiatives/spec/system/initiative_spec.rb
@@ -149,6 +149,14 @@
expect(page).to have_no_content("0 comments")
end
end
+
+ context "when the description contains an embedded video" do
+ let(:base_initiative) do
+ create(:initiative, organization:, state:, description:)
+ end
+
+ it_behaves_like "has embedded video in description", :description
+ end
end
context "when I am the author of the initiative" do
@@ -247,15 +255,17 @@
it "shows the components" do
within ".participatory-space__nav-container" do
- expect(page).to have_content(decidim_escape_translated(meetings_component.name))
- expect(page).to have_no_content(decidim_escape_translated(unpublished_proposals_component.name))
- expect(page).to have_content(decidim_escape_translated(blogs_component.name))
+ expect(page).to have_content(translated(meetings_component.name))
+ expect(page.html).to include(decidim_escape_translated(meetings_component.name).gsub(""", "\""))
+ expect(page).to have_no_content(translated(unpublished_proposals_component.name))
+ expect(page).to have_content(translated(blogs_component.name))
+ expect(page.html).to include(decidim_escape_translated(blogs_component.name).gsub(""", "\""))
end
end
it "allows visiting the components" do
within ".participatory-space__nav-container" do
- click_on decidim_escape_translated(meetings_component.name)
+ click_on translated(meetings_component.name)
end
expect(page).to have_css('[id^="meetings__meeting"]', count: 3)
@@ -388,7 +398,7 @@
it "has special permissions to create posts" do
within ".participatory-space__nav-container" do
- click_on decidim_escape_translated(blogs_component.name)
+ click_on translated(blogs_component.name)
end
expect(page).to have_content("New post")
@@ -396,7 +406,7 @@
it "has special permissions to create meetings" do
within ".participatory-space__nav-container" do
- click_on decidim_escape_translated(meetings_component.name)
+ click_on translated(meetings_component.name)
end
expect(page).to have_content("New meeting")
diff --git a/decidim-meetings/app/controllers/decidim/meetings/admin/invites_controller.rb b/decidim-meetings/app/controllers/decidim/meetings/admin/invites_controller.rb
index ea55f8e813bf0..d7576c04923fa 100644
--- a/decidim-meetings/app/controllers/decidim/meetings/admin/invites_controller.rb
+++ b/decidim-meetings/app/controllers/decidim/meetings/admin/invites_controller.rb
@@ -20,6 +20,7 @@ def index
def create
enforce_permission_to(:invite_attendee, :meeting, meeting:)
+ @invites = filtered_collection
@form = form(MeetingRegistrationInviteForm).from_params(params)
InviteUserToJoinMeeting.call(@form, meeting, current_user) do
diff --git a/decidim-meetings/app/controllers/decidim/meetings/meetings_controller.rb b/decidim-meetings/app/controllers/decidim/meetings/meetings_controller.rb
index 84090d599e9be..f06b8d11516bd 100644
--- a/decidim-meetings/app/controllers/decidim/meetings/meetings_controller.rb
+++ b/decidim-meetings/app/controllers/decidim/meetings/meetings_controller.rb
@@ -21,6 +21,7 @@ class MeetingsController < Decidim::Meetings::ApplicationController
helper_method :meetings, :meeting, :registration, :registration_qr_code_image, :search, :tab_panel_items, :withdrawn_meetings?
before_action :add_additional_csp_directives, only: [:show]
+ before_action :authenticate_user!, only: [:new, :create, :edit, :update, :withdraw]
def new
enforce_permission_to :create, :meeting
diff --git a/decidim-meetings/app/forms/decidim/meetings/admin/meeting_agenda_form.rb b/decidim-meetings/app/forms/decidim/meetings/admin/meeting_agenda_form.rb
index 9a7af85f83f89..948eda6b208de 100644
--- a/decidim-meetings/app/forms/decidim/meetings/admin/meeting_agenda_form.rb
+++ b/decidim-meetings/app/forms/decidim/meetings/admin/meeting_agenda_form.rb
@@ -35,12 +35,12 @@ def agenda_duration_too_long
end
def agenda_duration
- @agenda_duration ||= agenda_items.sum(&:duration)
+ @agenda_duration ||= agenda_items.reject(&:deleted?).sum(&:duration)
end
def agenda_items_duration_too_long
- agenda_items.each do |agenda_item|
- children_duration = agenda_item.agenda_item_children.sum(&:duration)
+ agenda_items.reject(&:deleted?).each do |agenda_item|
+ children_duration = agenda_item.agenda_item_children.reject(&:deleted?).sum(&:duration)
if children_duration > agenda_item.duration
difference = children_duration - agenda_item.duration
diff --git a/decidim-meetings/app/models/decidim/meetings/meeting.rb b/decidim-meetings/app/models/decidim/meetings/meeting.rb
index 6f730bd95ba7b..0d182b4285e2e 100644
--- a/decidim-meetings/app/models/decidim/meetings/meeting.rb
+++ b/decidim-meetings/app/models/decidim/meetings/meeting.rb
@@ -140,7 +140,7 @@ class Meeting < Meetings::ApplicationRecord
scope :visible, -> { where("decidim_meetings_meetings.private_meeting != ? OR decidim_meetings_meetings.transparent = ?", true, true) }
- scope :authored_by, ->(author) { where(decidim_author_id: author) }
+ scope :authored_by, ->(author) { where(author:) }
scope_search_multi :with_any_type, TYPE_OF_MEETING.keys
@@ -377,6 +377,12 @@ def self.sort_by_translated_title_desc
Arel.sql("(start_time > NOW())")
end
+ ransacker :closed do
+ Arel.sql("(closed_at IS NOT NULL)")
+ end
+
+ ransacker_i18n :translated_title, :title
+
def self.ransackable_scopes(_auth_object = nil)
[:with_any_type, :with_any_date, :with_any_space, :with_any_origin, :with_any_taxonomies, :with_any_global_category]
end
@@ -386,7 +392,7 @@ def self.ransackable_attributes(auth_object = nil)
return base unless auth_object&.admin?
- base + %w(is_upcoming closed_at)
+ base + %w(is_upcoming closed_at closed start_time end_time translated_title)
end
def self.ransackable_associations(_auth_object = nil)
diff --git a/decidim-meetings/app/permissions/decidim/meetings/meeting_permissions.rb b/decidim-meetings/app/permissions/decidim/meetings/meeting_permissions.rb
index 64a6e6ad0543e..8f6c34800e67f 100644
--- a/decidim-meetings/app/permissions/decidim/meetings/meeting_permissions.rb
+++ b/decidim-meetings/app/permissions/decidim/meetings/meeting_permissions.rb
@@ -39,8 +39,6 @@ def can_decline_invitation?
end
def can_create?
- return false unless user
-
(component_settings&.creation_enabled_for_participants? && can_participate?) || initiative_authorship?
end
diff --git a/decidim-meetings/app/views/decidim/meetings/_calendar_modal.html.erb b/decidim-meetings/app/views/decidim/meetings/_calendar_modal.html.erb
index ccb6306deee84..7628580acce14 100644
--- a/decidim-meetings/app/views/decidim/meetings/_calendar_modal.html.erb
+++ b/decidim-meetings/app/views/decidim/meetings/_calendar_modal.html.erb
@@ -4,26 +4,26 @@
<%= decidim_modal id: "calendarShare", class: "meeting-list__modal" do %>
-
diff --git a/decidim-meetings/config/locales/ar.yml b/decidim-meetings/config/locales/ar.yml
index 979254cc57ed3..5c3adf1590aba 100644
--- a/decidim-meetings/config/locales/ar.yml
+++ b/decidim-meetings/config/locales/ar.yml
@@ -121,7 +121,6 @@ ar:
global:
announcement: إعلان
comments_enabled: تم تمكين التعليقات
- comments_max_length: الحد الأقصى لطول التعليقات (اترك 0 لاستعمال القيمة الافتراضية)
creation_enabled_for_participants: يمكن للمشاركين إنشاء اجتماعات
default_registration_terms: شروط التسجيل الافتراضية
enable_pads_creation: تمكين إنشاء منصات
diff --git a/decidim-meetings/config/locales/bg.yml b/decidim-meetings/config/locales/bg.yml
index 9d109f799dedb..a521eb2529152 100644
--- a/decidim-meetings/config/locales/bg.yml
+++ b/decidim-meetings/config/locales/bg.yml
@@ -146,7 +146,6 @@ bg:
global:
announcement: Обявление
comments_enabled: Коментарите са активирани
- comments_max_length: Максимална дължина на коментарите (Оставете 0 за стойност по подразбиране)
creation_enabled_for_participants: Участниците могат да създават срещи
default_registration_terms: Условия за регистрация по подразбиране
enable_pads_creation: Активирай създаване на бележки
diff --git a/decidim-meetings/config/locales/ca-IT.yml b/decidim-meetings/config/locales/ca-IT.yml
index f3cb1c4849068..853f1dd69d2d0 100644
--- a/decidim-meetings/config/locales/ca-IT.yml
+++ b/decidim-meetings/config/locales/ca-IT.yml
@@ -50,8 +50,6 @@ ca-IT:
meeting_registration_invite:
email: Correu electrònic
name: Nom
- response:
- add_documents: Afegir documents
validate_registration_code:
code: Codi
errors:
@@ -169,7 +167,7 @@ ca-IT:
announcement: Avís
clear_all: Netejar-ho tot
comments_enabled: Comentaris habilitats
- comments_max_length: Longitud màxima dels comentaris (deixa 0 si vols mantenir la configuració per defecte)
+ comments_max_length: Caràcters màxims per comentari (deixar a 0 el valor predeterminat)
creation_enabled_for_participants: Les participants poden crear trobades
default_registration_terms: Termes de registre per defecte
define_taxonomy_filters: Si us plau, defineix algunes filtres per aquest espai de participació abans de fer servir aquesta configuració.
diff --git a/decidim-meetings/config/locales/ca.yml b/decidim-meetings/config/locales/ca.yml
index c43bd1b8e57c5..24862d7ebfb9f 100644
--- a/decidim-meetings/config/locales/ca.yml
+++ b/decidim-meetings/config/locales/ca.yml
@@ -50,8 +50,6 @@ ca:
meeting_registration_invite:
email: Correu electrònic
name: Nom
- response:
- add_documents: Afegir documents
validate_registration_code:
code: Codi
errors:
@@ -169,7 +167,7 @@ ca:
announcement: Avís
clear_all: Netejar-ho tot
comments_enabled: Comentaris habilitats
- comments_max_length: Longitud màxima dels comentaris (deixa 0 si vols mantenir la configuració per defecte)
+ comments_max_length: Caràcters màxims per comentari (deixar a 0 el valor predeterminat)
creation_enabled_for_participants: Les participants poden crear trobades
default_registration_terms: Termes de registre per defecte
define_taxonomy_filters: Si us plau, defineix algunes filtres per aquest espai de participació abans de fer servir aquesta configuració.
diff --git a/decidim-meetings/config/locales/cs.yml b/decidim-meetings/config/locales/cs.yml
index f80aaa0f7a283..25a42ce0d4961 100644
--- a/decidim-meetings/config/locales/cs.yml
+++ b/decidim-meetings/config/locales/cs.yml
@@ -50,8 +50,6 @@ cs:
meeting_registration_invite:
email: E-mail
name: Jméno
- response:
- add_documents: Přidat dokumenty
validate_registration_code:
code: Kód
errors:
@@ -175,7 +173,7 @@ cs:
announcement: Oznámení
clear_all: Vymazat vše
comments_enabled: Komentáře povoleny
- comments_max_length: Maximální délka komentáře (ponechte 0 pro výchozí hodnotu)
+ comments_max_length: Maximální počet znaků na komentář (ponechte 0 pro výchozí hodnotu)
creation_enabled_for_participants: Účastníci mohou vytvářet schůzky
default_registration_terms: Výchozí podmínky registrace
define_taxonomy_filters: Před použitím tohoto nastavení prosím definujte některé filtry pro tento participační prostor.
diff --git a/decidim-meetings/config/locales/de.yml b/decidim-meetings/config/locales/de.yml
index 2361a1a2d3776..89aa1c29f04ba 100644
--- a/decidim-meetings/config/locales/de.yml
+++ b/decidim-meetings/config/locales/de.yml
@@ -50,8 +50,6 @@ de:
meeting_registration_invite:
email: E-Mail
name: Name
- response:
- add_documents: Dokumente hinzufügen
validate_registration_code:
code: Code
errors:
@@ -146,6 +144,7 @@ de:
success: Veranstaltung erfolgreich dupliziert.
new:
copy: Kopieren
+ title: Veranstaltung duplizieren
tooltips:
cannot_close_meetings: Diese Veranstaltung kann nicht abgeschlossen werden, da sie von einem Teilnehmenden erstellt wurde
cannot_duplicate_meetings: Dieses Meeting kann nicht dupliziert werden, da es von einem Teilnehmenden erstellt wurde
@@ -168,7 +167,7 @@ de:
announcement: Ankündigung
clear_all: Alles löschen
comments_enabled: Kommentare aktiviert
- comments_max_length: Maximale Länge der Kommentare (0 für Standardwert)
+ comments_max_length: Maximale Zeichenanzahl pro Kommentar (0 für Standardwert)
creation_enabled_for_participants: Teilnehmende können Veranstaltungen erstellen
default_registration_terms: Standard-Registrierungsbedingungen
define_taxonomy_filters: Bitte definieren Sie einige Filter für diesen partizipativen Bereich, bevor Sie diese Einstellung verwenden.
@@ -353,6 +352,7 @@ de:
non_user: Nicht existierender Benutzer
select_user: Nutzer wählen
index:
+ invite_attendee: Teilnehmende einladen
invites: Lädt ein
registrations_disabled: Sie können keine Teilnehmende einladen, weil Registrierungen deaktiviert sind.
meeting_closes:
@@ -807,7 +807,7 @@ de:
longitude: Der Längengrad des Veranstaltungsorts
online_meeting_url: Die URL der Online-Veranstaltung
organizations: Die Organisationen, die an dieser Veranstaltung teilnehmen
- participatory_space: Zu welchem Bereich diese Veranstaltung gehört (z.B. Beteiligungsprozesse oder Gremien)
+ participatory_space: Zu welchem Bereich diese Veranstaltung gehört (z.B. Beteiligungsprozesse oder Versammlungen)
private_meeting: Um anzugeben, ob die Veranstaltung privat ist oder nicht
published: Wann die Veranstaltung veröffentlicht wurde
reference: Die eindeutige Bezeichnung der Ressource auf dieser Plattform
diff --git a/decidim-meetings/config/locales/el.yml b/decidim-meetings/config/locales/el.yml
index 20ee2ef6ad020..700d56a26a3c4 100644
--- a/decidim-meetings/config/locales/el.yml
+++ b/decidim-meetings/config/locales/el.yml
@@ -123,7 +123,6 @@ el:
global:
announcement: Ανακοίνωση
comments_enabled: Τα σχόλια ενεργοποιήθηκαν
- comments_max_length: Μέγιστο μέγεθος σχολίων (Αφήστε το 0 για την προκαθορισμένη τιμή)
creation_enabled_for_participants: Οι συμμετέχοντες μπορούν να δημιουργήσουν συναντήσεις
default_registration_terms: Προεπιλεγμένοι όροι εγγραφής
enable_pads_creation: Ενεργοποίηση δημιουργίας πινάκων σημειώσεων
diff --git a/decidim-meetings/config/locales/en.yml b/decidim-meetings/config/locales/en.yml
index 951b3cc2ae536..9092cfd3cf53b 100644
--- a/decidim-meetings/config/locales/en.yml
+++ b/decidim-meetings/config/locales/en.yml
@@ -50,8 +50,6 @@ en:
meeting_registration_invite:
email: Email
name: Name
- response:
- add_documents: Add documents
validate_registration_code:
code: Code
errors:
@@ -169,7 +167,7 @@ en:
announcement: Announcement
clear_all: Clear all
comments_enabled: Comments enabled
- comments_max_length: Comments max length (Leave 0 for default value)
+ comments_max_length: Max characters per comment (Leave 0 for default value)
creation_enabled_for_participants: Participants can create meetings
default_registration_terms: Default registration terms
define_taxonomy_filters: Please define some filters for this participatory space before using this setting.
diff --git a/decidim-meetings/config/locales/es-MX.yml b/decidim-meetings/config/locales/es-MX.yml
index f1a8753fd779d..b0d9834f42a9a 100644
--- a/decidim-meetings/config/locales/es-MX.yml
+++ b/decidim-meetings/config/locales/es-MX.yml
@@ -50,8 +50,6 @@ es-MX:
meeting_registration_invite:
email: Correo electrónico
name: Nombre
- response:
- add_documents: Añadir documentos
validate_registration_code:
code: Código
errors:
@@ -169,7 +167,7 @@ es-MX:
announcement: Anuncio
clear_all: Limpiar todo
comments_enabled: Comentarios habilitados
- comments_max_length: Longitud máxima de los comentarios (deja 0 si quieres mantener la configuración por defecto)
+ comments_max_length: Caracteres máximos por comentario (dejar 0 para el valor predeterminado)
creation_enabled_for_participants: Las participantes pueden crear encuentros
default_registration_terms: Términos de registro predeterminados
define_taxonomy_filters: Por favor, define algunos filtros para este espacio de participación antes de utilizar esta configuración.
diff --git a/decidim-meetings/config/locales/es-PY.yml b/decidim-meetings/config/locales/es-PY.yml
index bf8f249054079..404777df277c6 100644
--- a/decidim-meetings/config/locales/es-PY.yml
+++ b/decidim-meetings/config/locales/es-PY.yml
@@ -50,8 +50,6 @@ es-PY:
meeting_registration_invite:
email: Correo electrónico
name: Nombre
- response:
- add_documents: Añadir documentos
validate_registration_code:
code: Código
errors:
@@ -169,7 +167,7 @@ es-PY:
announcement: Anuncio
clear_all: Limpiar todo
comments_enabled: Comentarios habilitados
- comments_max_length: Longitud máxima de los comentarios (deja 0 si quieres mantener la configuración por defecto)
+ comments_max_length: Caracteres máximos por comentario (dejar 0 para el valor predeterminado)
creation_enabled_for_participants: Las participantes pueden crear encuentros
default_registration_terms: Términos de registro predeterminados
define_taxonomy_filters: Por favor, define algunos filtros para este espacio de participación antes de utilizar esta configuración.
diff --git a/decidim-meetings/config/locales/es.yml b/decidim-meetings/config/locales/es.yml
index 1bc07aaefb754..8e96a00453687 100644
--- a/decidim-meetings/config/locales/es.yml
+++ b/decidim-meetings/config/locales/es.yml
@@ -50,8 +50,6 @@ es:
meeting_registration_invite:
email: Correo electrónico
name: Nombre
- response:
- add_documents: Añadir documentos
validate_registration_code:
code: Código
errors:
@@ -169,7 +167,7 @@ es:
announcement: Aviso
clear_all: Limpiar todo
comments_enabled: Comentarios habilitados
- comments_max_length: Longitud máxima de los comentarios (deja 0 si quieres mantener la configuración por defecto)
+ comments_max_length: Caracteres máximos por comentario (dejar 0 para el valor predeterminado)
creation_enabled_for_participants: Las participantes pueden crear encuentros
default_registration_terms: Términos de registro predeterminados
define_taxonomy_filters: Por favor, define algunos filtros para este espacio de participación antes de utilizar esta configuración.
diff --git a/decidim-meetings/config/locales/eu.yml b/decidim-meetings/config/locales/eu.yml
index 09a20b15f2642..e4b8a527b1cf2 100644
--- a/decidim-meetings/config/locales/eu.yml
+++ b/decidim-meetings/config/locales/eu.yml
@@ -4,7 +4,7 @@ eu:
attributes:
close_meeting:
attendees_count: Bertaratuen kopurua
- attending_organizations: 'Parte hartu duten erakundeen zerrenda:'
+ attending_organizations: Bertaratu diren erakundeen zerrenda
audio_url: Audioaren URLa
closing_report: Aktak
closing_visible: Ikusgai dago
@@ -18,14 +18,14 @@ eu:
decidim_category_id: Kategoria
decidim_scope_id: Eremua
description: Deskribapena
- end_time: Bukaera ordua
+ end_time: Amaiera-ordua
id: ID
iframe_access_level: Iframe sarbide-maila
iframe_embed_type: Txertatutako iframe mota
- iframe_embed_type_html: Zerbitzu gutxi batzuek bakarrik ematen dute aukera "Bileraren orrian sartzeko" edo "Ekitaldiaren orrian zuzenean irekitzeko". Kontuan izan telefono mugikorretan "Sartu bilera-orrian" aukerarekin, pantailak hainbat dimentsio heredatzen baititu, benetan "Ireki ekitaldiaren orrian zuzenean" gisa funtzionatuko duela.
+ iframe_embed_type_html: Zerbitzu gutxi batzuek bakarrik ematen dute aukera "Topaketaren orrian sartzeko" edo "Ekitaldiaren orrian zuzenean irekitzeko". Kontuan izan telefono mugikorretan "Sartu bilera-orrian" aukerarekin, pantailak hainbat dimentsio heredatzen baititu, benetan "Ireki ekitaldiaren orrian zuzenean" gisa funtzionatuko duela.
location: Kokapena
location_hints: Kokapen-argibideak
- online_meeting_url: On-line topaketaren URL helbidea
+ online_meeting_url: Online topaketaren URL helbidea
organizer_gid: Sortze-data
organizer_id: Antolatzailea
private_meeting: Topaketa pribatua
@@ -36,8 +36,8 @@ eu:
registration_url: Izena ematearen URLa
registrations_enabled: Izen-emateak gaituta
reserved_slots: Erreserbatuta dauden plazak
- start_time: Hasiera ordua
- title: Titulua
+ start_time: Hasiera-ordua
+ title: Izenburua
transparent: Gardena
type_of_meeting: Mota
meeting_agenda:
@@ -50,8 +50,6 @@ eu:
meeting_registration_invite:
email: Helbide elektronikoa
name: Izena
- response:
- add_documents: Dokumentuak gehitu
validate_registration_code:
code: Kodea
errors:
@@ -61,7 +59,7 @@ eu:
iframe_embed_type:
not_embeddable: URL hau ezin da txertatu topaketen edo zuzeneko ekitaldien orrian.
online_meeting_url:
- url_format: URL baliozkoa izan behar du.
+ url_format: URL baliozkoa izan behar du
meeting_agenda:
attributes:
base:
@@ -102,7 +100,7 @@ eu:
accepted_at_not_null:
label: Onartua
values:
- 'false': Ez onartuta
+ 'false': Ez onartua
'true': Onartua
meetings:
closed_at_present:
@@ -169,7 +167,7 @@ eu:
announcement: Iragarpena
clear_all: Garbitu dena
comments_enabled: Iruzkinak gaituta
- comments_max_length: Iruzkinen gehieneko luzera (utzi 0 lehenetsita konfigurazioa mantendu nahi baduzu)
+ comments_max_length: Iruzkin bakoitzeko gehieneko karaktereak (utzi 0 aurrez zehaztutako baliorako)
creation_enabled_for_participants: Parte-hartzaileek topaketak sortu ahal dituzte
default_registration_terms: Izen-emate baldintzak lehenetsiak
define_taxonomy_filters: Mesedez, eszenatoki hau erabili aurretik, zehaztu partaidetza-espazio honetarako iragazki batzuk.
@@ -223,7 +221,7 @@ eu:
meeting_created:
button_text: Eman izena topaketan
email_intro: '"%{resource_title}" topaketa jarraitzen duzun "%{participatory_space_title}" espazioan gehitu da.'
- email_outro: Jakinarazpen hau jaso duzu "%{participatory_space_title}" prozesua jarraitzen ari zarelako. Aureko estekan utzi ahal diozu jarraitzeari.
+ email_outro: Jakinarazpen hau jaso duzu "%{participatory_space_title}" jarraitzen ari zarelako. Aurreko estekatik jarraitzeari utz diezaiokezu.
email_subject: 'Beste topaketa bat gehituta honi: %{participatory_space_title}'
notification_title: '%{resource_title} topaketa hona gehitu da: %{participatory_space_title}'
meeting_registration_confirmed:
@@ -244,17 +242,17 @@ eu:
start_time: hasiera-ordua
notification_title: '%{resources ce_title} bilera eguneratu egin da zenbait aldaketa sartzeko: %{changed_fields}.'
meeting_waitlist_added:
- notification_title: Itxarote-zerrendan sartu zaituzte %{resource_title} bilerarako.
+ notification_title: Itxarote-zerrendan sartu zaituzte %{resource_title} topaketarako.
registration_code_validated:
email_intro: '"%{resource_title}" topakerarako zure "%{registration_code}" erregistro-kodea baliozkotu da.'
email_outro: Jakinarazpen hau jaso duzu "%{resource_title}" topaketarako zure erregistro-kodea baliozkotu delako.
email_subject: '"%{resource_title}" topaketarako zure "%{registration_code}" erregistro kodea baliozkotu egin da'
notification_title: %{resource_title} topaketarako zure "%{registration_code}" erregistro kodea balioztatu da.
registration_marked_as_attendee:
- email_intro: '"%{resource_title}" topakerako zure izen-ematea egiaztatu da.'
+ email_intro: '"%{resource_title}" topaketarako zure izen-ematea bertaratu gisa markatu da.'
email_outro: Jakinarazpen hau jaso duzu "%{resource_title}" topaketarako zure erregistro-kodea baliozkotu delako.
- email_subject: '"%{resource_title}" topakerako zure izen-ematea egiaztatu da'
- notification_title: %{resource_title} topakerako zure izen-ematea egiaztatu da.
+ email_subject: '"%{resource_title}" topaketarako zure izen-ematea bertaratutzat markatu da'
+ notification_title: %{resource_title} topaketarako zure izen-ematea bertaratutzat markatu da.
registrations_enabled:
email_intro: '"%{resource_title}" topaketan izena emateko epea ireki da. Izena eman ahal duzu bere orrian:'
email_outro: Jakinarazpen hau jaso duzu "%{resource_title}" bilera jarraitzen duzulako. Aurreko estekan sartu jarraitzeari uzteko.
@@ -268,14 +266,14 @@ eu:
notification_title: %{resource_title} topaketa %{reminders_before_hours} ordu baino lehen hasiko da.
forms:
meetings:
- attendees_count_help_text: Ez ahaztu tokapetara bertaratutakoen kopuru osoa sartzea, aurrez aurre, on-line edo hibridoan.
+ attendees_count_help_text: Ez ahaztu zure topaketako bertaratuen guztizko kopurua jasotzea, topaketa aurrez aurrekoa, onlinekoa edo hibridoa izan.
gamification:
badges:
attended_meetings:
conditions:
- Eman izena parte hartu nahi duzun topaketan
description: Garaikur hau aurrez aurre egiten diren bileretara joaten zarenean ematen da.
- description_another: Parte-hartzaile honek %{score} topeketatan hartu du parte.
+ description_another: Parte-hartzaile hau %{score} topaketatara bertaratu da.
description_own: '%{score} topaketatan hartu duzu parte.'
name: Honekin lotutako topaketak
next_level_in: '%{score} topaketa gehiago hurrengo mailara iristeko!'
@@ -286,7 +284,7 @@ eu:
agenda: Gai zerrenda
close: Itxi
confirm_delete_meeting: Ziur zaude topaketa hau ezabatu nahi duzula?
- confirm_unpublish_meeting: Ziur zaude topaketa hau despublikatu nahi duzula?
+ confirm_unpublish_meeting: Ziur zaude topaketa hau desargitaratu nahi duzula?
deleted_meetings_info: Ezabatutako topaketak zaborretik berreskura daitezke.
edit: Editatu
invalid_destroy:
@@ -306,13 +304,13 @@ eu:
add_agenda_item_child: Gai-zerrendan azpi-gai bat gehitu
agenda_item: Gai zerrendaren gaia
agenda_item_children: Gai zerrenda azpi gaiak
- down: Behera
- remove: Kendu
+ down: Jaitsi
+ remove: Ezabatu
up: Gora
agenda_item_child:
agenda_item_child: Gai zerrenda azpi-gaia
down: Behera
- remove: Kendu
+ remove: Ezabatu
up: Gora
create:
invalid: Arazo bat egon da gai-zerrenda hau sortzean.
@@ -321,7 +319,7 @@ eu:
title: Gai zerrenda editatu
update: Eguneratu
form:
- add_agenda_item: Gai zerrendarn gai berria
+ add_agenda_item: Gai zerrendan gai berria
agenda_items: Gai zerrendaren gaiak
end_date: Amaiera-data
start_date: Hasiera-data
@@ -329,9 +327,9 @@ eu:
create: Sortu
title: Beste gai zerrenda bat
update:
- invalid: Arazo bat egon da gai-zerrendaa hau eguneratzean.
+ invalid: Arazo bat egon da gai-zerrenda hau eguneratzean.
success: Gai-zerrenda ondo eguneratua.
- deprecation_warning_polls_html: "⚠️Deprezazioaren oharra. Inkesten ezaugarria etorkizuneko bertsio batean ezabatuko da (zehazteke). Bilera-inkestak erabiltzen dituzten erakundeek pentsatu behar dute kanpoko hauteskunde-tresnak erabiltzea (adibidez, Jitsiren bidez) edo Decidimen dauden beste bozketa-mekanismoetara migratzea, hala nola Hauteskundeen modulu berrira (hauteskunde sindikalak)."
+ deprecation_warning_polls_html: "⚠️ Zaharkitze-oharra. Inkesten funtzioa etorkizuneko bertsio batean kenduko da (zehazteke). Topaketetako inkestak erabiltzen dituzten erakundeek kanpoko inkesta-tresnak erabiltzea aurreikusi beharko lukete (adibidez, Jitsiren bidez), edo Decidimen eskuragarri dauden beste bozketa-mekanismo batzuetara migratzea, hala nola Hauteskundeak modulu berrira (decidim-elections)."
exports:
meeting_comments: Iruzkinak
meetings: Topaketak
@@ -340,8 +338,8 @@ eu:
invite_join_meeting_mailer:
invite:
decline: Gonbidapena deuseztatu
- invited_you_to_join_a_meeting: "%{invited_by} k %{application} topaketan parte hartzera gonbidatu zaitu. Beheko estekan onar dezakezu gobidapena."
- join: Erregistratu '%{meeting_title}' topaketa
+ invited_you_to_join_a_meeting: "%{invited_by} administratzaileak %{application} topaketan parte hartzera gonbidatu zaitu. Beheko estekan onar dezakezu gobidapena."
+ join: '''%{meeting_title}'' topaketan izena eman'
invites:
create:
error: Arazo bat egon da parte-hartzailea topaketara gonbidatzean.
@@ -350,7 +348,7 @@ eu:
attendee_type: Parte-hartzaile mota
existing_user: Parte-hartzailea badago
invite: Gonbidatu
- invite_explanation: Parte-hartzaile topaketaan eta erakundean sartzeko gonbidatuko da.
+ invite_explanation: Parte-hartzailea topaketan parte hartzera gonbidatuko da, baita erakundean parte hartzera ere.
non_user: Parte-hartzailea ez dago
select_user: Hautatu parte-hartzailea
index:
@@ -364,7 +362,7 @@ eu:
meetings:
close:
invalid: Arazo bat egon da topaketa hau ixtean.
- success: Topaketa ongo itxia.
+ success: Topaketa behar bezala itxi da.
component:
unlink: Askatu
create:
@@ -374,11 +372,11 @@ eu:
title: Topaketa editatu
update: Eguneratu
form:
- address_help: 'Helbidea: Geocoderrek erabiltzen du kokapena aurkitzeko'
- disclaimer: 'Erantzukizun-deskargua: Kanpoko inskripzio-sistema bat erabiliz, onartzen duzu %{organization} ko antolatzaileak ez direla kanpo-zerbitzuko parte-hartzaileek emandako datuen erantzule.'
+ address_help: 'Helbidea: Geocoder-ek kokapena aurkitzeko erabiltzen du'
+ disclaimer: 'Erantzukizun-oharra: Kanpoko izen-emate sistema bat erabiltzean, badakizu %{organization} erakundeko antolatzaileak ez direla parte-hartzaileek kanpoko zerbitzuari emandako datuen erantzule.'
iframe_embed_type_html: 'Zerbitzu gutxi batzuek baino ez dute uzten topaketan edo zuzeneko gertakarietan txertatzen honako domeinu hauetatik:%{domains}'
location_help: 'Kokapena: parte-hartzaileentzako mezua, non bildu behar dugun adierazten duena'
- location_hints_help: 'Kokapen-aholkuak: informazio gehigarria. Adibidez: eraikinaren solairua, aurrez aurreko topaketa bat bada, edo topaketarako pasahitza, sarbide mugatuko on-line topaketa bat bada.'
+ location_hints_help: 'Kokapenari buruzko argibideak: informazio gehigarria. Adibidea: eraikinaren solairua, aurrez aurreko topaketa bada, edo topaketaren pasahitza, sarbide mugatuko onlineko topaketa bada.'
online_meeting_url_help: 'Esteka: Utzi parte-hartzaileei zuzenean konektatzen zure topaketara'
registration_url_help: 'Esteka: parte-hartzaileei aukera ematea izena emateko erabiltzen ari zaren kanpoko zerbitzura joateko'
select_a_meeting_type: Mesedez, hautatu topaketa mota bat
@@ -388,12 +386,12 @@ eu:
linked_meeting_warning_html: 'Topaketa hau hemendik editatu behar da: %{name}'
published: Argitaratua
title: Topaketa-zerrenda
- unpublished: Desargitaratua
+ unpublished: Argitaratu gabea
linked_spaces:
assign: Esleitu
link_a_space: Lotu espazioa
private_meeting_warning: Loturiko espazioak ez dira aplikatuko topaketa pribatua bada eta gardena ez bada.
- private_space_warning: Loturiko espazioak ez dira aplikatuko topketa espazio pribaturako eta ez gardenerako denean.
+ private_space_warning: Lotutako espazioak ez dira aplikatuko topaketa gardena ez den espazio pribatu batekoa denean.
select: Hautatu espazioa
table:
actions: Ekintzak
@@ -408,7 +406,7 @@ eu:
invalid: Arazo bat egon da topaketa hau argitaratzean.
success: Topaketa zuzen argitaratua.
reminders:
- reminder_enabled: Bidali gogorarazpena topaketa honetarako
+ reminder_enabled: Send a reminder for this meeting
reminder_message: Gogorarazteko e-mailaren edukia
reminder_message_help_text: Pertsonalizatu mezua behar den bezala. Erabili {{meeting_title}} topaketa-izena erakusteko.
send_reminder: Gogorarazteko e-maila programatuta
@@ -425,14 +423,14 @@ eu:
add_service: Zerbitzua gehitu
services: Zerbitzuak
unpublish:
- invalid: Arazo bat egon da topaketa hau desargitaratzean.
- success: Topaketa zuzen desargitaratua.
+ invalid: Arazo bat gertatu da topaketa hau desargitaratzean.
+ success: Topaketa behar bezala desargitaratu da.
update:
invalid: Arazo bat egon da topaketa hau eguneratzean.
success: Topaketa zuzen eguneratua.
meetings_poll:
form:
- title: Editatu %{questionnaire_for} inkestaren galdetekgia
+ title: Editatu %{questionnaire_for} elementurako inkestaren galdetegia
update:
invalid: Arazo bat egon da topaketa-inkesta hau eguneratzean.
success: Topaketaren inkesta zuzen eguneratua.
@@ -450,7 +448,7 @@ eu:
available_slots_help: Utzi 0an izen-emate mugagabeak edukiz gero.
invites: Gonbidapenak
manage_questions: Galderak
- recommendation_message: 'Markatu lauki hau "Aktibatu sinadurak azpiesparruaren arabera" gaitu baduzu eta eremu globala esparru nagusi gisa eratu baduzu. Lauki hori gaitzean, ekimenak sortzeko laguntzaileak ez du ekimen-motaren hautaketarik egingo. Konfigurazio horrek nola funtzionatzen duen jakiteko, kontsultatu esteka hau: link.'
+ recommendation_message: Pribatutasun-arrazoiak direla eta, izen-emate inprimaki hau behar ez duzunean ezabatzea gomendatzen dizugu. Lehenespenez, topaketa amaitu eta 3 hilabetera izango da hori.
registration_email_help: Testu hau erregistroa berresteko posta elektronikoaren erdian agertuko da. Erregistro-kodearen ondoren.
registration_form: Izena emateko formularioa
registrations: Ikusi inskripzioak
@@ -477,7 +475,7 @@ eu:
admin_log:
invite:
create: "%{user_name} parte-hartzaileak %{attendee_name} gonbidatu du %{resource_name} topaketara lotzeko %{space_name} espazioan"
- deleted: "%{user_name}-k %{attendee_name}-ri gonbidapena egiteari utzi dio %{space_name} espazioan parte hartzeko"
+ deleted: "%{user_name} parte-hartzaileak %{attendee_name} parte-hartzailearen gonbidapena kendu du %{space_name} espazioko %{resource_name} topaketan parte hartzeko"
update: "%{user_name} parte-hartzaileak %{attendee_name} gonbidatu du %{space_name} espazioan parte hartzeko"
meeting:
close: "%{user_name} parte-hartzaileak %{space_name} espazioko %{resource_name} topaketa itxi du"
@@ -503,8 +501,8 @@ eu:
copy_calendar_url: Kopiatu
copy_calendar_url_clarification: Kopiatu URL egutegia arbelera
copy_calendar_url_copied: Kopiatuta!
- copy_calendar_url_description: Argitaratutako batzar guztiak zure egutegi-aplikazioan edo hornitzailean ikus ditzakezu. Kopiatu eta itsatsi URL hau "Egutegi berria gehitu URL batetik" aukera erabiliz
- copy_calendar_url_explanation: Mesedez, kontuan izan aukeratutako topaketa multzo bat esportatzen ari zarela eta iragazkiak aktibatuta daudela. Denak esportatu nahi badituzu, lehenengo kendu irakazkiak.
+ copy_calendar_url_description: Argitaratutako batzar guztiak zure egutegi-aplikazioan edo hornitzailean ikus ditzakezu. Kopiatu eta itsatsi URL hau "Gehitu egutegi berria URL batetik" aukera erabiliz.
+ copy_calendar_url_explanation: Kontuan izan topaketa sorta bat esportatzen ari zarela, iragazkiak aktibo daudelako. Denak esportatu nahi badituzu, lehenik berrezarri iragazki guztiak.
copy_calendar_url_message: URL hau zuzen kopiatu da zure arbelean.
export_calendar: Egutegia esportatu
close_meeting_reminder_mailer:
@@ -524,8 +522,8 @@ eu:
space_type: Partaidetza-espazioa
iframe_access_level:
all: Bisitari guztiak
- registered: "Parte hartzaile erregistratuak topaketa honetan\n"
- signed_in: Soilik rregistratutako parte-hartzaileak
+ registered: Parte hartzaile erregistratuak topaketa honetan
+ signed_in: Saioa hasi duten parte-hartzaileak soilik
iframe_embed_type:
embed_in_meeting_page: Topaketa-orrian txertatuta
none: Bat ere ez
@@ -590,11 +588,11 @@ eu:
all: Denak
hybrid: Hibridoa
in_person: Aurrez aurre
- online: On-line
+ online: Online
form:
- address_help: 'Helbidea: Geocoderrek erabilia kokapena aurkitzeko'
- available_slots_help: Déjalo a 0 si tienes espacio ilimitado disponible
- disclaimer: 'Erantzukizun-deskargua: Kanpoko inskripzio-sistema bat erabiliz, onartzen duzu %{organization} ko antolatzaileak ez direla kanpo-zerbitzuko parte-hartzaileek emandako datuen erantzule.'
+ address_help: 'Helbidea: Geocoder-ek kokapena aurkitzeko erabiltzen du'
+ available_slots_help: Utzi 0 balioa erabilgarri dauden plazak mugagabeak badira
+ disclaimer: 'Erantzukizun-deskargua: Kanpoko izen-emate sistema bat erabiltzean, badakizu %{organization} erakundeko antolatzaileak ez direla parte-hartzaileek kanpoko zerbitzuari emandako datuen erantzule.'
iframe_embed_type_html: 'Zerbitzu gutxi batzuek baino ez dute uzten topaketan edo zuzeneko gertakarietan txertatzen honako domeinu hauetatik:%{domains}'
location_help: 'Kokapena: mezua parte-hartzaileei zuzendua biltzeko lekua adieraziz'
location_hints_help: 'Kokapen-aholkuak: informazio gehigarria. Adibidea: eraikinaren solairua, aurrez aurreko topaketa bada, edo aretoaren pasahitza, sarrera mugatua duen on-line topaketa bada.'
@@ -613,7 +611,7 @@ eu:
close_meeting: Itxi
edit_close_meeting: Editatu topaketaren txostena
edit_meeting: Editatu
- join_meeting: Izena eman
+ join_meeting: Izena eman topaketan
reply_poll: Erantzun inkesta
view_poll: Ikusi inkesta
meetings:
@@ -629,21 +627,21 @@ eu:
show:
attendees: Bertaratuen kopurua
contributions: Ekarpen-kopurua
- join: Izena eman
+ join: Eman izena
join_waitlist: Sartu itxarote-zerrendan
leave: Baliogabetu zure izen-ematea
leave_confirmation: Ziur zaude topaketa honetarako zure izen-ematea indargabetu nahi duzula?
leave_waitlist: Utzi itxarote-zerrenda
leave_waitlist_confirmation: Ziur zaude topaketa honetarako itxarote-zerrenda utzi nahi duzula?
- link_available_soon: Esteka hau laster izango da eusukagarri
+ link_available_soon: Esteka laster egongo da eskuragarri
link_closed: Bideokonferentziarako esteka hasi baino minutu batzuk lehenago egongo da eskuragarri
live_event: Topaketa hau oraintxe gertatzen ari da
meeting_minutes: Topaketaren akta
- micro_camera_permissions_warning: Beheko botoia sakatzen duzunean, mikrofono eta/edo kamerarako baimena eskatuko zaizu eta bideohitzaldian sartuko zara
+ micro_camera_permissions_warning: Beheko botoia sakatzen duzunean, mikrofonoa eta/edo kamera erabiltzeko baimena eskatuko zaizu, eta bideokonferentzian sartuko zara
no_slots_available: Ez dago leku librerik
organizations: Bertaratutako erakundeak
- pending_address: Kokapena laster adieraiko da.
- redirect_notice: 'Bilera hau beste espazio baten parte da; beraz, %{current_space_name}-ra eraman behar izan zaituzte. Nahiago baduzu, hona itzul zaitezke: %{previous_space_name}.'
+ pending_address: Kokapena laster adieraziko da.
+ redirect_notice: Topaketa hau beste espazio baten parte da; beraz, %{current_space_name} espaziora eraman zaituzte. Nahiago baduzu, %{previous_space_name} espaziora itzul zaitezke.
registration_and_qr_code: Inskripzioa eta QR kodea
registration_code: 'Inskripzio-kodea: %{code}'
registration_code_help_text: Zure inskripzioa eta QR kodea
@@ -651,12 +649,12 @@ eu:
validated: BALIDATUA
validation_pending: BALIOZKOTZEKO ZAIN
remaining_slots:
- one: "Slot %{count} geratzen da"
- other: "%{count} slot geratzen dira"
+ one: "%{count} plaza geratzen da"
+ other: "%{count} plaza geratzen dira"
visit_finished: Ikusi egindako topaketa
waitlist:
description: Leku bat libre geratzen bada, zure erregistroa automatikoki prozesatuko dugu eta posta elektronikoz jakinaraziko dizugu.
- status: Itzrote-zerrendan zaude
+ status: Itxaron-zerrendan zaude
withdraw_btn_hint: Topaketa bertan behera utz dezakezu iritzia aldatzen baduzu. Topaketa ez da ezabatu. Erretiratutakoen zerrendan agertuko da.
withdraw_confirmation_html: Ziur zaude proposamen hau kendu nahi duzula?
Ekintza hau ezin da desegin!
withdraw_meeting: Kendu
@@ -668,11 +666,11 @@ eu:
fields:
email: Helbide elektronikoa
name: Izena
- sent_at: ' Bidalketa-data: '
+ sent_at: ' Bidalketa-data'
status: Egoera
status:
- accepted: (%{at})-an onartura
- rejected: (%{at})-an baztertuta
+ accepted: (%{at})-an onartua
+ rejected: Baztertuta (%{at})
sent: Bidalia
meeting:
fields:
@@ -684,7 +682,7 @@ eu:
published: Argitaratua
start_time: Hasiera-data
taxonomies: Taxonomiak
- title: Titulua
+ title: Izenburua
registration:
actions: Ekintzak
fields:
@@ -692,7 +690,7 @@ eu:
name: Izena
status: Egoera
status:
- attended: Atenditua
+ attended: Bertaratua
not_attended: Ez du parte hartu
polls:
questions:
@@ -758,7 +756,7 @@ eu:
type_of_meeting:
hybrid: Hibridoa
in_person: Aurrez aurre
- online: On-line
+ online: Online
types:
private_meeting: Topaketa pribatua
transparent: Gardena
@@ -769,11 +767,11 @@ eu:
open_data:
help:
meeting_comments:
- alignment: Iruzkin hau aldekoa, kontrakoa edo neutrala zen?
+ alignment: Iruzkin hau aldekoa, aurkakoa edo neutrala izan da
author: Iruzkin hau egin duen parte-hartzailearen izena
body: Iruzkin bera
- commentable_id: Iruzkingarriaren identifikazio bakarra
- commentable_type: Iruzkingarri mota (emaitza, proposamena... izan bazen)
+ commentable_id: Iruzkin daitekeen elementuaren ID bakarra
+ commentable_type: Iruzkin daitekeen elementuaren mota (emaitza, proposamena eta abar)
comments: Topaketaren iruzkinen datua
created_at: Zein datatan sortu zen iruzkin hau
depth: Zein lekutan dago iruzkin hau hiru iruzkinetan (iruzkinaren erantzuna bada edo erantzunaren erantzuna bada)
@@ -785,7 +783,7 @@ eu:
attachments: Topaketa honetako atxikipen kopurua
attendees: Bilera horretara joan den pertsona kopurua
attending_organizations: Topaketan izan diren erakundeak
- audio_url: Topaketaren audiograbazioa
+ audio_url: Topaketaren audio-grabazioa
author: Topaketa honen egilearen data
available_slots: Topaketarako plaza kopurua
closed_at: Zein datatan itxi zen topaketa
@@ -793,12 +791,12 @@ eu:
closing_visible: Topaketaren ikusgarritasuna
comments: Topaketaren iruzkinen datua
component: Topaketari dagokion osagaia
- contributions: Zenbat ekarpen egin dituzte nerabeek topaketa honetan?
+ contributions: Topaketa honetan bertaratuek egindako ekarpenen kopurua
created_at: Zein datatan sortu zen topaketa
customize_registration_email: Posta elektroniko pertsonalizatua erregistratzeko aukera
decidim_author_type: Topaketaren egile mota
description: Topaketaren deskribapena
- end_time: Zein datatan eta ordutan amaituko da topaketa hau?
+ end_time: Topaketa hau amaitzen den data eta ordua
follows_count: Topaketa honek duen jarraitzaile kopurua
id: Topaketaren identifikatzaile bakarra
iframe_access_level: Topaketaren sarrera maila
@@ -807,9 +805,9 @@ eu:
location: Topaketaren kokapena
location_hints: Kokapenaren xehetasuna, topaketa egin zen lekuaren barruan
longitude: Topaketaren luzera
- online_meeting_url: On-line topaketaren URLa
- organizations: Zein erakundek hartu du parte topaketa honetan?
- participatory_space: Zein espaziotakoa datopaketa hau (adibidez, Partaidetza-prozesu edo Batzarra)
+ online_meeting_url: Online topaketaren URLa
+ organizations: Topaketa honetara bertaratutako erakundeak
+ participatory_space: Topaketa hau zein espaziotakoa den (adibidez, Partaidetza-prozesua edo Batzarra)
private_meeting: Topaketa pribatua izan zen ala ez adierazteko
published: Noiz argitaratu da topaketa?
reference: Plataforma honetako baliabidearen identifikatzaile bakarra
@@ -828,9 +826,9 @@ eu:
type_of_meeting: Topaketa mota
updated_at: Zein datatan eguneratu da topaketa azken aldiz
url: Topaketaren URLa
- video_url: Topaketaren bideograbazioa
+ video_url: Topaketaren bideo-grabazioa
withdrawn: Topaketa bertan behera geratu den ala ez
- withdrawn_at: Noiz utzi zen bertan behera topaketa hau?
+ withdrawn_at: Topaketa hau noiz erretiratu da
participatory_spaces:
highlighted_meetings:
past_meetings: Azken topaketak
@@ -846,7 +844,7 @@ eu:
statistics:
attendees_count: Topaketara bertaratuak
meetings_count: Topaketak
- meetings_count_tooltip: Zenbat topaketa egin diren, on-line zein aurrez aurre.
+ meetings_count_tooltip: Egindako topaketen kopurua, bai online, bai aurrez aurre.
participatory_space_meetings_count: Topaketak
devise:
mailer:
diff --git a/decidim-meetings/config/locales/fi-plain.yml b/decidim-meetings/config/locales/fi-plain.yml
index 732b74fb9f82b..16035bc958960 100644
--- a/decidim-meetings/config/locales/fi-plain.yml
+++ b/decidim-meetings/config/locales/fi-plain.yml
@@ -50,8 +50,6 @@ fi-pl:
meeting_registration_invite:
email: Sähköpostiosoite
name: Nimi
- response:
- add_documents: Lisää asiakirjoja
validate_registration_code:
code: Koodi
errors:
diff --git a/decidim-meetings/config/locales/fi.yml b/decidim-meetings/config/locales/fi.yml
index 355c215703b89..23ac9d63ebd3b 100644
--- a/decidim-meetings/config/locales/fi.yml
+++ b/decidim-meetings/config/locales/fi.yml
@@ -50,8 +50,6 @@ fi:
meeting_registration_invite:
email: Sähköpostiosoite
name: Nimi
- response:
- add_documents: Lisää asiakirjoja
validate_registration_code:
code: Koodi
errors:
diff --git a/decidim-meetings/config/locales/fr-CA.yml b/decidim-meetings/config/locales/fr-CA.yml
index 5ab1cc96ac7e6..0a1adb9f8cdd9 100644
--- a/decidim-meetings/config/locales/fr-CA.yml
+++ b/decidim-meetings/config/locales/fr-CA.yml
@@ -50,8 +50,6 @@ fr-CA:
meeting_registration_invite:
email: Email
name: Nom
- response:
- add_documents: Ajouter des documents
validate_registration_code:
code: Code
errors:
@@ -146,6 +144,7 @@ fr-CA:
success: Cette rencontre a été dupliquée avec succès.
new:
copy: Copier
+ title: Dupliquer une rencontre
tooltips:
cannot_close_meetings: Impossible de fermer cette réunion car elle a été créée par un participant
cannot_duplicate_meetings: Impossible de dupliquer cette réunion car elle a été créée par un participant
@@ -167,7 +166,7 @@ fr-CA:
global:
announcement: Annonce
comments_enabled: Activer le module de commentaire
- comments_max_length: Longueur max des commentaires (laisser 0 pour la valeur par défaut)
+ comments_max_length: Nombre maximum de caractères par commentaire (Laisser 0 pour la valeur par défaut)
creation_enabled_for_participants: Les participants peuvent créer des réunions
default_registration_terms: Conditions d'inscription par défaut
define_taxonomy_filters: Veuillez définir des filtres pour cet espace participatif avant d'utiliser ce paramètre.
diff --git a/decidim-meetings/config/locales/fr.yml b/decidim-meetings/config/locales/fr.yml
index a7640b2bd036d..35f9127616b9e 100644
--- a/decidim-meetings/config/locales/fr.yml
+++ b/decidim-meetings/config/locales/fr.yml
@@ -50,8 +50,6 @@ fr:
meeting_registration_invite:
email: Email
name: Nom
- response:
- add_documents: Ajouter des documents
validate_registration_code:
code: Code
errors:
@@ -168,7 +166,7 @@ fr:
global:
announcement: Annonce
comments_enabled: Activer le module de commentaire
- comments_max_length: Longueur max des commentaires (laisser 0 pour la valeur par défaut)
+ comments_max_length: Nombre maximum de caractères par commentaire (Laisser 0 pour la valeur par défaut)
creation_enabled_for_participants: Les participants peuvent créer des rencontres
default_registration_terms: Conditions d'inscription par défaut
define_taxonomy_filters: Veuillez définir des filtres pour cet espace participatif avant d'utiliser ce paramètre.
diff --git a/decidim-meetings/config/locales/hu.yml b/decidim-meetings/config/locales/hu.yml
index 9836aa6648063..aa2eceb837e3e 100644
--- a/decidim-meetings/config/locales/hu.yml
+++ b/decidim-meetings/config/locales/hu.yml
@@ -92,7 +92,6 @@ hu:
global:
announcement: Közlemény
comments_enabled: Megjegyzések engedélyezve
- comments_max_length: Kommentek maximális hossza (Hagyjon 0 -t az alapértékhez)
creation_enabled_for_participants: A résztvevők létrehozhatnak találkozókat
default_registration_terms: Alapértelmezett regisztrációs feltételek
enable_pads_creation: A közös dokumentum létrehozásának engedélyezése
diff --git a/decidim-meetings/config/locales/it.yml b/decidim-meetings/config/locales/it.yml
index 07dd9c9e5edd3..49f771f06c3bf 100644
--- a/decidim-meetings/config/locales/it.yml
+++ b/decidim-meetings/config/locales/it.yml
@@ -86,7 +86,6 @@ it:
global:
announcement: Annuncio
comments_enabled: Commenti abilitati
- comments_max_length: Lunghezza massima dei commenti (Lasciare 0 per il valore predefinito)
creation_enabled_for_participants: I partecipanti possono creare riunioni
default_registration_terms: Termini di registrazione predefiniti
enable_pads_creation: Abilita la creazione di pad
diff --git a/decidim-meetings/config/locales/ja.yml b/decidim-meetings/config/locales/ja.yml
index df5191b3ac208..b7bdd612b6990 100644
--- a/decidim-meetings/config/locales/ja.yml
+++ b/decidim-meetings/config/locales/ja.yml
@@ -50,8 +50,6 @@ ja:
meeting_registration_invite:
email: Eメールアドレス
name: 名前
- response:
- add_documents: ドキュメントを追加
validate_registration_code:
code: コード
errors:
@@ -166,7 +164,7 @@ ja:
announcement: お知らせ
clear_all: すべてクリア
comments_enabled: コメントが有効
- comments_max_length: コメント最大長 (デフォルト値は 0 のまま)
+ comments_max_length: 各コメントの最大文字数 (0はデフォルト値のまま)
creation_enabled_for_participants: 出席者はミーティングを作成できます
default_registration_terms: デフォルトの登録条件
define_taxonomy_filters: この設定を使用する前に、参加型スペースのフィルターをいくつか定義してください。
diff --git a/decidim-meetings/config/locales/lb.yml b/decidim-meetings/config/locales/lb.yml
index a917c906700f9..fe311d6f11afd 100644
--- a/decidim-meetings/config/locales/lb.yml
+++ b/decidim-meetings/config/locales/lb.yml
@@ -83,7 +83,6 @@ lb:
global:
announcement: Ankündigung
comments_enabled: Kommentare aktiviert
- comments_max_length: Maximale Länge der Kommentare (0 für Standardwert)
creation_enabled_for_participants: Teilnehmer können Besprechungen erstellen
default_registration_terms: Standard-Registrierungsbedingungen
enable_pads_creation: Aktivieren Sie die Pads-Erstellung
diff --git a/decidim-meetings/config/locales/lt.yml b/decidim-meetings/config/locales/lt.yml
index 89113a68e4688..704de76a33bc2 100644
--- a/decidim-meetings/config/locales/lt.yml
+++ b/decidim-meetings/config/locales/lt.yml
@@ -132,7 +132,6 @@ lt:
global:
announcement: Pranešimas
comments_enabled: Komentarai aktyvuoti
- comments_max_length: Maksimalus komentarų ilgis (numatytoji vertė – 0)
creation_enabled_for_participants: Dalyviai gali sukurti susitikimus
default_registration_terms: Numatytos registracijos sąlygos
enable_pads_creation: Leisti bendrų dokumentų kūrimą
diff --git a/decidim-meetings/config/locales/nl.yml b/decidim-meetings/config/locales/nl.yml
index cecccc4ff7615..e37313514c984 100644
--- a/decidim-meetings/config/locales/nl.yml
+++ b/decidim-meetings/config/locales/nl.yml
@@ -92,7 +92,6 @@ nl:
global:
announcement: Aankondiging
comments_enabled: Reacties ingeschakeld
- comments_max_length: Commentaar maximale lengte (laat 0 voor standaard waarde)
creation_enabled_for_participants: Deelnemers kunnen vergaderingen aanmaken
default_registration_terms: Standaard registratievoorwaarden
enable_pads_creation: Schakel het maken van pads in
diff --git a/decidim-meetings/config/locales/no.yml b/decidim-meetings/config/locales/no.yml
index b5f34971de7b6..4c3c37a7f0997 100644
--- a/decidim-meetings/config/locales/no.yml
+++ b/decidim-meetings/config/locales/no.yml
@@ -84,7 +84,6 @@
global:
announcement: Kunngjøring
comments_enabled: Kommentarer aktivert
- comments_max_length: Maks lengde på kommentarer (Sett 0 for standardverdi)
creation_enabled_for_participants: Deltakere kan opprette møter
default_registration_terms: Standard registreringsvilkår
enable_pads_creation: Aktiver oppretting av pads
diff --git a/decidim-meetings/config/locales/pl.yml b/decidim-meetings/config/locales/pl.yml
index e84747ed79e47..d09c3d272972a 100644
--- a/decidim-meetings/config/locales/pl.yml
+++ b/decidim-meetings/config/locales/pl.yml
@@ -152,7 +152,6 @@ pl:
global:
announcement: Ogłoszenie
comments_enabled: Komentarze włączone
- comments_max_length: Maksymalna długość komentarzy (Pozostaw 0 dla wartości domyślnej)
creation_enabled_for_participants: Uczestnicy mogą tworzyć spotkania
default_registration_terms: Domyślne warunki rejestracji
enable_pads_creation: Włącz tworzenie padów
diff --git a/decidim-meetings/config/locales/pt-BR.yml b/decidim-meetings/config/locales/pt-BR.yml
index 66230f55256d9..04778d57407a2 100644
--- a/decidim-meetings/config/locales/pt-BR.yml
+++ b/decidim-meetings/config/locales/pt-BR.yml
@@ -50,8 +50,6 @@ pt-BR:
meeting_registration_invite:
email: E-mail
name: Nome
- response:
- add_documents: Adicionar documentos
validate_registration_code:
code: Código
errors:
@@ -169,7 +167,6 @@ pt-BR:
announcement: Anúncio
clear_all: Limpar tudo
comments_enabled: Comentários ativados
- comments_max_length: Tamanho máximo de comentários (deixe 0 para o valor padrão)
creation_enabled_for_participants: Os participantes podem criar reuniões
default_registration_terms: Termos de registro padrão
define_taxonomy_filters: Por favor, defina alguns filtros para este espaço participativo antes de usar esta configuração.
diff --git a/decidim-meetings/config/locales/pt.yml b/decidim-meetings/config/locales/pt.yml
index 3dd9c42def946..8ef1b99853afc 100644
--- a/decidim-meetings/config/locales/pt.yml
+++ b/decidim-meetings/config/locales/pt.yml
@@ -85,7 +85,6 @@ pt:
global:
announcement: Anúncio
comments_enabled: Comentários ativados
- comments_max_length: Comprimento máximo dos comentários (Deixar 0 para o valor predefinido)
creation_enabled_for_participants: Os participantes podem criar reuniões
default_registration_terms: Termos de registo predefinidos
enable_pads_creation: Ativar criação de blocos
diff --git a/decidim-meetings/config/locales/ro-RO.yml b/decidim-meetings/config/locales/ro-RO.yml
index a9bd5c81ebe64..842fe7502002d 100644
--- a/decidim-meetings/config/locales/ro-RO.yml
+++ b/decidim-meetings/config/locales/ro-RO.yml
@@ -127,7 +127,6 @@ ro:
global:
announcement: Anunţ
comments_enabled: Comentarii activate
- comments_max_length: Lungimea maximă a comentariilor (Leave 0 pentru valoarea implicită)
creation_enabled_for_participants: Participanții pot crea întâlniri
default_registration_terms: Condiții de înregistrare implicite
enable_pads_creation: Activează crearea de pad-uri
diff --git a/decidim-meetings/config/locales/sk.yml b/decidim-meetings/config/locales/sk.yml
index 25b18df100bda..24d9b459725e4 100644
--- a/decidim-meetings/config/locales/sk.yml
+++ b/decidim-meetings/config/locales/sk.yml
@@ -50,8 +50,6 @@ sk:
meeting_registration_invite:
email: E-mail
name: Meno
- response:
- add_documents: Pridať dokumenty
validate_registration_code:
code: Kód
errors:
@@ -175,7 +173,6 @@ sk:
announcement: Oznámenie
clear_all: Vymazať všetko
comments_enabled: Komentáre povolené
- comments_max_length: Maximálna dĺžka komentárov (Ponechajte 0 pre predvolenú hodnotu)
creation_enabled_for_participants: Účastníci môžu vytvárať stretnutia
default_registration_terms: Východiskové podmienky registrácia
define_taxonomy_filters: Pred použitím tohto nastavenia definujte nejaké filtre pre tento participatívny priestor.
diff --git a/decidim-meetings/config/locales/sv.yml b/decidim-meetings/config/locales/sv.yml
index a4aca1785695f..6ff6d323b5763 100644
--- a/decidim-meetings/config/locales/sv.yml
+++ b/decidim-meetings/config/locales/sv.yml
@@ -50,8 +50,6 @@ sv:
meeting_registration_invite:
email: E-post
name: Namn
- response:
- add_documents: Lägg till dokument
validate_registration_code:
code: Kod
errors:
@@ -168,7 +166,6 @@ sv:
announcement: Meddelande
clear_all: Återställ
comments_enabled: Aktivera kommentarer
- comments_max_length: Maximal kommentarslängd (ange 0 för att använda standardvärdet)
creation_enabled_for_participants: Deltagarna kan skapa möten
default_registration_terms: Villkor för standardanmälan
define_taxonomy_filters: Ställ in filter innan du använder den här inställningen.
diff --git a/decidim-meetings/config/locales/tr-TR.yml b/decidim-meetings/config/locales/tr-TR.yml
index 765fd79406387..92d9ccda443c4 100644
--- a/decidim-meetings/config/locales/tr-TR.yml
+++ b/decidim-meetings/config/locales/tr-TR.yml
@@ -65,7 +65,6 @@ tr:
global:
announcement: Duyuru
comments_enabled: Yorumlar etkin
- comments_max_length: Maksimum yorum uzunluğu (Varsayılan değer için 0 bırakın)
creation_enabled_for_participants: Katılımcılar toplantı oluşturabilir
default_registration_terms: Varsayılan kayıt şartları
enable_pads_creation: Altlık oluşturmayı etkinleştirin
diff --git a/decidim-meetings/config/locales/zh-CN.yml b/decidim-meetings/config/locales/zh-CN.yml
index a976c4c0ab628..05dc242d57931 100644
--- a/decidim-meetings/config/locales/zh-CN.yml
+++ b/decidim-meetings/config/locales/zh-CN.yml
@@ -57,7 +57,6 @@ zh-CN:
global:
announcement: 通 知
comments_enabled: 评论已启用
- comments_max_length: 评论最大长度 (默认值留0)
creation_enabled_for_participants: 参与者可以创建会议
default_registration_terms: 默认注册条款
enable_pads_creation: 启用页面创建
diff --git a/decidim-meetings/config/locales/zh-TW.yml b/decidim-meetings/config/locales/zh-TW.yml
index 12308573b4a68..407e47159c9d1 100644
--- a/decidim-meetings/config/locales/zh-TW.yml
+++ b/decidim-meetings/config/locales/zh-TW.yml
@@ -121,7 +121,6 @@ zh-TW:
global:
announcement: 公告
comments_enabled: 已啟用留言
- comments_max_length: 評論字數最大長度(若要使用預設值請輸入0)
creation_enabled_for_participants: 參與者可以建立會議
default_registration_terms: 預設報名條款
enable_pads_creation: 啟用平板創建
diff --git a/decidim-meetings/lib/decidim/meetings/version.rb b/decidim-meetings/lib/decidim/meetings/version.rb
index 5ab4aa4cc1390..f7282fb65114f 100644
--- a/decidim-meetings/lib/decidim/meetings/version.rb
+++ b/decidim-meetings/lib/decidim/meetings/version.rb
@@ -4,7 +4,7 @@ module Decidim
# This holds the decidim-meetings version.
module Meetings
def self.version
- "0.31.4"
+ "0.31.7"
end
end
end
diff --git a/decidim-meetings/spec/cells/decidim/meetings/content_blocks/highlighted_meetings_cell_spec.rb b/decidim-meetings/spec/cells/decidim/meetings/content_blocks/highlighted_meetings_cell_spec.rb
index e5f2c706d7564..95edeae277580 100644
--- a/decidim-meetings/spec/cells/decidim/meetings/content_blocks/highlighted_meetings_cell_spec.rb
+++ b/decidim-meetings/spec/cells/decidim/meetings/content_blocks/highlighted_meetings_cell_spec.rb
@@ -49,7 +49,8 @@ module ContentBlocks
it { expect(meetings_ids).not_to include(item_id(unpublished_meeting)) }
it "shows the participatory space on homepage" do
- expect(html).to have_content(decidim_escape_translated(meeting.component.participatory_space.title))
+ expect(html).to have_content(translated_attribute(meeting.component.participatory_space.title))
+ expect(html.to_s).to include(decidim_escape_translated(meeting.component.participatory_space.title).gsub(""", "\""))
end
it "orders them correctly" do
diff --git a/decidim-meetings/spec/cells/decidim/meetings/meeting_l_cell_spec.rb b/decidim-meetings/spec/cells/decidim/meetings/meeting_l_cell_spec.rb
index 9a7fb5eff059f..b6b9b8503b07a 100644
--- a/decidim-meetings/spec/cells/decidim/meetings/meeting_l_cell_spec.rb
+++ b/decidim-meetings/spec/cells/decidim/meetings/meeting_l_cell_spec.rb
@@ -136,7 +136,8 @@ module Decidim::Meetings
let(:my_cell) { cell("decidim/meetings/meeting_l", meeting, context: { show_space: true }) }
it "shows the participatory space" do
- expect(subject).to have_content(decidim_escape_translated(meeting.component.participatory_space.title))
+ expect(subject).to have_content(translated_attribute(meeting.component.participatory_space.title))
+ expect(subject.to_s).to include(decidim_escape_translated(meeting.component.participatory_space.title).gsub(""", "\""))
end
end
diff --git a/decidim-meetings/spec/controllers/decidim/meetings/directory/meetings_controller_spec.rb b/decidim-meetings/spec/controllers/decidim/meetings/directory/meetings_controller_spec.rb
index f5df559d61f1f..2ec0f40f181c7 100644
--- a/decidim-meetings/spec/controllers/decidim/meetings/directory/meetings_controller_spec.rb
+++ b/decidim-meetings/spec/controllers/decidim/meetings/directory/meetings_controller_spec.rb
@@ -65,8 +65,8 @@
it { expect(response).to have_http_status(:success) }
it "shows the participatory space for each meeting" do
- expect(response.body).to include(ERB::Util.html_escape(decidim_escape_translated(participatory_process1.title)))
- expect(response.body).to include(ERB::Util.html_escape(decidim_escape_translated(participatory_process2.title)))
+ expect(response.body).to include(decidim_escape_translated(participatory_process1.title))
+ expect(response.body).to include(decidim_escape_translated(participatory_process2.title))
end
end
end
diff --git a/decidim-meetings/spec/controllers/decidim/meetings/meetings_controller_spec.rb b/decidim-meetings/spec/controllers/decidim/meetings/meetings_controller_spec.rb
index b5457366d3827..7f377e776c761 100644
--- a/decidim-meetings/spec/controllers/decidim/meetings/meetings_controller_spec.rb
+++ b/decidim-meetings/spec/controllers/decidim/meetings/meetings_controller_spec.rb
@@ -3,6 +3,8 @@
require "spec_helper"
describe Decidim::Meetings::MeetingsController do
+ include Decidim::Core::Engine.routes.url_helpers
+
let(:organization) { create(:organization) }
let(:participatory_process) { create(:participatory_process, organization:) }
let(:meeting_component) { create(:meeting_component, :with_creation_enabled, participatory_space: participatory_process) }
@@ -49,15 +51,15 @@
component_id: meeting_component.id
}
end
- let(:params) { { meeting: meeting_params } }
-
- before { sign_in user }
+ let(:params) { { meeting: meeting_params, id: meeting.id } }
context "when an authorized user is withdrawing a meeting" do
let(:meeting) { create(:meeting, component: meeting_component, author: user) }
+ before { sign_in user }
+
it "withdraws the meeting" do
- put :withdraw, params: params.merge(id: meeting.id)
+ put(:withdraw, params:)
expect(flash[:notice]).to eq("The meeting has been withdrawn successfully.")
expect(response).to have_http_status(:found)
@@ -70,8 +72,10 @@
let(:current_user) { create(:user, organization: meeting_component.organization) }
let(:meeting) { create(:meeting, component: meeting_component, author: current_user) }
+ before { sign_in user }
+
it "is not able to withdraw the meeting" do
- put :withdraw, params: params.merge(id: meeting.id)
+ put(:withdraw, params:)
expect(flash[:alert]).to eq("You are not authorized to perform this action.")
expect(response).to have_http_status(:found)
@@ -79,6 +83,18 @@
expect(meeting.withdrawn?).to be false
end
end
+
+ context "when user is not authenticated" do
+ let(:user) { nil }
+
+ it "redirects to login page" do
+ put(:withdraw, params:)
+ expect(flash[:alert]).to eq("You need to log in or create an account before continuing.")
+ expect(response).to redirect_to(new_user_session_path)
+ meeting.reload
+ expect(meeting.withdrawn?).to be false
+ end
+ end
end
describe "#show" do
@@ -160,4 +176,55 @@
end
end
end
+
+ describe "#create" do
+ let(:meeting_params) do
+ {
+ component_id: meeting_component.id
+ }
+ end
+ let(:params) { { meeting: meeting_params } }
+
+ context "when user is not authenticated" do
+ it "redirects to login page" do
+ post(:create, params:)
+ expect(flash[:alert]).to eq("You need to log in or create an account before continuing.")
+ expect(response).to redirect_to(new_user_session_path)
+ end
+ end
+ end
+
+ describe "#edit" do
+ let(:meeting_params) do
+ {
+ component_id: meeting_component.id
+ }
+ end
+ let(:params) { { meeting: meeting_params, id: meeting.id } }
+
+ context "when user is not authenticated" do
+ it "redirects to login page" do
+ get(:edit, params:)
+ expect(flash[:alert]).to eq("You need to log in or create an account before continuing.")
+ expect(response).to redirect_to(new_user_session_path)
+ end
+ end
+ end
+
+ describe "#update" do
+ let(:meeting_params) do
+ {
+ component_id: meeting_component.id
+ }
+ end
+ let(:params) { { meeting: meeting_params, id: meeting.id } }
+
+ context "when user is not authenticated" do
+ it "redirects to login page" do
+ put(:update, params:)
+ expect(flash[:alert]).to eq("You need to log in or create an account before continuing.")
+ expect(response).to redirect_to(new_user_session_path)
+ end
+ end
+ end
end
diff --git a/decidim-meetings/spec/forms/admin/meeting_agenda_form_spec.rb b/decidim-meetings/spec/forms/admin/meeting_agenda_form_spec.rb
index a9ff7481ff9f5..3a8c9f3220ddd 100644
--- a/decidim-meetings/spec/forms/admin/meeting_agenda_form_spec.rb
+++ b/decidim-meetings/spec/forms/admin/meeting_agenda_form_spec.rb
@@ -114,5 +114,88 @@ module Decidim::Meetings
it { is_expected.not_to be_valid }
end
+
+ describe "when deleting an item with longer than meeting duration and adding a new one with shorter duration" do
+ let(:agenda) { create(:agenda, meeting:) }
+ let(:existing_item) { create(:agenda_item, agenda:, duration: meeting.meeting_duration + 2.hours) }
+ let(:agenda_items) do
+ [
+ {
+ id: existing_item.id,
+ title: existing_item.title,
+ description: existing_item.description,
+ deleted: true,
+ duration: existing_item.duration,
+ position: 0
+ },
+ {
+ title: Decidim::Faker::Localized.sentence(word_count: 2),
+ description: Decidim::Faker::Localized.sentence(word_count: 5),
+ deleted: false,
+ duration: meeting.meeting_duration - 3.hours,
+ position: 1
+ }
+ ]
+ end
+
+ it { is_expected.to be_valid }
+ end
+
+ describe "when adding an item with less than meeting duration" do
+ let(:agenda) { create(:agenda, meeting:) }
+ let(:existing_item) { create(:agenda_item, agenda:, duration: meeting.meeting_duration - 3.hours) }
+ let(:agenda_items) do
+ [
+ {
+ id: existing_item.id,
+ title: existing_item.title,
+ description: existing_item.description,
+ deleted: false,
+ duration: existing_item.duration,
+ position: 0
+ }
+ ]
+ end
+
+ it { is_expected.to be_valid }
+ end
+
+ describe "when deleting shorter than meeting items and keeping longer than meeting items" do
+ let(:agenda) { create(:agenda, meeting:) }
+ let(:existing_item1) { create(:agenda_item, agenda:, duration: meeting.meeting_duration - 3.hours) }
+ let(:existing_item2) { create(:agenda_item, agenda:, duration: meeting.meeting_duration + 2.hours) }
+ let(:existing_item3) { create(:agenda_item, agenda:, duration: meeting.meeting_duration - 2.hours) }
+
+ let(:agenda_items) do
+ [
+ {
+ id: existing_item1.id,
+ title: existing_item1.title,
+ description: existing_item1.description,
+ deleted: true,
+ duration: existing_item1.duration,
+ position: 0
+ },
+ {
+ id: existing_item2.id,
+ title: existing_item2.title,
+ description: existing_item2.description,
+ deleted: false,
+ duration: existing_item2.duration,
+ position: 1
+ },
+ {
+ id: existing_item3.id,
+ title: existing_item3.title,
+ description: existing_item3.description,
+ deleted: true,
+ duration: existing_item3.duration,
+ position: 0
+ }
+ ]
+ end
+
+ it { is_expected.not_to be_valid }
+ end
end
end
diff --git a/decidim-meetings/spec/models/meeting_spec.rb b/decidim-meetings/spec/models/meeting_spec.rb
index 9e5bc811f39bc..50c637791d6de 100644
--- a/decidim-meetings/spec/models/meeting_spec.rb
+++ b/decidim-meetings/spec/models/meeting_spec.rb
@@ -508,5 +508,51 @@ module Decidim::Meetings
expect(update_jobs).to be <= Decidim::FindAndUpdateDescendantsJob::MAX_DEPTH
end
end
+
+ describe ".ransackable_attributes" do
+ let(:admin) { build(:user, :admin, :confirmed) }
+
+ it "allows admins to sort by start_time" do
+ expect(described_class.ransackable_attributes(admin)).to include("start_time")
+ end
+
+ it "allows admins to sort by end_time" do
+ expect(described_class.ransackable_attributes(admin)).to include("end_time")
+ end
+
+ it "allows admins to sort by closed" do
+ expect(described_class.ransackable_attributes(admin)).to include("closed")
+ end
+
+ it "allows admins to sort by translated_title" do
+ expect(described_class.ransackable_attributes(admin)).to include("translated_title")
+ end
+ end
+
+ describe ".authored_by" do
+ subject { described_class.authored_by(provided_author) }
+
+ let(:organization) { create(:organization, id: 1) }
+ let(:component) { create(:meeting_component, organization:) }
+ let(:user_author) { create(:user, :confirmed, id: 1, organization:) }
+ let!(:meeting_by_user) { create(:meeting, component:, author: user_author) }
+ let!(:meeting_by_organization) { create(:meeting, component:, author: organization) }
+
+ context "with user author" do
+ let(:provided_author) { user_author }
+
+ it "returns the correct meeting" do
+ expect(subject).to contain_exactly(meeting_by_user)
+ end
+ end
+
+ context "with organization author" do
+ let(:provided_author) { organization }
+
+ it "returns the correct meeting" do
+ expect(subject).to contain_exactly(meeting_by_organization)
+ end
+ end
+ end
end
end
diff --git a/decidim-meetings/spec/system/admin/admin_filters_meeting_invites_spec.rb b/decidim-meetings/spec/system/admin/admin_filters_meeting_invites_spec.rb
index 80b1561178494..01f5126e414a4 100644
--- a/decidim-meetings/spec/system/admin/admin_filters_meeting_invites_spec.rb
+++ b/decidim-meetings/spec/system/admin/admin_filters_meeting_invites_spec.rb
@@ -44,4 +44,30 @@
it_behaves_like "paginating a collection" do
let!(:collection) { create_list(:invite, 50, meeting:) }
end
+
+ context "when user exists in database" do
+ let(:meeting) { create(:meeting, :with_registrations_enabled) }
+
+ it "successfully handles the error" do
+ fill_in :meeting_registration_invite_name, with: user1.name
+ fill_in :meeting_registration_invite_email, with: user1.email
+ click_on "Invite"
+
+ expect(page).to have_content("There was a problem inviting the participant to join the meeting.")
+ end
+ end
+
+ context "when user does not exist in database" do
+ let(:meeting) { create(:meeting, :with_registrations_enabled) }
+
+ it "successfully handles the invite" do
+ invited = build(:user, organization:)
+
+ fill_in :meeting_registration_invite_name, with: invited.name
+ fill_in :meeting_registration_invite_email, with: invited.email
+ click_on "Invite"
+
+ expect(page).to have_content("Participant successfully invited to join the meeting.")
+ end
+ end
end
diff --git a/decidim-meetings/spec/system/admin/admin_manages_meetings_spec.rb b/decidim-meetings/spec/system/admin/admin_manages_meetings_spec.rb
index fa82e964fac55..9d0c93d9c2ccf 100644
--- a/decidim-meetings/spec/system/admin/admin_manages_meetings_spec.rb
+++ b/decidim-meetings/spec/system/admin/admin_manages_meetings_spec.rb
@@ -792,6 +792,62 @@
end
end
+ context "when the meeting has an attachment" do
+ let(:attachment_collection) { create(:attachment_collection, collection_for: meeting) }
+ let!(:attachment) { create(:attachment, attached_to: meeting, attachment_collection:) }
+
+ it "can remove an attachment" do
+ visit_component_admin
+ within "tr", text: translated(meeting.title) do
+ find("button[data-controller='dropdown']").click
+ click_on "Add attachment"
+ end
+
+ within "tr[data-id='#{attachment.id}']" do
+ find("button[data-controller='dropdown']").click
+ click_on "Delete"
+ end
+
+ accept_confirm
+ expect(page).to have_no_css("tr[data-id='#{attachment.id}']")
+ end
+
+ it "can attach a file" do
+ visit_component_admin
+ within "tr", text: translated(meeting.title) do
+ find("button[data-controller='dropdown']").click
+ click_on "Add attachment"
+ end
+
+ click_on "New attachment"
+
+ fill_in_i18n(:attachment_title, "#attachment-title-tabs", en: "Test attachment")
+ fill_in_i18n(:attachment_description, "#attachment-description-tabs", en: "Test description")
+
+ dynamically_attach_file(:attachment_file, Decidim::Dev.asset("Exampledocument.pdf"))
+
+ click_on "Create attachment"
+
+ expect(page).to have_text("Test attachment")
+ end
+
+ it "can edit a meeting with an attachment" do
+ visit_component_admin
+ within "tr", text: translated(meeting.title) do
+ find("button[data-controller='dropdown']").click
+ click_on "Edit"
+ end
+
+ within ".edit_meeting" do
+ fill_in_i18n(:meeting_title, "#meeting-title-tabs", en: "Updated title", ca: "Títol actualitzat", es: "Título actualizado")
+ find("*[type=submit]").click
+ end
+
+ expect(page).to have_content("Meeting successfully updated.")
+ expect(page).to have_text("Updated title")
+ end
+ end
+
private
def fill_in_services
diff --git a/decidim-meetings/spec/system/admin/filter_meetings_spec.rb b/decidim-meetings/spec/system/admin/filter_meetings_spec.rb
index 23fe788e57505..b1be2b569bcfc 100644
--- a/decidim-meetings/spec/system/admin/filter_meetings_spec.rb
+++ b/decidim-meetings/spec/system/admin/filter_meetings_spec.rb
@@ -123,6 +123,84 @@ def meeting_without_type(type)
end
end
+ context "when sorting by closed" do
+ let!(:open_a) { create(:meeting, component:, title: { en: "Open A" }) }
+ let!(:closed_b) { create(:meeting, :closed, component:, title: { en: "Closed B" }) }
+ let!(:open_c) { create(:meeting, component:, title: { en: "Open C" }) }
+ let!(:closed_d) { create(:meeting, :closed, component:, title: { en: "Closed D" }) }
+
+ before { visit_component_admin }
+
+ it "groups closed meetings first when 'Closed' is clicked" do
+ within "table thead" do
+ click_on "Closed"
+ end
+
+ titles = page.all("table tbody tr td:nth-child(2)").map(&:text)
+ closed_indices = [closed_b, closed_d].map { |m| titles.find_index { |t| t.include?(translated(m.title)) } }
+ open_indices = [open_a, open_c].map { |m| titles.find_index { |t| t.include?(translated(m.title)) } }
+ expect(closed_indices.max).to be < open_indices.min
+ end
+ end
+
+ context "when sorting by taxonomies" do
+ let(:root_taxonomy) { create(:taxonomy, organization:, name: { "en" => "Root" }) }
+ let!(:taxonomy_alpha) { create(:taxonomy, parent: root_taxonomy, organization:, name: { "en" => "Alpha topic" }) }
+ let!(:taxonomy_beta) { create(:taxonomy, parent: root_taxonomy, organization:, name: { "en" => "Beta topic" }) }
+ let!(:taxonomy_gamma) { create(:taxonomy, parent: root_taxonomy, organization:, name: { "en" => "Gamma topic" }) }
+ let(:taxonomy_filter) { create(:taxonomy_filter, root_taxonomy:, participatory_space_manifests: [participatory_space.manifest.name]) }
+ let!(:filter_item_alpha) { create(:taxonomy_filter_item, taxonomy_filter:, taxonomy_item: taxonomy_alpha) }
+ let!(:filter_item_beta) { create(:taxonomy_filter_item, taxonomy_filter:, taxonomy_item: taxonomy_beta) }
+ let!(:filter_item_gamma) { create(:taxonomy_filter_item, taxonomy_filter:, taxonomy_item: taxonomy_gamma) }
+ let!(:meeting_beta) { create(:meeting, component:, title: { en: "Has beta" }, taxonomies: [taxonomy_beta]) }
+ let!(:meeting_alpha) { create(:meeting, component:, title: { en: "Has alpha" }, taxonomies: [taxonomy_alpha]) }
+ let!(:meeting_gamma) { create(:meeting, component:, title: { en: "Has gamma" }, taxonomies: [taxonomy_gamma]) }
+
+ before do
+ component.update!(settings: { taxonomy_filters: [taxonomy_filter.id] })
+ visit_component_admin
+ end
+
+ it "sorts by taxonomy name ascending when 'Taxonomies' is clicked" do
+ within "table thead" do
+ click_on "Taxonomies"
+ end
+
+ titles = page.all("table tbody tr td:nth-child(2)").map(&:text)
+ expect(titles.find_index { |t| t.include?("Has alpha") }).to be < titles.find_index { |t| t.include?("Has beta") }
+ expect(titles.find_index { |t| t.include?("Has beta") }).to be < titles.find_index { |t| t.include?("Has gamma") }
+ end
+ end
+
+ context "when sorting by title" do
+ let!(:beta_meeting) { create(:meeting, component:, title: { en: "Beta meeting" }) }
+ let!(:alpha_meeting) { create(:meeting, component:, title: { en: "Alpha meeting" }) }
+ let!(:gamma_meeting) { create(:meeting, component:, title: { en: "Gamma meeting" }) }
+
+ before { visit_component_admin }
+
+ it "sorts by title descending when 'Title' is clicked" do
+ within "table thead" do
+ click_on "Title"
+ end
+
+ titles = page.all("table tbody tr td:nth-child(2)").map(&:text)
+ expect(titles.index("Gamma meeting")).to be < titles.index("Beta meeting")
+ expect(titles.index("Beta meeting")).to be < titles.index("Alpha meeting")
+ end
+
+ it "sorts by title ascending when 'Title' is clicked twice" do
+ within "table thead" do
+ click_on "Title"
+ click_on "Title"
+ end
+
+ titles = page.all("table tbody tr td:nth-child(2)").map(&:text)
+ expect(titles.index("Alpha meeting")).to be < titles.index("Beta meeting")
+ expect(titles.index("Beta meeting")).to be < titles.index("Gamma meeting")
+ end
+ end
+
it_behaves_like "paginating a collection" do
let!(:collection) { create_list(:meeting, 50, component:) }
end
diff --git a/decidim-meetings/spec/system/directory_meetings_spec.rb b/decidim-meetings/spec/system/directory_meetings_spec.rb
index 4ceafc268e273..f13796a50c5c8 100644
--- a/decidim-meetings/spec/system/directory_meetings_spec.rb
+++ b/decidim-meetings/spec/system/directory_meetings_spec.rb
@@ -34,8 +34,10 @@
it "shows the participatory space name for each meeting in the main list" do
within ".layout-2col__main" do
- expect(page).to have_content(decidim_escape_translated(participatory_process1.title))
- expect(page).to have_content(decidim_escape_translated(participatory_process2.title))
+ expect(page).to have_content translated(participatory_process1.title)
+ expect(page.html).to include decidim_escape_translated(participatory_process1.title).gsub(""", "\"")
+ expect(page).to have_content translated(participatory_process2.title)
+ expect(page.html).to include decidim_escape_translated(participatory_process2.title).gsub(""", "\"")
end
end
end
diff --git a/decidim-meetings/spec/system/meeting_registrations_spec.rb b/decidim-meetings/spec/system/meeting_registrations_spec.rb
index 4fd1549006adf..6593290a460c8 100644
--- a/decidim-meetings/spec/system/meeting_registrations_spec.rb
+++ b/decidim-meetings/spec/system/meeting_registrations_spec.rb
@@ -284,7 +284,7 @@ def see_questionnaire_questions; end
it "shows errors for invalid file" do
visit questionnaire_public_path
- dynamically_attach_file("questionnaire_responses_0_add_documents", Decidim::Dev.asset("verify_user_groups.csv"), keep_modal_open: true)
+ dynamically_attach_file("questionnaire_responses_0_add_attachments", Decidim::Dev.asset("verify_user_groups.csv"), keep_modal_open: true)
expect(page).to have_content("Validation error!")
end
diff --git a/decidim-meetings/spec/system/meetings_social_share_spec.rb b/decidim-meetings/spec/system/meetings_social_share_spec.rb
index 4c586b33abb8e..0e82219c129eb 100644
--- a/decidim-meetings/spec/system/meetings_social_share_spec.rb
+++ b/decidim-meetings/spec/system/meetings_social_share_spec.rb
@@ -79,7 +79,7 @@
end
end
- context "when no attachment images" do
+ context "when no attachment image" do
let!(:attachment) { nil }
it_behaves_like "a social share meta tag", "description_image.jpg"
diff --git a/decidim-meetings/spec/system/user_creates_meeting_spec.rb b/decidim-meetings/spec/system/user_creates_meeting_spec.rb
index c0fe104c59569..34c1c533f27fa 100644
--- a/decidim-meetings/spec/system/user_creates_meeting_spec.rb
+++ b/decidim-meetings/spec/system/user_creates_meeting_spec.rb
@@ -33,6 +33,72 @@
switch_to_host(organization.host)
end
+ context "when the user is not logged in" do
+ context "when creation is enabled" do
+ let!(:component) do
+ create(:meeting_component,
+ participatory_space: participatory_process,
+ settings: { creation_enabled_for_participants: true, taxonomy_filters: [taxonomy_filter.id] })
+ end
+
+ it "displays the new meeting button" do
+ visit_component
+ expect(page).to have_text("New meeting")
+ end
+
+ it "redirects to login page when visiting new page" do
+ visit Decidim::EngineRouter.main_proxy(component).new_meeting_path
+ expect(page).to have_text("You need to log in or create an account before continuing.")
+ expect(page).to have_current_path(decidim.new_user_session_path)
+ end
+ end
+
+ context "when creation is disabled" do
+ let!(:component) do
+ create(:meeting_component,
+ participatory_space: participatory_process,
+ settings: { taxonomy_filters: [taxonomy_filter.id] })
+ end
+
+ it "hides the new meeting button" do
+ visit_component
+ expect(page).to have_no_text("New meeting")
+ end
+ end
+ end
+
+ context "when the user is logged in" do
+ before do
+ login_as user, scope: :user
+ end
+
+ context "when creation is enabled" do
+ let!(:component) do
+ create(:meeting_component,
+ participatory_space: participatory_process,
+ settings: { creation_enabled_for_participants: true, taxonomy_filters: [taxonomy_filter.id] })
+ end
+
+ it "displays the new post button" do
+ visit_component
+ expect(page).to have_text("New meeting")
+ end
+ end
+
+ context "when creation is disabled" do
+ let!(:component) do
+ create(:meeting_component,
+ participatory_space: participatory_process,
+ settings: { taxonomy_filters: [taxonomy_filter.id] })
+ end
+
+ it "hides the new meeting button" do
+ visit_component
+ expect(page).to have_no_text("New meeting")
+ end
+ end
+ end
+
context "when creating a new meeting" do
let(:user) { create(:user, :confirmed, organization:) }
diff --git a/decidim-meetings/spec/types/integration_schema_spec.rb b/decidim-meetings/spec/types/integration_schema_spec.rb
index d9fbf607eac5c..306a6ae785650 100644
--- a/decidim-meetings/spec/types/integration_schema_spec.rb
+++ b/decidim-meetings/spec/types/integration_schema_spec.rb
@@ -196,7 +196,7 @@
]
},
"url" => Decidim::EngineRouter.main_proxy(current_component).root_url,
- "weight" => 0
+ "weight" => current_component.weight
}
end
diff --git a/decidim-pages/config/locales/de.yml b/decidim-pages/config/locales/de.yml
index 056d9ed493ef0..627c9f8fc47e0 100644
--- a/decidim-pages/config/locales/de.yml
+++ b/decidim-pages/config/locales/de.yml
@@ -24,7 +24,7 @@ de:
component: Die Komponente, zu der die Seite gehört
created_at: Erstellungsdatum dieser Seite
id: Die eindeutige Bezeichnung des Seite
- participatory_space: Zu welchem Bereich diese Seite gehört (z.B. Partizipationsprozesse oder Gremien)
+ participatory_space: Zu welchem Bereich diese Seite gehört (z.B. Partizipationsprozesse oder Versammlungen)
title: Der Seitentitel
updated_at: Letztes Aktualisierungsdatum dieser Seite
url: Die URL für diese Seite
diff --git a/decidim-pages/config/locales/eu.yml b/decidim-pages/config/locales/eu.yml
index bdb6f47a97a28..0e8ff3fd8cf10 100644
--- a/decidim-pages/config/locales/eu.yml
+++ b/decidim-pages/config/locales/eu.yml
@@ -3,7 +3,7 @@ eu:
activerecord:
models:
decidim/pages/page:
- one: Orrialde
+ one: Orrialdea
other: Orrialdeak
decidim:
admin_log:
@@ -32,7 +32,7 @@ eu:
admin:
models:
components:
- body: Testua
+ body: Gorputza
pages:
edit:
save: Eguneratu
diff --git a/decidim-pages/config/locales/pt-BR.yml b/decidim-pages/config/locales/pt-BR.yml
index ea3cc5df8f2c2..f3f93f0d89b6f 100644
--- a/decidim-pages/config/locales/pt-BR.yml
+++ b/decidim-pages/config/locales/pt-BR.yml
@@ -24,7 +24,7 @@ pt-BR:
component: O componente ao qual a página pertence
created_at: A data em que esta página foi criada
id: O identificador exclusivo desta página
- participatory_space: A qual espaço (por exemplo, processo participativo, ou Assembléia) esta página pertence
+ participatory_space: A qual espaço (por exemplo, processo participativo, ou Assembléia) esta página pertence
title: O título da página
updated_at: A última data que esta página foi atualizada
url: A URL para esta página
diff --git a/decidim-pages/lib/decidim/pages/component.rb b/decidim-pages/lib/decidim/pages/component.rb
index 83dce7bdb8dec..18991754c0b12 100644
--- a/decidim-pages/lib/decidim/pages/component.rb
+++ b/decidim-pages/lib/decidim/pages/component.rb
@@ -24,7 +24,7 @@
end
end
- component.on(:copy) do |context|
+ component.on(:duplicate) do |context|
Decidim::Pages::CopyPage.call(context) do
on(:invalid) { raise "Cannot duplicate page" }
end
diff --git a/decidim-pages/lib/decidim/pages/version.rb b/decidim-pages/lib/decidim/pages/version.rb
index afabdcc0dbe3f..0f49413f233f5 100644
--- a/decidim-pages/lib/decidim/pages/version.rb
+++ b/decidim-pages/lib/decidim/pages/version.rb
@@ -4,7 +4,7 @@ module Decidim
# This holds the decidim-pages version.
module Pages
def self.version
- "0.31.4"
+ "0.31.7"
end
end
end
diff --git a/decidim-pages/spec/factories.rb b/decidim-pages/spec/factories.rb
index c9297c89d4afa..741932cd14d82 100644
--- a/decidim-pages/spec/factories.rb
+++ b/decidim-pages/spec/factories.rb
@@ -4,3 +4,4 @@
require "decidim/core/test/factories"
require "decidim/participatory_processes/test/factories"
require "decidim/pages/test/factories"
+require "decidim/conferences/test/factories"
diff --git a/decidim-pages/spec/lib/decidim/pages/component_spec.rb b/decidim-pages/spec/lib/decidim/pages/component_spec.rb
new file mode 100644
index 0000000000000..f1652b6e51a3f
--- /dev/null
+++ b/decidim-pages/spec/lib/decidim/pages/component_spec.rb
@@ -0,0 +1,69 @@
+# frozen_string_literal: true
+
+require "spec_helper"
+
+describe "Pages component" do # rubocop:disable RSpec/DescribeClass
+ let(:organization) { create(:organization) }
+ let(:current_user) { create(:user, :admin, :confirmed, organization:) }
+ let(:form_context) do
+ {
+ current_organization: organization,
+ current_user:
+ }
+ end
+
+ shared_examples "participatory space component duplication" do
+ let(:original_component) { create(:page_component, participatory_space:) }
+ let!(:original_page) { create(:page, component: original_component) }
+
+ it "copies the page" do
+ expect { subject }.to change { Decidim::Pages::Page.where(body: original_page.body).count }.by(1)
+ end
+ end
+
+ context "with assembly" do
+ subject { Decidim::Assemblies::Admin::DuplicateAssembly.call(form, participatory_space, current_user) }
+
+ let(:form) do
+ Decidim::Assemblies::Admin::AssemblyDuplicateForm.from_params(
+ title: { en: "Copied assembly" },
+ slug: "copied-assembly",
+ duplicate_components: true
+ ).with_context(form_context)
+ end
+ let(:participatory_space) { create(:assembly, organization:) }
+
+ it_behaves_like "participatory space component duplication"
+ end
+
+ context "with conference" do
+ subject { Decidim::Conferences::Admin::DuplicateConference.call(form, participatory_space) }
+
+ let(:form) do
+ Decidim::Conferences::Admin::ConferenceDuplicateForm.from_params(
+ title: { en: "Copied conference" },
+ slug: "copied-conference",
+ duplicate_components: true
+ ).with_context(form_context)
+ end
+ let(:participatory_space) { create(:conference, organization:) }
+
+ it_behaves_like "participatory space component duplication"
+ end
+
+ context "with process" do
+ subject { Decidim::ParticipatoryProcesses::Admin::DuplicateParticipatoryProcess.call(form, participatory_space) }
+
+ let(:form) do
+ Decidim::ParticipatoryProcesses::Admin::ParticipatoryProcessDuplicateForm.from_params(
+ title: { en: "Copied process" },
+ slug: "copied-process",
+ duplicate_steps: false,
+ duplicate_components: true
+ ).with_context(form_context)
+ end
+ let(:participatory_space) { create(:participatory_process, organization:) }
+
+ it_behaves_like "participatory space component duplication"
+ end
+end
diff --git a/decidim-pages/spec/types/integration_schema_spec.rb b/decidim-pages/spec/types/integration_schema_spec.rb
index 3409a6bf95cca..291e130830d73 100644
--- a/decidim-pages/spec/types/integration_schema_spec.rb
+++ b/decidim-pages/spec/types/integration_schema_spec.rb
@@ -52,7 +52,7 @@
]
},
"url" => Decidim::EngineRouter.main_proxy(current_component).root_url,
- "weight" => 0
+ "weight" => current_component.weight
}
end
diff --git a/decidim-participatory_processes/app/cells/decidim/participatory_processes/process_step/show.erb b/decidim-participatory_processes/app/cells/decidim/participatory_processes/process_step/show.erb
index 9711ff69f405f..7277c34117720 100644
--- a/decidim-participatory_processes/app/cells/decidim/participatory_processes/process_step/show.erb
+++ b/decidim-participatory_processes/app/cells/decidim/participatory_processes/process_step/show.erb
@@ -1,7 +1,7 @@
<%= decidim_modal id: "process-steps-modal", class: "participatory-space__metadata-modal", data: do %>
diff --git a/decidim-participatory_processes/config/locales/bg.yml b/decidim-participatory_processes/config/locales/bg.yml
index debb17754f158..a35d408172f4b 100644
--- a/decidim-participatory_processes/config/locales/bg.yml
+++ b/decidim-participatory_processes/config/locales/bg.yml
@@ -15,7 +15,6 @@ bg:
import_attachments: Импортиране на прикачени файлове
import_categories: Импортиране на категории
import_components: Импортиране на компоненти
- import_steps: Стъпки за импортиране
local_area: Район на организацията
meta_scope: Метаданни сфера
participatory_process_group_id: Група процеси
diff --git a/decidim-participatory_processes/config/locales/ca-IT.yml b/decidim-participatory_processes/config/locales/ca-IT.yml
index 4df222e8eb7a0..11921fb887d16 100644
--- a/decidim-participatory_processes/config/locales/ca-IT.yml
+++ b/decidim-participatory_processes/config/locales/ca-IT.yml
@@ -13,13 +13,11 @@ ca-IT:
duplicate_categories: Duplicar les categories
duplicate_components: Duplicar els components
duplicate_landing_page_blocks: Duplicar els blocs de contingut de la pàgina d'inici
- duplicate_steps: Duplicar les fases
end_date: Data de finalització
hero_image: Imatge de portada
import_attachments: Importar arxius adjunts
import_categories: Importar categories
import_components: Importar components
- import_steps: Importar fases
local_area: Àrea d'organització
meta_scope: Metadades d'àmbit
participatory_process_group_id: Grup de processos
@@ -109,7 +107,7 @@ ca-IT:
participatory_process_groups: Grups de processos
participatory_process_groups_submenu:
info: Quant a aquest grup de processos
- landing_page: Disposició de la pàgina de destinació
+ landing_page: Disposició de la pàgina d'inici
participatory_processes: Processos
participatory_processes_submenu:
attachment_collections: Carpetes
@@ -117,7 +115,7 @@ ca-IT:
attachments: Adjunts
components: Components
info: Quant a aquest procés
- landing_page: Disposició de la pàgina de destinació
+ landing_page: Disposició de la pàgina d'inici
moderations: Moderacions
private_users: Membres
process_admins: Administradores del procés
diff --git a/decidim-participatory_processes/config/locales/ca.yml b/decidim-participatory_processes/config/locales/ca.yml
index 9f7285006d0ae..5e826070c3ef4 100644
--- a/decidim-participatory_processes/config/locales/ca.yml
+++ b/decidim-participatory_processes/config/locales/ca.yml
@@ -13,13 +13,11 @@ ca:
duplicate_categories: Duplicar les categories
duplicate_components: Duplicar els components
duplicate_landing_page_blocks: Duplicar els blocs de contingut de la pàgina d'inici
- duplicate_steps: Duplicar les fases
end_date: Data de finalització
hero_image: Imatge de portada
import_attachments: Importar arxius adjunts
import_categories: Importar categories
import_components: Importar components
- import_steps: Importar fases
local_area: Àrea d'organització
meta_scope: Metadades d'àmbit
participatory_process_group_id: Grup de processos
@@ -109,7 +107,7 @@ ca:
participatory_process_groups: Grups de processos
participatory_process_groups_submenu:
info: Quant a aquest grup de processos
- landing_page: Disposició de la pàgina de destinació
+ landing_page: Disposició de la pàgina d'inici
participatory_processes: Processos
participatory_processes_submenu:
attachment_collections: Carpetes
@@ -117,7 +115,7 @@ ca:
attachments: Adjunts
components: Components
info: Quant a aquest procés
- landing_page: Disposició de la pàgina de destinació
+ landing_page: Disposició de la pàgina d'inici
moderations: Moderacions
private_users: Membres
process_admins: Administradores del procés
diff --git a/decidim-participatory_processes/config/locales/cs.yml b/decidim-participatory_processes/config/locales/cs.yml
index 666174b2663e3..6eace81b82751 100644
--- a/decidim-participatory_processes/config/locales/cs.yml
+++ b/decidim-participatory_processes/config/locales/cs.yml
@@ -13,13 +13,11 @@ cs:
duplicate_categories: Duplikovat kategorie
duplicate_components: Duplikovat komponenty
duplicate_landing_page_blocks: Duplikovat bloky vstupní strany
- duplicate_steps: Duplikovat kroky
end_date: Datum ukončení
hero_image: Domácí obrázek
import_attachments: Importovat přílohy
import_categories: Importovat kategorie
import_components: Importovat komponenty
- import_steps: Importovat kroky
local_area: Oblast působnosti organizace
meta_scope: Metadata Oblasti působnosti
participatory_process_group_id: Skupina procesů
@@ -191,6 +189,7 @@ cs:
new:
import: Importovat
select: Vyberte, které údaje chcete importovat
+ title: Importovat participační proces
participatory_process_publications:
create:
error: Při publikování tohoto procesu participace došlo k chybě.
@@ -220,11 +219,13 @@ cs:
Nechali jsme zde pro vás migraci CTA, které potřebujete. Pole Cesta výzvy k akci a
Text výzvy k akci bude v příští verzi odstraněn.
title: Zastaralá CTA
+ title: Upravit fázi participačního procesu
update: Aktualizace
index:
steps_title: Kroky
new:
create: Vytvořit
+ title: Nová fáze participativního procesu
ordering:
error: Došlo k chybě při novém uspořádání těchto kroků procesu participace.
update:
@@ -237,9 +238,13 @@ cs:
destroy:
success: Uživatel byl úspěšně odstraněn z tohoto participačního procesu.
edit:
+ title: Aktualizovat správce participačního procesu
update: Aktualizace
+ index:
+ process_admins_title: Správci participačního procesu
new:
create: Vytvořit
+ title: Nový správce participačního procesu
update:
error: Došlo k chybě při aktualizaci uživatele pro tento participační proces.
success: Uživatel byl úspěšně aktualizován pro tento participační proces.
@@ -641,6 +646,187 @@ cs:
related_processes: Související procesy
static_pages:
democratic_quality_indicators:
+ content: |-
+
Systém indikátorů na měření indikátoru kvality v Decidim.
+
+
Úvod
+
Demokratická kvalita je základním principem Decidim. Na její udržení jsme vyvinuli systém indikátorů, které pomáhají hodnotit kvalitu participativních procesů na platformě. Tento článek vysvětluje, jak se tyto indikátory počítají.
+
+
Jak se počítají indikátory?
+
Definovali jsme dvě metody sběru indikátorů kvality:
+
+
+
Automatické metriky: Tyto se počítají přímo z údajů platformy Decidim.
+
Otázky sebehodnocení: Tyto jsou založeny na formuláři, který vyplní administrátor.
+
+
+
Každý indikátor je vyjádřen v procentech (n/celkem). Toto procento se pak převede na skóre na stupnici od 1 do 5:
+
+
+
1 = 0–20%
+
2 = 20–40%
+
3 = 40–60%
+
4 = 60–80%
+
5 = 80–100%
+
+
+
+
Automatické metriky
+
Tyto metriky se automaticky počítají z údajů dostupných v Decidim. Hodnotí se pro každý participativní proces a administrátoři je mohou zveřejnit, aby k nim měli přístup všichni účastníci.
+
+
Definovali jsme čtyři hlavní indikátory: Dopad občanů, Hybridizace, Reakceschopnost a Sledovatelnost:
+
+
Vliv občanů
+
+
Tento indikátor měří úroveň dopadu občanů na přijaté návrhy a výsledky procesu.
+
+
+
+ Vliv občanů na návrhy
+
+
Procento přijatých návrhů (n/celkem)
+
Procento schválených občanských návrhů z celkového počtu občanských návrhů (celkový dopad občanů na schválené návrhy)
+
Procento schválených občanských návrhů z celkového počtu schválených návrhů (relativní dopad občanů na schválený návrh)
+
+
+
+ Vliv občanů na výstupy/výsledky
+
+
Procento výsledků spojených s občanskými návrhy z celkového počtu výsledků (celkový dopad občanů na výstupy)
+
+
+
+
+
Hybridizace
+
+
Tento indikátor měří úroveň kombinace mezi online a offline prostory během procesu.
+
+
+
Je aktivní komponenta setkání? (Ano=5, Ne=0)
+
Konají se osobní schůzky? (Ano=5, Ne=0)
+
Konají se online schůzky? (Ano=5, Ne=0)
+
Konají se hybridní schůzky? (Ano=5, Ne=0)
+
Jsou vytvořeny návrhy ze setkání? (Ano=5, Ne=0)
+
+
+
Reakceschopnost
+
+
Tento indikátor měří úroveň reakceschopnosti organizace na podněty účastníků. Odráží jejich zapojení prostřednictvím oficiálních odpovědí a implementovaných rozhodnutí.
+
+
+
Procento návrhů s odpověďmi (n/celkem) – Institucionální reakceschopnost na návrhy
+
Procento výsledků dokončených na 100 % (n/celkem)
+
+
+
Sledovatelnost
+
+
Tento indikátor měří transparentnost a sledovatelnost participativního procesu. Odráží, jak snadno mohou účastníci sledovat vývoj návrhů a ověřovat institucionální kroky prostřednictvím zveřejněných záznamů.
+
+
+
Počet návrhů s historií (n/celkem)
+
Procento výsledků spojených s návrhy (n/celkem)
+
Procento uzavřených schůzek se zveřejněným zápisem (n/celkem)
+
Aktivace modulu otevřených dat (dichotomické: 0 nebo 5)
+
Procento návrhů souvisejících s rozpočty (n/celkem)
+
+
+
+
Metriky sebehodnocení
+
+
Kromě automatických metrik navrhujeme použít formulář sebehodnocení k posouzení kvalitativních dimenzí každého participativního procesu. Tento formulář vyplní administrátoři platformy na konci každého procesu a odpovědi se veřejně zobrazí v bloku obsahu indikátorů.
+
+
Tyto otázky mají za cíl zachytit aspekty demokratické kvality, které nelze posoudit pouze prostřednictvím kvantitativních údajů. Je důležité poznamenat, že odpovědi na tento průzkum jsou ovlivněny názorem administrátorů platformy.
+
+
+
Otázky sebehodnocení
+
+
Otázky, které tvoří formulář sebehodnocení, na které odpovídají administrátoři, jakož i hodnoty spojené s každou odpovědí, jsou uvedeny níže.
+
+
Informativnost
+
+
+
Poskytují zveřejněné informace jasnost o mechanismech rozhodování (např. hlasování, konsensus, přímá jednání)?
+
+
Žádná jasnost = 0
+
Nízká jasnost = 1
+
Dostatečná jasnost = 2,5
+
Úplná jasnost = 5
+
+
+
Byly poskytnuty informace týkající se schopnosti účastníků ovlivnit diskutované téma (jak v komunikaci procesu a pozvánkách, tak i na začátku každé diskuse)?
+
+
Nikdy = 0
+
Téměř nikdy = 1
+
Obvykle = 2,5
+
Vždy = 5
+
+
+
+
+
Vliv občanů
+
+
+
Hodnocení stupně účasti v procesu
+
+
Účastníci obdrželi informace od organizace. = 1
+
Účastníci byli požádáni konzultativním způsobem nebo poskytli zpětnou vazbu organizaci. = 2
+
Účastníci byli zapojeni do sdílení rozhodovací pravomoci. = 3
+
Účastníci byli rozhodujícím způsobem zapojeni do rozhodování. = 4
+
Účastníci byli zapojeni do rozhodování a řízení zdrojů nebo implementace. = 5
+
+
+
Procento fází s 0-5 rozhodovacím zásahem občanů.
+
Z celkového počtu fází v procesu (od výběru problémů po dohled nad realizací), v kolika má veřejnost možnost přijímat rozhodnutí nebo provádět exekutivní kroky?
+
+
0-20% = 1
+
20-40% = 2
+
40-60% = 3
+
60-80% = 4
+
80-100% = 5
+
+
+
+
+
Inkluzivnost
+
+
+
Jak se hodnotí stupeň rozmanitosti aktérů a účastníků vzhledem k referenční populaci v procesu?
+
+
Žádný = 0
+
Nízký = 1
+
Dostatečný = 2,5
+
Dobrý = 5
+
+
+
V kolika jazycích byl proces komunikován?
+
+
Jeden jazyk = 1
+
Méně než polovina jazyků, kterými se hovoří v komunitě = 2,5
+
Více než polovina jazyků, kterými se mluví v komunitě = 5
+
+
+
Byla místa osobních setkání přístupná pro osoby se sníženou pohyblivostí?
+
+
Ne = 0
+
Částečně = 2,5
+
Ano = 5
+
+
+
Zasedání s účastí byla naplánována na různé časy (ráno, v poledne, odpoledne, večer a o víkendech).
+
+
Ne = 0
+
Částečně = 2,5
+
Ano = 5
+
+
+
Byla účastníkům nabídnuta digitální podpora?
+
+
Ne = 0
+
Částečně = 2,5
+
Ano = 5
+
+
+
title: Ukazatele kvality demokracie
statistics:
processes_count: Procesy
diff --git a/decidim-participatory_processes/config/locales/de.yml b/decidim-participatory_processes/config/locales/de.yml
index d017654346a24..5b48eb6506286 100644
--- a/decidim-participatory_processes/config/locales/de.yml
+++ b/decidim-participatory_processes/config/locales/de.yml
@@ -13,13 +13,13 @@ de:
duplicate_categories: Kategorien duplizieren
duplicate_components: Komponenten duplizieren
duplicate_landing_page_blocks: Startseiten-Blöcke duplizieren
- duplicate_steps: Schritte duplizieren
+ duplicate_steps: Phasen duplizieren
end_date: Enddatum
hero_image: Hauptbild
import_attachments: Anhänge importieren
import_categories: Kategorien importieren
import_components: Komponenten importieren
- import_steps: Schritte importieren
+ import_steps: Phasen importieren
local_area: Organisationsbereich
meta_scope: Bereichs-Metadaten
participatory_process_group_id: Prozessgruppe
@@ -66,6 +66,8 @@ de:
attributes:
document:
allowed_file_content_types: 'Ungültiger Dokumententyp. Nur Dateien mit folgenden Erweiterungen sind erlaubt: %{types}'
+ empty: Das Dokument ist leer
+ invalid_json: Das Dokument ist kein gültiges JSON
models:
decidim/participatory_process_step_activated_event: Phase aktiviert
decidim/participatory_process_step_changed_event: Phase geändert
@@ -162,11 +164,13 @@ de:
new:
duplicate: Duplizieren
select: Zu duplizierende Daten auswählen
+ title: Partizipationsprozess duplizieren
participatory_process_groups:
destroy:
error: Beim Löschen der Beteiligungsprozessgruppe ist ein Fehler aufgetreten.
success: Beteiligungsprozess erfolgreich gelöscht.
edit:
+ title: Prozessgruppe bearbeiten
update: Aktualisieren
new:
create: Erstellen
@@ -181,6 +185,7 @@ de:
new:
import: Importieren
select: Wählen Sie aus, welche Daten Sie importieren möchten
+ title: Partizipationsprozess importieren
participatory_process_publications:
create:
error: Bei der Veröffentlichung dieses Beteiligungsprozesses ist ein Fehler aufgetreten.
@@ -210,11 +215,13 @@ de:
Sie können die benötigten Handlungsaufforderungen migrieren. Die Felder Aufruf zum Aktionspfad und
Aufruf zum Aktionstext werden in der nächsten Version entfernt.
title: Handlungsaufforderung veraltet
+ title: Partizipativen Prozessschritt bearbeiten
update: Aktualisieren
index:
steps_title: Schritte
new:
create: Erstellen
+ title: Neuer partizipativer Prozessschritt
ordering:
error: Beim Neuanordnen dieser partizipativen Prozessschritte ist ein Fehler aufgetreten.
update:
@@ -227,9 +234,13 @@ de:
destroy:
success: Der Benutzer wurde erfolgreich aus diesem partizipativen Prozess entfernt.
edit:
+ title: Partizipationsprozess-Admin aktualisieren
update: Aktualisieren
+ index:
+ process_admins_title: Partizipationsprozess-Admins
new:
create: Erstellen
+ title: Neuer Partizipationsprozess-Admin
update:
error: Für diesen partizipativen Prozess wurde ein Fehler bei einem Benutzer aktualisiert.
success: Der Benutzer wurde für diesen partizipativen Prozess erfolgreich aktualisiert.
@@ -244,8 +255,11 @@ de:
public: Öffentlich
published: Veröffentlicht
unpublished: Nicht veröffentlicht
+ manage_trash:
+ title: Gelöschte Partizipationsprozesse
new:
create: Erstellen
+ title: Neuer Partizipationsprozess
update:
error: Beim Aktualisieren dieses Beteiligungsprozesses ist ein Fehler aufgetreten.
success: Beteiligungsprozess erfolgreich aktualisiert.
@@ -264,6 +278,7 @@ de:
participatory_process_groups: Partizipative Prozessgruppen
participatory_process_types: Beteiligungsprozesstypen
participatory_processes: Beteiligungsprozesse
+ participatory_processes_deleted: Gelöschte Partizipationsprozesse
tooltips:
deleted_processes_info: Prozesse können nur gelöscht werden, wenn der Status "Nicht veröffentlicht" ist.
users:
@@ -459,7 +474,7 @@ de:
legend: Die Teilnahme war zu verschiedenen Zeiten geplant (morgens, mittags, nachmittags, abends oder am Wochenende).
options:
five: 'Ja'
- two_five:
+ two_five: Teilweise
zero: 'Nein'
informativeness:
information_provided:
@@ -482,9 +497,13 @@ de:
all: Alle
max_results: Maximale Anzahl der Elemente, die angezeigt werden sollen
selection_criteria: Auswahlkriterien
+ imports:
+ attachment_error: Der Anhang "%{title}" konnte nicht importiert werden (%{error}).
+ hero_image_error: Das Titelbild konnte nicht importiert werden (%{error}).
new_import:
accepted_types:
json: JSON
+ help_html: Mit dieser Importfunktion können Sie aus einer exportierten JSON-Datei einen neuen Partizipationsprozess erstellen. Sie können einen Prozess von einer anderen Organisation oder von derselben Organisation exportieren. Der importierte Prozess enthält Einstellungen, Komponenten und Anhänge (falls ausgewählt).
participatory_process_duplicates:
form:
slug_help_html: 'URL-Slugs werden zum Generieren der URLs verwendet, die auf diesen Prozess verweisen. Akzeptiert werden nur Buchstaben, Zahlen und Bindestriche und sie müssen mit einem Buchstaben beginnen. Beispiel: %{url}'
@@ -613,6 +632,187 @@ de:
related_processes: Ähnliche Beteiligungsprozesse
static_pages:
democratic_quality_indicators:
+ content: |-
+
Indikatorensystem zur Messung der Qualitätsindikatoren in Decidim.
+
+
Einleitung
+
Demokratische Qualität ist ein Grundprinzip von Decidim. Um dies zu gewährleisten, haben wir ein Indikatorensystem entwickelt, das dabei hilft, die Qualität von Partizipationsprozessen auf der Plattform zu bewerten. Dieser Artikel erklärt, wie diese Indikatoren berechnet werden.
+
+
Wie werden die Indikatoren berechnet?
+
Wir haben zwei Methoden zur Erhebung der Qualitätsindikatoren definiert:
+
+
+
Automatische Kennzahlen: Diese werden direkt aus den Daten der Decidim-Plattform berechnet.
+
Selbstbewertungsfragen: Diese basieren auf einem von einem Admin ausgefüllten Formular.
+
+
+
Jeder Indikator wird als Prozentsatz (n/gesamt) ausgedrückt. Dieser Prozentsatz wird anschliessend in eine Bewertung auf einer Skala von 1 bis 5 umgerechnet:
+
+
+
1 = 0–20 %
+
2 = 20–40 %
+
3 = 40–60 %
+
4 = 60–80 %
+
5 = 80–100 %
+
+
+
+
Automatische Kennzahlen
+
Diese Kennzahlen werden automatisch aus den in Decidim verfügbaren Daten berechnet. Sie werden pro Partizipationsprozess ausgewertet und können von Admins veröffentlicht werden, sodass alle Teilnehmenden darauf zugreifen können.
+
+
Wir haben vier Hauptindikatoren definiert: Einfluss der Bürgerschaft, Hybridisierung, Reaktionsfähigkeit und Nachvollziehbarkeit:
+
+
Einfluss der Bürgerschaft
+
+
Dieser Indikator misst das Ausmass des Einflusses der Bürgerschaft auf die angenommenen Vorschläge und die Ergebnisse des Prozesses.
+
+
+
+ Einfluss der Bürgerschaft auf Vorschläge
+
+
Prozentsatz der angenommenen Vorschläge (n/gesamt)
+
Prozentsatz der angenommenen Bürger:innen-Vorschläge im Verhältnis zur Gesamtzahl der Bürger:innen-Vorschläge (Gesamteinfluss der Bürgerschaft auf angenommene Vorschläge)
+
Prozentsatz der angenommenen Bürger:innen-Vorschläge im Verhältnis zur Gesamtzahl der angenommenen Vorschläge (relativer Einfluss der Bürgerschaft auf angenommene Vorschläge)
+
+
+
+ Einfluss der Bürgerschaft auf Ergebnisse
+
+
Prozentsatz der Ergebnisse, die mit Bürger:innen-Vorschlägen verknüpft sind, bezogen auf die Gesamtzahl der Ergebnisse (Gesamteinfluss der Bürgerschaft auf Ergebnisse)
+
+
+
+
+
Hybridisierung
+
+
Dieser Indikator misst das Ausmass der Kombination von Online- und Offline-Formaten während des Prozesses.
+
+
+
Ist eine Veranstaltungskomponente aktiv? (Ja=5, Nein=0)
+
Gibt es Präsenzveranstaltungen? (Ja=5, Nein=0)
+
Gibt es Online-Veranstaltungen? (Ja=5, Nein=0)
+
Gibt es hybride Veranstaltungen? (Ja=5, Nein=0)
+
Gibt es Vorschläge, die aus Veranstaltungen entstanden sind? (Ja=5, Nein=0)
+
+
+
Reaktionsfähigkeit
+
+
Dieser Indikator misst, wie stark die Organisation auf die Beiträge der Teilnehmenden eingeht. Er spiegelt deren Engagement anhand offizieller Antworten und umgesetzter Entscheidungen wider.
+
+
+
Prozentsatz der beantworteten Vorschläge (n/gesamt) – institutionelle Reaktionsfähigkeit bei Vorschlägen
+
Prozentsatz der zu 100 % abgeschlossenen Ergebnisse (n/gesamt)
+
+
+
Nachvollziehbarkeit
+
+
Dieser Indikator misst die Transparenz und Nachvollziehbarkeit des Partizipationsprozesses. Er zeigt, wie leicht Teilnehmende die Entwicklung von Vorschlägen verfolgen und institutionelle Massnahmen anhand veröffentlichter Aufzeichnungen überprüfen können.
+
+
+
Anzahl der Vorschläge mit Verlauf (n/gesamt)
+
Prozentsatz der mit Vorschlägen verknüpften Ergebnisse (n/gesamt)
+
Prozentsatz der abgeschlossenen Veranstaltungen mit veröffentlichtem Protokoll (n/gesamt)
+
Aktivierung des Open-Data-Moduls (dichotom: 0 oder 5)
+
Prozentsatz der Vorschläge mit Bezug zu Budgets (n/gesamt)
+
+
+
+
Selbstbewertungs-Kennzahlen
+
+
Zusätzlich zu den automatischen Kennzahlen schlagen wir die Verwendung eines Selbstbewertungsformulars vor, um die qualitativen Dimensionen jedes Partizipationsprozesses zu bewerten. Dieses Formular wird von den Admins der Plattform am Ende jedes Prozesses ausgefüllt, und die Antworten werden öffentlich im Inhaltsblock der Indikatoren angezeigt.
+
+
Diese Fragen zielen darauf ab, Aspekte der demokratischen Qualität zu erfassen, die sich nicht allein anhand quantitativer Daten bewerten lassen. Es ist wichtig zu beachten, dass die Antworten auf diese Umfrage durch die Meinung der Admins der Plattform beeinflusst sind.
+
+
+
Selbstbewertungsfragen
+
+
Die Fragen, aus denen sich das von den Admins beantwortete Selbstbewertungsformular zusammensetzt, sowie die den einzelnen Antworten zugeordneten Werte, sind im Folgenden aufgeführt.
+
+
Informationsgehalt
+
+
+
Schaffen die veröffentlichten Informationen Klarheit über die Entscheidungsmechanismen (z. B. Abstimmung, Konsens, direkte Verhandlungen)?
+
+
Keine Klarheit = 0
+
Geringe Klarheit = 1
+
Ausreichende Klarheit = 2,5
+
Volle Klarheit = 5
+
+
+
Wurden Informationen darüber bereitgestellt, welchen Einfluss die Teilnehmenden auf das diskutierte Thema nehmen können (sowohl in der Kommunikation des Prozesses und den Einladungen als auch zu Beginn jeder Debattensitzung)?
+
+
Nie = 0
+
Fast nie = 1
+
Meistens = 2,5
+
Immer = 5
+
+
+
+
+
Einfluss der Bürgerschaft
+
+
+
Bewertung des Beteiligungsgrads am Prozess
+
+
Die Teilnehmenden erhielten Informationen von der Organisation. = 1
+
Die Teilnehmenden wurden konsultativ befragt oder gaben der Organisation Rückmeldung. = 2
+
Die Teilnehmenden wurden einbezogen, um Entscheidungsmacht zu teilen. = 3
+
Die Teilnehmenden wurden massgeblich in die Entscheidungsfindung einbezogen. = 4
+
Die Teilnehmenden wurden in die Entscheidungsfindung sowie die Verwaltung der Ressourcen oder die Umsetzung einbezogen. = 5
+
+
+
Prozentsatz der Phasen mit Entscheidungsbeteiligung der Bürgerschaft (0–5).
+
Wie viele der Phasen des Prozesses (von der Auswahl der Themen bis zur Überwachung der Umsetzung) räumen der Öffentlichkeit die Möglichkeit ein, Entscheidungen zu treffen oder ausführende Massnahmen zu ergreifen?
+
+
0–20 % = 1
+
20–40 % = 2
+
40–60 % = 3
+
60–80 % = 4
+
80–100 % = 5
+
+
+
+
+
Inklusion
+
+
+
Wie wird der Grad der Vielfalt der Akteure und Teilnehmenden im Verhältnis zur Referenzbevölkerung des Prozesses bewertet?
+
+
Keine = 0
+
Gering = 1
+
Ausreichend = 2,5
+
Gut = 5
+
+
+
In wie vielen Sprachen wurde der Prozess kommuniziert?
+
+
Eine Sprache = 1
+
Weniger als die Hälfte der in der Gemeinschaft gesprochenen Sprachen = 2,5
+
Mehr als die Hälfte der in der Gemeinschaft gesprochenen Sprachen = 5
+
+
+
Waren die Veranstaltungsorte der Präsenzveranstaltungen für Menschen mit eingeschränkter Mobilität zugänglich?
+
+
Nein = 0
+
Teilweise = 2,5
+
Ja = 5
+
+
+
Die Teilnahmesitzungen wurden zu unterschiedlichen Zeiten angesetzt (morgens, mittags, nachmittags, abends und an Wochenenden).
+
+
Nein = 0
+
Teilweise = 2,5
+
Ja = 5
+
+
+
Wurde den Teilnehmenden digitale Unterstützung angeboten?
+
+
Nein = 0
+
Teilweise = 2,5
+
Ja = 5
+
+
+
title: Demokratische Qualitätsindikatoren
statistics:
processes_count: Beteiligungsprozesse
diff --git a/decidim-participatory_processes/config/locales/el.yml b/decidim-participatory_processes/config/locales/el.yml
index 0d3de0d6fcfee..4f1cc22b7ade9 100644
--- a/decidim-participatory_processes/config/locales/el.yml
+++ b/decidim-participatory_processes/config/locales/el.yml
@@ -15,7 +15,6 @@ el:
import_attachments: Εισαγωγή συνημμένων
import_categories: Εισαγωγή κατηγοριών
import_components: Εισαγωγή στοιχείων
- import_steps: Εισαγωγή βημάτων
local_area: Τομέας οργανισμού
meta_scope: Μεταδεδομένα πεδίου εφαρμογής
participatory_process_group_id: Ομάδα διαδικασιών
diff --git a/decidim-participatory_processes/config/locales/en.yml b/decidim-participatory_processes/config/locales/en.yml
index 4fdabb4192561..d2f436841c2c0 100644
--- a/decidim-participatory_processes/config/locales/en.yml
+++ b/decidim-participatory_processes/config/locales/en.yml
@@ -13,13 +13,13 @@ en:
duplicate_categories: Duplicate categories
duplicate_components: Duplicate components
duplicate_landing_page_blocks: Duplicate landing page blocks
- duplicate_steps: Duplicate steps
+ duplicate_steps: Duplicate phases
end_date: End date
hero_image: Home image
import_attachments: Import attachments
import_categories: Import categories
import_components: Import components
- import_steps: Import steps
+ import_steps: Import phases
local_area: Organization area
meta_scope: Scope metadata
participatory_process_group_id: Processes group
diff --git a/decidim-participatory_processes/config/locales/es-MX.yml b/decidim-participatory_processes/config/locales/es-MX.yml
index 8cad467aac9f1..d7cfdae8135cc 100644
--- a/decidim-participatory_processes/config/locales/es-MX.yml
+++ b/decidim-participatory_processes/config/locales/es-MX.yml
@@ -13,13 +13,11 @@ es-MX:
duplicate_categories: Duplicar las categorías
duplicate_components: Duplicar los componentes
duplicate_landing_page_blocks: Duplicar los bloques de contenido de la página de inicio
- duplicate_steps: Duplicar las fases
end_date: Fecha de finalización
hero_image: Imagen de portada
import_attachments: Importar archivos adjuntos
import_categories: Importar categorias
import_components: Importar componentes
- import_steps: Importar fases
local_area: Área de organización
meta_scope: 'Metadatos: ámbito'
participatory_process_group_id: Grupo de procesos
@@ -639,7 +637,7 @@ es-MX:
La calidad democrática es un principio básico de Decidim. Para mantenerlo, se ha desarrollado un sistema de indicadores que ayudan a evaluar la calidad de los procesos participativos en la plataforma. En este artículo explicamos cómo se calculan estos indicadores.
¿Cómo se calculan los indicadores?
-
Se han definido dos métodos para la recogida de indicadores de calidad:
+
Se han definido dos métodos para la recogida de indicadores de calidad:
Métricas automáticas: Se calculan directamente a partir de los datos de la plataforma Decidim.
@@ -683,7 +681,7 @@ es-MX:
Hibridación
-
Este indicador mide el nivel de combinación entre espacios presenciales y digitales durante el proceso.
+
Este indicador mide el nivel de combinación entre espacios presenciales y digitales durante el proceso.
¿Hay algún componente de encuentros? (Sí=5, No=0)
¿Hay encuentros presenciales? (Sí=5, No=0)
@@ -702,7 +700,7 @@ es-MX:
Trazabilidad
-
Este indicador mide la transparencia y trazabilidad del proceso participativo. Refleja con qué facilidad la ciudadanía pueden seguir la evolución de las propuestas y verificar las acciones institucionales a través de los registros publicados.
+
Este indicador mide la transparencia y trazabilidad del proceso participativo. Refleja con qué facilidad la ciudadanía pueden seguir la evolución de las propuestas y verificar las acciones institucionales a través de los registros publicados.
Número de propuestas con historial (n/total)
Porcentaje de resultados vinculados a propuestas (n/total)
@@ -714,14 +712,14 @@ es-MX:
Métricas de autoevaluación
-
Además de las métricas automáticas, proponemos el uso de un formulario de autoevaluación para valorar las dimensiones cualitativas de cada proceso participativo. Este formulario será rellenado, al finalizar cada proceso participativo, por las responsables de estos, y las respuestas se mostrarán públicamente en el bloque de contenido de indicadores.
+
Además de las métricas automáticas, proponemos el uso de un formulario de autoevaluación para valorar las dimensiones cualitativas de cada proceso participativo. Este formulario será rellenado, al finalizar cada proceso participativo, por las responsables de estos, y las respuestas se mostrarán públicamente en el bloque de contenido de indicadores.
-
Estas preguntas pretenden captar aspectos de la calidad democrática que no pueden evaluarse únicamente a través de datos cuantitativos. Es importante tener en cuenta que las respuestas a esta encuesta están sesgadas por la opinión de las responsables del proceso participativo en cuestión.
+
Estas preguntas pretenden captar aspectos de la calidad democrática que no pueden evaluarse únicamente a través de datos cuantitativos. Es importante tener en cuenta que las respuestas a esta encuesta están sesgadas por la opinión de las responsables del proceso participativo en cuestión.
Preguntas de autoevaluación
-
A continuación se exponen las preguntas que componen el formulario de autoevaluación respondidas por las responsables del proceso, así como los valores asociados a cada respuesta.
+
A continuación se exponen las preguntas que componen el formulario de autoevaluación respondidas por las responsables del proceso, así como los valores asociados a cada respuesta.
Inclusividad
diff --git a/decidim-participatory_processes/config/locales/es-PY.yml b/decidim-participatory_processes/config/locales/es-PY.yml
index d2acab4895465..1f942e625a2dd 100644
--- a/decidim-participatory_processes/config/locales/es-PY.yml
+++ b/decidim-participatory_processes/config/locales/es-PY.yml
@@ -13,13 +13,11 @@ es-PY:
duplicate_categories: Duplicar las categorías
duplicate_components: Duplicar los componentes
duplicate_landing_page_blocks: Duplicar los bloques de contenido de la página de inicio
- duplicate_steps: Duplicar las fases
end_date: Fecha de finalización
hero_image: Imagen de portada
import_attachments: Importar archivos adjuntos
import_categories: Importar categorias
import_components: Importar componentes
- import_steps: Importar fases
local_area: Área de organización
meta_scope: 'Metadatos: ámbito'
participatory_process_group_id: Grupo de procesos
@@ -639,7 +637,7 @@ es-PY:
La calidad democrática es un principio básico de Decidim. Para mantenerlo, se ha desarrollado un sistema de indicadores que ayudan a evaluar la calidad de los procesos participativos en la plataforma. En este artículo explicamos cómo se calculan estos indicadores.
¿Cómo se calculan los indicadores?
-
Se han definido dos métodos para la recogida de indicadores de calidad:
+
Se han definido dos métodos para la recogida de indicadores de calidad:
Métricas automáticas: Se calculan directamente a partir de los datos de la plataforma Decidim.
@@ -683,7 +681,7 @@ es-PY:
Hibridación
-
Este indicador mide el nivel de combinación entre espacios presenciales y digitales durante el proceso.
+
Este indicador mide el nivel de combinación entre espacios presenciales y digitales durante el proceso.
¿Hay algún componente de encuentros? (Sí=5, No=0)
¿Hay encuentros presenciales? (Sí=5, No=0)
@@ -702,7 +700,7 @@ es-PY:
Trazabilidad
-
Este indicador mide la transparencia y trazabilidad del proceso participativo. Refleja con qué facilidad la ciudadanía pueden seguir la evolución de las propuestas y verificar las acciones institucionales a través de los registros publicados.
+
Este indicador mide la transparencia y trazabilidad del proceso participativo. Refleja con qué facilidad la ciudadanía pueden seguir la evolución de las propuestas y verificar las acciones institucionales a través de los registros publicados.
Número de propuestas con historial (n/total)
Porcentaje de resultados vinculados a propuestas (n/total)
@@ -714,14 +712,14 @@ es-PY:
Métricas de autoevaluación
-
Además de las métricas automáticas, proponemos el uso de un formulario de autoevaluación para valorar las dimensiones cualitativas de cada proceso participativo. Este formulario será rellenado, al finalizar cada proceso participativo, por las responsables de estos, y las respuestas se mostrarán públicamente en el bloque de contenido de indicadores.
+
Además de las métricas automáticas, proponemos el uso de un formulario de autoevaluación para valorar las dimensiones cualitativas de cada proceso participativo. Este formulario será rellenado, al finalizar cada proceso participativo, por las responsables de estos, y las respuestas se mostrarán públicamente en el bloque de contenido de indicadores.
-
Estas preguntas pretenden captar aspectos de la calidad democrática que no pueden evaluarse únicamente a través de datos cuantitativos. Es importante tener en cuenta que las respuestas a esta encuesta están sesgadas por la opinión de las responsables del proceso participativo en cuestión.
+
Estas preguntas pretenden captar aspectos de la calidad democrática que no pueden evaluarse únicamente a través de datos cuantitativos. Es importante tener en cuenta que las respuestas a esta encuesta están sesgadas por la opinión de las responsables del proceso participativo en cuestión.
Preguntas de autoevaluación
-
A continuación se exponen las preguntas que componen el formulario de autoevaluación respondidas por las responsables del proceso, así como los valores asociados a cada respuesta.
+
A continuación se exponen las preguntas que componen el formulario de autoevaluación respondidas por las responsables del proceso, así como los valores asociados a cada respuesta.
Inclusividad
diff --git a/decidim-participatory_processes/config/locales/es.yml b/decidim-participatory_processes/config/locales/es.yml
index 6c94911268572..35029fc2cd3b4 100644
--- a/decidim-participatory_processes/config/locales/es.yml
+++ b/decidim-participatory_processes/config/locales/es.yml
@@ -13,13 +13,11 @@ es:
duplicate_categories: Duplicar las categorías
duplicate_components: Duplicar los componentes
duplicate_landing_page_blocks: Duplicar los bloques de contenido de la página de inicio
- duplicate_steps: Duplicar las fases
end_date: Fecha de finalización
hero_image: Imagen de portada
import_attachments: Importar archivos adjuntos
import_categories: Importar categorias
import_components: Importar componentes
- import_steps: Importar fases
local_area: Área de organización
meta_scope: Metadatos de ámbito
participatory_process_group_id: Grupo de procesos
diff --git a/decidim-participatory_processes/config/locales/eu.yml b/decidim-participatory_processes/config/locales/eu.yml
index 5bb351acf3040..12298a58dcc08 100644
--- a/decidim-participatory_processes/config/locales/eu.yml
+++ b/decidim-participatory_processes/config/locales/eu.yml
@@ -13,18 +13,18 @@ eu:
duplicate_categories: Kategoriak bikoiztu
duplicate_components: Bikoiztu osagaiak
duplicate_landing_page_blocks: Bikoiztu lurreratze-orrien blokeak
- duplicate_steps: Bikoiztu urratsak
+ duplicate_steps: Fase bikoiztuak
end_date: Bukaera-data
hero_image: Orri nagusiko irudia
import_attachments: Inportatu eranskinak
import_categories: Inportatu kategoriak
import_components: Inportatu osagaiak
- import_steps: Inportatu faseak
+ import_steps: Faseak inportatu
local_area: Antolakuntza arloa
- meta_scope: 'Metadatuak: eremua'
+ meta_scope: Eremuaren metadatuak
participatory_process_group_id: Prozesu-multzoa
participatory_scope: Zer erabaki da
- participatory_structure: Nola erabakitzen da?
+ participatory_structure: Nola erabakitzen da
private_space: Prozesu pribatua
promoted: Nabarmendua
published_at: Argitaratze-data
@@ -33,7 +33,7 @@ eu:
slug: URL laburra
start_date: Hasiera-data
subtitle: Azpititulua
- target: Nork parte hartzen duen
+ target: Nork hartzen du parte
title: Izenburua
weight: Ordena
participatory_process_group:
@@ -80,7 +80,7 @@ eu:
one: Partaidetza-prozesuaren taldea
other: Partaidetza-prozesuen taldeak
decidim/participatory_process_step:
- one: Step
+ one: Urratsa
other: Faseak
decidim:
admin:
@@ -88,7 +88,7 @@ eu:
activate: Aktibatu
confirm_delete_process: Ziur zaude prozesu hau ezabatu nahi duzula? Iritziz aldatzen baduzu, geroago berreskuratu ahal izango duzu.
confirm_destroy: Berretsi ezabatu
- destroy: ezabatu
+ destroy: Ezabatu
duplicate: Bikoiztu
edit: Editatu
import_process: Inportatu
@@ -99,9 +99,9 @@ eu:
preview: Aurreikusi
publish: Argitaratu
resend_invitation: Birbidali gonbita
- see_process: Ikusi prozesuak
- unpublish: Despublikatu
- view_deleted_processes: Ikusi ezabatutako prozesuak
+ see_process: Prozesua ikusi
+ unpublish: Desargitaratu
+ view_deleted_processes: Ezabatutako prozesuak ikusi
filters:
decidim_participatory_process_group_id_eq:
label: Prozesu-taldeen arabera
@@ -121,7 +121,7 @@ eu:
moderations: Moderazioak
private_users: Kideak
process_admins: Prozesuaren parte-hartzaileak
- steps: Prozesuaren faseak
+ steps: Urratsak
models:
participatory_process:
fields:
@@ -191,8 +191,8 @@ eu:
error: Arazo bat egon da partaidetza-prozesua hau argitaratzean.
success: Partaidetza-prozesua zuzen argitaratua.
destroy:
- error: Arazo bat egon da partaidetza-prozesu hau desargitaratzean.
- success: Partaidetza-prozesua zuzen desargitaratua.
+ error: Arazo bat gertatu da partaidetza-prozesu hau desargitaratzean.
+ success: Partaidetza-prozesua behar bezala desargitaratu da.
participatory_process_step_activations:
create:
error: Arazo bat egon da partaidetza-prozesuaren fase hau aktibatzean.
@@ -210,22 +210,21 @@ eu:
edit:
cta_deprecated:
body_html: |-
- CTAren konfigurazioa, partaidetza-prozesuaren fasearen bidez, zaharkituta dago diseinu berriarekin.
- Orain, Hasierako orrian egiten da hori, Irudi nagusia eduki-blokea eta ekintza-botoia erabilita.
- Hemen utzi dugu behar dituzun CTAak egin ditzazun. Ekintzaren ibilbidea eta
- Ekintza botoiaren testuak hurrengo bertsioan ezabatuko dira.
+ Partaidetza-prozesuaren fasearen bidez CTA konfiguratzea zaharkituta dago diseinu berriarekin.
+ Orain Landing Page atalean egiten da, Hero eta irudia eduki-blokea erabiliz.
+ Hemen utzi dugu behar dituzun CTAk migratu ahal izateko. Ekintzarako deiaren bidea eta Ekintzarako deiaren testua eremuak hurrengo bertsioan kenduko dira.
title: CTA zaharkituta
title: Editatu prozesu parte-hartzailearen fasea
update: Eguneratu
index:
- steps_title: Prozesuaren faseak
+ steps_title: Urratsak
new:
create: Sortu
title: Prozesu parte-hartzailearen beste fase bat
ordering:
error: Arazo bat egon da partaidetza-prozesu honen faseak berrantolatzean.
update:
- error: Arazo bat egon da partaidetza-prozesu honan fase hau eguneratzean.
+ error: Arazo bat egon da partaidetza-prozesu honen fase hau eguneratzean.
success: Parte hartzeko fasea zuzen eguneratua.
participatory_process_user_roles:
create:
@@ -270,7 +269,7 @@ eu:
participatory_processes_group:
create:
error: Arazo bat egon da beste partaidetza-prozesuen multzo bat sortzean.
- success: Partaidetza-prozesuearen taldea zuzen eguneratua.
+ success: Partaidetza-prozesuen taldea behar bezala sortu da.
taxonomy_filters:
space_filter_for:
participatory_processes: Partaidetza-prozesu guztiak
@@ -280,14 +279,14 @@ eu:
participatory_processes: Partaidetza-prozesuak
participatory_processes_deleted: Ezabatutako prozesu parte-hartzaileak
tooltips:
- deleted_processes_info: Prozesu bat soilik ezabatu daiteke egoera "Argitaratugabea" bada.
+ deleted_processes_info: Prozesu bat soilik ezaba daiteke egoera "Argitaratu gabea" bada.
users:
resend_invitation:
error: Arazo bat egon da gonbidapena berriro bidaltzean.
success: Gonbidapena zuzen birbidalia.
admin_log:
participatory_process:
- create: "%{user_name} parte-hartzaileak %{resource_name} rozesu parte-hartzailea sortu du"
+ create: "%{user_name} parte-hartzaileak %{resource_name} partaidetza-prozesua sortu du"
duplicate: "%{user_name} parte-hartzaileak bikoiztu du %{resource_name} partaidetza-prozesua"
export: "%{user_name} parte-hartzaileak esportatu du %{resource_name} partaidetza-prozesua"
import: "%{user_name} parte-hartzaileak inportatu du %{resource_name} partaidetza-prozesua"
@@ -295,12 +294,12 @@ eu:
publish_all_members: "%{user_name} parte-hartzaileak %{resource_name} partaidetza-prozesuko kide guztiak argitaratu ditu"
restore: "%{user_name} parte-hartzaileak berreskuratu du %{resource_name} partaidetza-prozesua"
soft_delete: "%{user_name} parte-hartzaileak zaborrontzira eraman du %{resource_name} partaidetza-prozesua"
- unpublish: "%{user_name} parte-hartzaileak despublikatu du %{resource_name} partaidetza-prozesua"
+ unpublish: "%{user_name} parte-hartzaileak %{resource_name} partaidetza-prozesua desargitaratu du"
unpublish_all_members: "%{user_name} parte-hartzaileak %{resource_name} partaidetza-prozesuko kide guztiak desargitaratu ditu"
update: "%{user_name} parte-hartzaileak %{resource_name} partaidetza-prozesua eguneratu du"
participatory_process_group:
create: "%{user_name} parte-hartzaileak sortu du %{resource_name} partaidetza-prozesuen multzoa"
- unpublish: "%{user_name} parte-hartzaileak despublikatu du %{resource_name} partaidetza-prozesuen multzoa"
+ unpublish: "%{user_name} parte-hartzaileak %{resource_name} partaidetza-prozesuen taldea desargitaratu du"
update: "%{user_name} parte-hartzaileak eguneratu du %{resource_name} partaidetza-prozesuen multzoa"
participatory_process_step:
activate: "%{user_name} parte-hartzaileak %{resource_name} urratsa aktibatu du %{space_name} partaidetza-prozesuan"
@@ -321,9 +320,9 @@ eu:
events:
participatory_process:
role_assigned:
- email_intro: '%{role} rola esleitu zaizu partaidetza-prozesuan.'
+ email_intro: '"%{resource_title}" partaidetza-prozesuan %{role} rola esleitu zaizu.'
email_outro: Jakinarazpen hau jaso duzu %{role} rola esleitu zaizulako "%{resource_title}" espazioan.
- email_subject: '%{role} rola esleitu zaizu hemen "%{resource_title}".'
+ email_subject: '"%{resource_title}" jardunaldirako %{role} rola esleitu zaizu.'
notification_title: '%{role} rola esleitu zaizu %{resource_title} partaidetza-prozesuan.'
step_activated:
email_intro: '%{participatory_space_title} espazioko %{resource_title} fasea aktibatu egin da. Orrialde honetan ikusi dezakezu:'
@@ -359,7 +358,7 @@ eu:
follows_count: Espazio hau zenbat parte-hartzailek jarraitzen duten
id: Prozesu honen identifikatzaile bakarra
local_area: Prozesuaren tokiko arloa. Hau da prozesua garatzen ari den erakundearen arloa.
- meta_scope: Prozesuaren eremu-metadatuak
+ meta_scope: Prozesuaren eremuaren metadatuak
participatory_process_group: Prozesuaren taldea, baten parte bada
participatory_process_type: Prozesu mota
participatory_scope: Prozesuaren parte-hartze eremua
@@ -371,9 +370,9 @@ eu:
scope: Prozesuaren eremua
scopes_enabled: Eremuak gaituta dauden ala ez
short_description: Prozesuaren deskribapen laburra
- slug: Batzarraren lerroa (helburuen identifikaziorako erabiltzen da, URLrako)
+ slug: Prozesuaren slug-a (identifikaziorako erabiltzen da, URLan)
start_date: Prozesuaren hasiera-data
- subtitle: Prosezuaren azpititulua
+ subtitle: Prozesuaren azpititulua
target: Prozesuaren helburuak. Honi deitzen zaio prozesuan parte hartzeko.
title: Prozesuaren izenburua
updated_at: Zein egunetan eguneratu zen azken aldiz espazio hau
@@ -383,8 +382,8 @@ eu:
extra_data:
developer_group: Honek sustatuta
name: Metadatuak
- participatory_scope: Erabakitzen dena
- participatory_structure: Erabakitzeko era
+ participatory_scope: Zer erabakitzen den
+ participatory_structure: Nola erabakitzen den
target: Nork hartzen du parte
html:
name: HTML blokea
@@ -400,11 +399,11 @@ eu:
active: Partaidetza-prozesu aktiboak
name: Partaidetza-prozesuak
stats:
- name: Jarduera
+ name: Estatistikak
title:
meta_scope: Eremua
participatory_processes:
- one: Prozesu bat
+ one: 1 prozesu
other: "Prozesu bat"
related_processes:
help: Hautatutako prozesu guztiak talde honi esleituko zaizkio, beste talde batzuei esleitutakoak barne.
@@ -420,19 +419,19 @@ eu:
announcement:
body_html: |-
-
Hauek automatikoki kalkulatzen dira Decidim-en datuetatik. Ikusi ahal izango dira edukien blokea argitaratzen duzunean.
-
Zure erantzunetan oinarritzen dira. Ikusi ahal izango dira galdera guztiak erantzuten dituzunean.
+
Hauek automatikoki kalkulatzen dira Decidim-en datuetatik abiatuta. Eduki-blokea argitaratzen duzunean ikusgai egongo dira.
+
Hauek hurrengo formularioko zure erantzunetan oinarritzen dira. Galdera guztiak erantzun dituzunean ikusgai egongo dira.
title: 'Eduki-multzo honek bi metrika-mota ditu:'
citizen_influence:
citizen_decisional_intervention:
legend: Prozesuaren fase guztietatik kanpo (gaiak hautatzetik exekuzioa gainbegiratzeraino), zenbatek dute gaitasuna erabakiak hartzeko edo ekintza exekutiboa egiteko?
options:
- five: '%80 - 100 ='
- four: '%60 - 80 ='
- one: '%0 - 20 ='
- three: '%40 - 60 ='
- two: '%20 - 40 ='
+ five: '% 80 - 100 ='
+ four: '% 60 - 80 ='
+ one: '% 0 - 20 ='
+ three: '% 40 - 60 ='
+ two: '% 20 - 40 ='
citizen_influence_level:
legend: Zein neurritan dute herritarrek erabakitzeko ahalmena prozesu honetan, informazioa jasotze hutsetik erabakietan eta baliabideen kudeaketan eragin erabakigarrira?
options:
@@ -443,7 +442,7 @@ eu:
two: Parte-hartzaileei kontsulta moduan galdetu zitzaien edo antolakuntzari iritzia eman zitzaion
name: Herritarren eragina
inclusiveness:
- description: Inklusibitatea jatorri kulturalaren eta dibertsitate funtzionalaren arabera.
+ description: Inklusibotasuna jatorri kulturalaren eta dibertsitate funtzionalaren arabera.
digital_support_offered:
legend: Parte-hartzaileei bozka digitala eskaini zaie?
options:
@@ -506,16 +505,16 @@ eu:
help_html: Inportazio honek aukera ematen du beste prozesu parte-hartzaile bat sortzeko esportatutako JSON fitxategi batetik abiatuta. Prozesu bat esportatu dezakezu beste erakunde batetik edo erakunde horretatik bertatik. Inportatutako prozesuak bere konfigurazioak, osagaiak eta eranskinak barne hartuko ditu (aukeratuz gero).
participatory_process_duplicates:
form:
- slug_help_html: 'URL Slugs erabiltzen da prozesu hau adierazten duten URLak sortzeko. Letrak, zenbakiak eta marratxoak bakarrik onartzen ditu, eta letra batekin hasi behar da. Adibidea: %{url}'
+ slug_help_html: 'URL slugak prozesu honetara zuzentzen duten URLak sortzeko erabiltzen dira. Letrak, zenbakiak eta marratxoak soilik onartzen dituzte, eta letra batekin hasi behar dute. Adibidea: %{url}'
participatory_process_groups:
form:
metadata: Metadatuak
- title: "Prozesu honi buruz\n"
+ title: Prozesu honi buruz
visibility: Ikusgarritasuna
participatory_process_imports:
form:
document_legend: Dokumentu bat atxikitu
- slug_help_html: 'URLetako testu laburrak erabiltzen dira prozesu honi aurre egiteko URLak sortzeko. Letrak, zenbakiak eta gidoiak soilik onartzen ditu, eta letra batez hasi behar du. Adibidea: %{url}'
+ slug_help_html: 'URL slugak prozesu honetara zuzentzen duten URLak sortzeko erabiltzen dira. Letrak, zenbakiak eta marratxoak soilik onartzen dituzte, eta letra batekin hasi behar dute. Adibidea: %{url}'
participatory_process_steps:
form:
cta_path_help_html: 'Erabili ibilbide partzialak, ez dira URL osoak hemen. Letrak, zenbakiak, gidoiak eta barrak onartzen ditu, eta letra batez hasi behar du. Bestela, ez da erakutsiko botoia. Adibidea: %{url}'
@@ -523,7 +522,7 @@ eu:
participatory_processes:
form:
announcement_help: Hemen sartzen duzun testua parte-hartzaileari erakutsiko zaio, prozesuaren informazioaren azpian.
- define_taxonomy_filters: Mesedez, eszenatoki hau erabili aurretik, zehaztu espazio parte-hartzaile honetarako iragazki batzuk.
+ define_taxonomy_filters: Mesedez, eszenatoki hau erabili aurretik, zehaztu partaidetza-espazio honetarako iragazki batzuk.
duration: Iraupena
images: Irudiak
metadata: Metadatuak
@@ -531,7 +530,7 @@ eu:
private_notice: Kiak kudeatu ahal izango dituzu pribatu gisa ezarri ondoren
related_processes: Elkarrekin lotutako prozesuak
select_process_group: Prozesu-talde bat hautatu
- slug_help_html: 'URLetako testu laburrak erabiltzen dira prozesu honi aurre egiteko URLak sortzeko. Letrak, zenbakiak eta gidoiak soilik onartzen ditu, eta letra batez hasi behar du. Adibidea: %{url}'
+ slug_help_html: 'URL slugak prozesu honetara zuzentzen duten URLak sortzeko erabiltzen dira. Letrak, zenbakiak eta marratxoak soilik onartzen dituzte, eta letra batekin hasi behar dute. Adibidea: %{url}'
taxonomies: Taxonomiak
title: Informazio orokorra
visibility: Ikusgarritasuna
@@ -540,8 +539,8 @@ eu:
automatic_metrics:
description: Adierazle horiek automatikoki lortzen dira plataforman jasotako datuetatik abiatuta.
indicators:
- hybridization: Hibridizazioa
- hybridization_tooltip: Adierazle honek prozesuan zehar espazio presentzialen eta digitalen arteko konbinazio-maila neurtzen du
+ hybridization: Hibridazioa
+ hybridization_tooltip: Adierazle honek prozesuan zehar onlineko eta lineaz kanpoko espazioak zenbateraino uztartzen diren neurtzen du
influence: Herritarren eragina
influence_tooltip: Adierazle honek herritarrek onartutako proposamenetan duten eragin-maila eta prozesuaren emaitzak neurtzen ditu.
traceability: Trazabilitatea
@@ -551,9 +550,9 @@ eu:
name: Metrika automatikoak
global_score:
description_html: Jarraian, partaidetza-prozesu horren kalitate demokratikoa ebaluatzeko erabiltzen diren adierazleen multzo bat dago. Nola kalkulatzen diren gehiago jakiteko, ikus kalitate demokratikoaren adierazleei buruzko informazio-orria.
- name: Espzio orokorra
- note: "*Balio adierazleak 1etik 5erako eskalan neurtzen dira, non 1ek baxuena adierazten duen eta 5ek kalitate adierazle altuena."
- tooltip: Dimentsio guztien batezbestekoan kalkulatua
+ name: Puntuazio orokorra
+ note: "*Balio adierazgarriak 1etik 5era bitarteko eskalan neurtzen dira, 1ek kalitate-adierazlerik baxuena eta 5ek altuena adierazten dituzte."
+ tooltip: Dimentsio guztien batezbesteko gisa kalkulatzen da
name: Kalitate-adierazlea
qualitative_metrics:
description: Adierazle horiek plataformako administratzaileek betetako autoebaluazioari buruzko inkesta baten erantzunetatik lortzen dira.
@@ -561,7 +560,7 @@ eu:
citizen_influence: Herritarren eragina
citizen_influence_tooltip: Parte-hartzaileen eragina erabakiak hartzean neurtzen du.
inclusiveness: Inklusibotasuna
- inclusiveness_tooltip: Interesatu desberdinek bidezko ordezkaritza duten ebaluatzen du.
+ inclusiveness_tooltip: Hainbat alderdi interesatuk ordezkaritza nahikoa duten ebaluatzen du.
informativeness: Informatiboa
informativeness_tooltip: Prozesuaren barruan emandako argitasun- eta informazio-maila neurtzen du.
name: Autoebaluazioaren metrikak
@@ -598,7 +597,7 @@ eu:
counters:
active:
one: Prozesu bat aktibo
- other: "%{count} prozesu aktibo"
+ other: "%{count} prozesu martxan"
all:
one: 1 prozesu
other: "%{count} prozesu"
@@ -633,20 +632,20 @@ eu:
static_pages:
democratic_quality_indicators:
content: |-
-
Kalitate demokratikoa Decidimen oinarrizko printzipio bat da. Horri eusteko, plataforman parte hartzeko prozesuen kalitatea ebaluatzen laguntzen duten adierazleen sistema bat garatu dugu. Artikulu honetan azaltzen da nola kalkulatzen diren adierazle horiek.
+
Kalitate demokratikoa Decidim-en oinarrizko printzipioetako bat da. Horri eusteko, plataformako partaidetza-prozesuen kalitatea ebaluatzen laguntzen duen adierazle-sistema bat garatu dugu. Artikulu honetan, adierazle horiek nola kalkulatzen diren azaltzen da.
-
Nola kalkulatzen dira adierazleak?
-
Bi metodo zehaztu ditugu kalitate-adierazleak biltzeko:
+
Nola kalkulatzen dira adierazleak?
+
Kalitate-adierazleak jasotzeko bi metodo definitu ditugu:
-
Metrika automatikoak: Horiek zuzenean kalkulatzen dira Decidim plataformaren datuetatik.
-
Auto-Ebaluaziorako Galderak: Hauek administratzaile batek betetako inprimaki batean oinarritzen dira.
+
Neurketa automatikoak: Decidim plataformako datuetatik zuzenean kalkulatzen dira.
+
Autoebaluaziorako galderak: Administratzaile batek betetako formulario batean oinarritzen dira.
-
Adierazle bakoitza ehunekotan adierazten da. (zk./guztira). Ehuneko hori puntuazio bihurtzen da 1etik 5era eskalan.:
+
Adierazle bakoitza ehuneko gisa adierazten da (n/guztira). Ondoren, ehuneko hori 1etik 5era bitarteko eskalako puntuazio bihurtzen da:
1 = 0–20%
@@ -657,155 +656,155 @@ eu:
-
Metrika Automatikoak
-
Metrika horiek automatikoki kalkulatzen dira Decidimen dauden datuetatik abiatuta. Prozesu parte-hartzaile bidez ebaluatzen dira, eta administratzaileek publiko egin ditzakete, parte-hartzaile guztiak sartu ahal izateko.
+
Neurketa automatikoak
+
Neurketa horiek automatikoki kalkulatzen dira Decidim-en eskuragarri dauden datuetatik abiatuta. Partaidetza-prozesu bakoitzeko ebaluatzen dira, eta administratzaileek publiko egin ditzakete, parte-hartzaile guztiek eskuratu ahal izan ditzaten.
-
Lau adierazle nagusi zehaztu ditugu: Herritarren Eragina, Hibridazioa, Erantzuteko gaitasuna eta Trazabilitatea:
+
Lau adierazle nagusi definitu ditugu: Herritarren eragina, Hibridazioa, Erantzuteko gaitasuna eta Trazabilitatea:
-
Herritarren Eragina
+
Herritarren eragina
-
Adierazle honek herritarren eragin-maila neurtzen du onartutako proposamenetan eta prozesuaren emaitzetan.
+
Adierazle honek herritarrek onartutako proposamenetan eta prozesuaren emaitzetan duten eragin-maila neurtzen du.
- Herritarren Eragina proposamenetan
+ Herritarren eragina proposamenetan
-
Onartutako proposamenen ehunekoa (zk./guztira)
-
Onartutako proposamenen ehunekoa < em>herritarra , herritarren proposamen guztiekiko (herritarrek onartutako proposamenetan duten eragin osoa) < /onartutako proposamenen ehunekoa
-
Onartutako herritarren proposamenen ehunekoa, onartutako proposamenen guztizkoaren aldean (onartutako proposamenarekiko herritarren eragin erlatiboa)
+
Onartutako proposamenen ehunekoa (n/guztira)
+
Onartutako herritarren proposamenen ehunekoa, herritarren proposamen guztiekiko (herritarren eragin osoa onartutako proposamenetan)
+
Onartutako herritarren proposamenen ehunekoa, onartutako proposamen guztiekiko (herritarren eragin erlatiboa onartutako proposamenetan)
- Herritarren eragina produktuetan/emaitzetan
+ Herritarren eragina emaitzetan
-
Herritarren proposamenekin lotutako emaitzen ehunekoa, emaitza guztiekiko (herritarren eragina, guztira, produktuetan)
+
Herritarren proposamenei lotutako emaitzen ehunekoa, emaitza guztiekiko (herritarren eragin osoa emaitzetan)
Hibridazioa
-
Adierazle honek lineako eta lineaz kanpoko espazioen arteko konbinazio-maila neurtzen du prozesuan zehar.
+
Adierazle honek prozesuan zehar onlineko eta aurrez aurreko espazioak zenbateraino uztartzen diren neurtzen du.
-
Bilera-osagai bat aktibo dago? (Bai=5, Ez=0)
-
Ba al dago aurrez aurreko bilerarik? (Bai=5, Ez=0)
-
Ba al dago online bilerarik? (Bai=5, Ez=0)
-
Ba al dago bilera hibridorik? (Bai=5, Ez=0)
-
Ba al dago bileretatik sorturiko proposamenik? (Bai=5, Ez=0)
+
Topaketen osagaia aktibo dago? (Bai=5, Ez=0)
+
Aurrez aurreko topaketak daude? (Bai=5, Ez=0)
+
Onlineko topaketak daude? (Bai=5, Ez=0)
+
Topaketa hibridoak daude? (Bai=5, Ez=0)
+
Topaketetatik sortutako proposamenak daude? (Bai=5, Ez=0)
Erantzuteko gaitasuna
-
Adierazle honek erakundeak parte-hartzaileen ekarpenekiko duen erantzun-maila neurtzen du. Haien konpromisoa islatzen du erantzun ofizialen eta hartutako erabakien bidez.
+
Adierazle honek erakundeak parte-hartzaileen ekarpenei erantzuteko duen gaitasun-maila neurtzen du. Erakundearen inplikazioa islatzen du, erantzun ofizialen eta gauzatutako erabakien bidez.
-
Erantzuna duten proposamenen ehunekoa (zk./guztira) – Erakundeen erantzun-gaitasuna proposatzea
-
%100 osatutako emaitzen ehunekoa (zk./guztira)
+
Erantzuna duten proposamenen ehunekoa (n/guztira) – Proposamenekiko erantzun instituzionala
+
100%ean osatutako emaitzen ehunekoa (n/guztira)
Trazabilitatea
-
Adierazle honek prozesu parte-hartzailearen gardentasuna eta trazabilitatea neurtzen ditu. Parte-hartzaileek proposamenen bilakaera zein erraz jarrai dezaketen islatzen du eta ekintza instituzionalak egiaztatzen ditu argitaratutako erregistroen bidez.
+
Adierazle honek partaidetza-prozesuaren gardentasuna eta trazabilitatea neurtzen ditu. Parte-hartzaileek proposamenen bilakaera zer erraztasunez jarrai dezaketen eta argitaratutako erregistroen bidez erakundearen jarduerak egiazta ditzaketen islatzen du.
-
Historia duten proposamen kopurua (zk./guztira)
-
Proposamenei lotutako emaitzen ehunekoa (zk./guztira)
Open data modulua aktibatzea (dikotomikoa: 0 edo 5)
-
Aurrekontuekin zerikusia duten proposamenen ehunekoa (zk./guztira)
+
Historia duten proposamenen kopurua (n/guztira)
+
Proposamenei lotutako emaitzen ehunekoa (n/guztira)
+
Aktak argitaratuta dituzten itxitako topaketen ehunekoa (n/guztira)
+
Datu irekien modulua aktibatzea (dikotomikoa: 0 edo 5)
+
Aurrekontuekin lotutako proposamenen ehunekoa (n/guztira)
-
Autoebaluaziorako Metrikak
+
Autoebaluazioko neurketak
-
Metrika automatikoez gain, parte hartze prozesu bakoitzaren dimentsio kualitatiboak ebaluatzeko autoebaluazio modu bat erabiltzea proposatzen dugu. Inprimaki hori plataformaren administratzaileek beteko dute prozesu bakoitzaren amaieran, eta erantzunak jendaurrean erakutsiko dira adierazleen eduki-blokean.
+
Neurketa automatikoez gain, autoebaluazio-formulario bat erabiltzea proposatzen dugu, partaidetza-prozesu bakoitzaren dimentsio kualitatiboak ebaluatzeko. Plataformako administratzaileek prozesu bakoitzaren amaieran beteko dute formulario hori, eta erantzunak publikoki bistaratuko dira adierazleen eduki-blokean.
-
Galdera horiek kalitate demokratikoko alderdiak atzematea dute helburu, datu kuantitatiboen bidez bakarrik ebaluatu ezin daitezkeenak. Garrantzitsua da azpimarratzea inkesta honen erantzunen partziala plataformaren administratzaileen iritzia dela.
+
Galdera horien helburua datu kuantitatiboen bidez soilik ebaluatu ezin diren kalitate demokratikoaren alderdiak jasotzea da. Garrantzitsua da kontuan hartzea inkesta honetako erantzunak plataformako administratzaileen iritziak baldintzatzen dituela.
Autoebaluaziorako galderak
-
Ondoren, administratzaileek erantzun duten autoebaluazioko formularioa osatzen duten galderak azaltzen dira, bai eta erantzun bakoitzari lotutako balioak ere.
+
Jarraian, administratzaileek erantzuten duten autoebaluazio-formularioa osatzen duten galderak eta erantzun bakoitzari lotutako balioak jasotzen dira.
-
Informatzeko gaitasuna
+
Informazio-maila
-
Argitaratutako informazioak erabakiak hartzeko mekanismoei buruzko argitasuna ematen al du (adibidez, botoa, adostasuna, zuzeneko negoziazioak)?
+
Argitaratutako informazioak argi azaltzen al ditu erabakiak hartzeko mekanismoak (adibidez, bozketa, adostasuna edo zuzeneko negoziazioak)?
-
Ez oso argi = 0
-
Ez argi = 1
-
Nahiko argi = 2,5
-
Erabat argi = 5
+
Argitasunik ez = 0
+
Argitasun txikia = 1
+
Behar besteko argitasuna = 2,5
+
Erabateko argitasuna = 5
-
Eman al da informaziorik parte-hartzaileek eztabaidagai den gaian eragiteko duten gaitasunari buruz (bai prozesuaren komunikazioan, bai deialdietan, bai eztabaida-saio bakoitzaren hasieran)?
+
Informaziorik eman al da parte-hartzaileek eztabaidagai den gaian eragiteko duten gaitasunari buruz (bai prozesuaren komunikazioan eta gonbidapenetan, bai eztabaida-saio bakoitzaren hasieran)?
Inoiz ez = 0
Ia inoiz ez = 1
-
Batzuetan = 2,5
+
Normalean = 2,5
Beti = 5
-
Herritarren Eragina
+
Herritarren eragina
-
Prozesuan izandako parte-hartze mailaren balorazioa
+
Prozesuko partaidetza-mailaren balorazioa
-
Parte hartzaileek erakundearen informazioa jaso dute. = 1
-
Parte hartzaileei kontsulta egin zaie edo erakundeari feedbacka eman diote. = 2
-
Parte-hartzaileek parte hartu dute erabakitzeko ahalmena partekatzeko. = 3
-
Parte-hartzaileak erabakigarriak izan dira erabakiak hartzeko. = 4
-
Parte hartzaileek parte hartu dute erabakiak hartzen eta baliabideak kudeatzen edo ezartzen. = 5
+
Parte-hartzaileek erakundearen informazioa jaso zuten. = 1
+
Parte-hartzaileei kontsulta egin zitzaien edo erakundeari iritzia eman zioten. = 2
+
Parte-hartzaileek erabakiak hartzeko ahalmena partekatu zuten. = 3
+
Parte-hartzaileek modu erabakigarrian parte hartu zuten erabakiak hartzean. = 4
+
Parte-hartzaileek erabakiak hartzean eta baliabideen kudeaketan edo gauzapenean parte hartu zuten. = 5
-
Faseen ehunekoa, 0-5 herritarren esku-hartze erabakitzailearekin.
-
Prozesuaren fase guztietatik kanpo (gaiak hautatzetik exekuzioa gainbegiratzeraino), zenbatek dute erabakiak hartzeko edo ekintza exekutiboa egiteko gaitasuna?
+
Herritarrek erabakietan 0-5 mailako esku-hartzea duten faseen ehunekoa.
+
Prozesuaren fase guztietatik (gaiak hautatzetik gauzapena gainbegiratzera arte), zenbatetan dute herritarrek erabakiak hartzeko edo ekintza exekutiboak gauzatzeko ahalmena?
-
%0-20 = 1
-
%20-40 = 2
-
%40-60 = 3
-
%60-80 = 4
-
%80-100 = 5
+
0-20% = 1
+
20-40% = 2
+
40-60% = 3
+
60-80% = 4
+
80-100% = 5
-
Informatzeko gaitasuna
+
Inklusibitatea
-
Nola ebaluatzen da eragileen eta parte-hartzaileen aniztasun-maila prozesuan erreferentziazko biztanleriari dagokionez?
+
Nola baloratzen da eragileen eta parte-hartzaileen aniztasun-maila, prozesuko erreferentziazko biztanleriarekin alderatuta?
-
Ezertxo ere ez = 0
-
Gutxi = 1
-
Nahiko = 2,5
-
Ondo = 5
+
Batere ez = 0
+
Txikia = 1
+
Nahikoa = 2,5
+
Ona = 5
-
Zenbat hizkuntzatan jakinarazi da prozesua?
+
Zenbat hizkuntzatan komunikatu da prozesua?
-
Hizkuntza bat = 1
-
Erkidegoan erabiltzen diren hizkuntzetan baino gutxiagotan = 2,5
-
Erkidegoan erabiltzen diren hizkuntzetan baino gehiagotan = 5
+
Hizkuntza batean = 1
+
Komunitatean hitz egiten diren hizkuntzen erdia baino gutxiagotan = 2,5
+
Komunitatean hitz egiten diren hizkuntzen erdia baino gehiagotan = 5
-
Aurrez aurreko bileren egoitzak irisgarriak al ziren mugikortasun urriko pertsonentzat?
+
Aurrez aurreko topaketen lekuak irisgarriak izan al ziren mugikortasun urriko pertsonentzat?
Ez = 0
Partzialki = 2,5
Bai = 5
-
Parte hartzeko saioak hainbat ordutan antolatu dira (goizez, eguerdiz, arratsaldez, arratsaldez eta asteburuetan).
+
Partaidetza-saioak ordutegi desberdinetan programatu dira (goizez, eguerdian, arratsaldez, iluntzean eta asteburuetan).
Ez = 0
Partzialki = 2,5
Bai = 5
-
Laguntza digitala eskaini zaie parte-hartzaileei?
+
Laguntza digitala eskaini al zaie parte-hartzaileei?
Ez = 0
Partzialki = 2,5
diff --git a/decidim-participatory_processes/config/locales/fi-plain.yml b/decidim-participatory_processes/config/locales/fi-plain.yml
index 178bb4e91dca5..b7afb3b4f4a27 100644
--- a/decidim-participatory_processes/config/locales/fi-plain.yml
+++ b/decidim-participatory_processes/config/locales/fi-plain.yml
@@ -19,7 +19,7 @@ fi-pl:
import_attachments: Tuo liitteitä
import_categories: Kopioi aihepiirejä
import_components: Tuo komponentteja
- import_steps: Tuo vaiheita
+ import_steps: Tuo vaiheet
local_area: Järjestöalue
meta_scope: Teeman metadata
participatory_process_group_id: Prosessiryhmä
@@ -641,18 +641,18 @@ fi-pl:
Määrittelimme kaksi menetelmää laatuindikaattorien keräämiseksi:
-
Automaattiset tilastot: nämä lasketaan suoraan Decidim-alustalla olevista tiedoista.
-
Itsearvioinnin kysymykset: nämä perustuvat hallintakäyttäjien antamiin kyselylomakkeen vastauksiin.
+
Automaattiset tilastot: nämä lasketaan suoraan Decidim-alustalla olevista tiedoista.
+
Itsearvioinnin kysymykset: nämä perustuvat hallintakäyttäjien antamiin kyselylomakkeen vastauksiin.
Jokainen tilasto esitetään prosentuaalisena arvona (n/kokonaismäärä). Tämä prosentuaalinen osuus pisteytetään asteikolla 1-5 seuraavasti:
-
1 = 0–20%
-
2 = 20–40%
-
3 = 40–60%
-
4 = 60–80%
-
5 = 80–100%
+
1 = 0–20%
+
2 = 20–40%
+
3 = 40–60%
+
4 = 60–80%
+
5 = 80–100%
@@ -666,20 +666,20 @@ fi-pl:
Tämä tilasto mittaa kansalaisvaikuttamisen tasoa hyväksyttyjen ehdotusten ja prosessien lopputulosten osalta.
-
- Kansalaisvaikuttaminen ehdotusten kautta
-
-
Hyväksyttyjen ehdotusten määrä (n/kokonaismäärä)
-
Hyväksyttyjen kansalaisten jättämien ehdotusten prosentuaalinen osuus kaikista kansalaisten jättämien ehdotusten määrästä (kansalaisvaikuttamisen kokonaistaso hyväksyttyihin ehdotuksiin)
-
Hyväksyttyjen kansalaisten jättämien ehdotusten prosentuaalinen osuus kaikkien hyväksyttyjen ehdotusten määrästä (suhteellinen kansalaisten vaikutusvalta hyväksyttyihin ehdotuksiin)
-
-
-
- Kansalaisvaikuttaminen johtopäätöksiin tai lopputuloksiin
-
-
Ehdotuksiin liitettyjen tulosten prosentuaalinen määrä kaikkien tulosten määrästä (kansalaisvaikuttamisen kokonaistaso lopputuloksiin)
-
-
+
+ Kansalaisvaikuttaminen ehdotusten kautta
+
+
Hyväksyttyjen ehdotusten määrä (n/kokonaismäärä)
+
Hyväksyttyjen kansalaisten jättämien ehdotusten prosentuaalinen osuus kaikista kansalaisten jättämien ehdotusten määrästä (kansalaisvaikuttamisen kokonaistaso hyväksyttyihin ehdotuksiin)
+
Hyväksyttyjen kansalaisten jättämien ehdotusten prosentuaalinen osuus kaikkien hyväksyttyjen ehdotusten määrästä (suhteellinen kansalaisten vaikutusvalta hyväksyttyihin ehdotuksiin)
+
+
+
+ Kansalaisvaikuttaminen johtopäätöksiin tai lopputuloksiin
+
+
Ehdotuksiin liitettyjen tulosten prosentuaalinen määrä kaikkien tulosten määrästä (kansalaisvaikuttamisen kokonaistaso lopputuloksiin)
+
+
Hybridisointi
@@ -687,11 +687,11 @@ fi-pl:
Tämä tilasto mittaa verkossa ja verkon ulkopuolella olevien tilojen yhdistämisen tasoa prosessin aikana
-
Onko prosessissa järjestetty tapaamisia? (Kyllä=5, Ei=0)
-
Onko prosessin aikana ollut naamatusten järjestettyjä fyysisiä tapaamisia? (Kyllä=5, Ei=0)
-
Onko prosessin aikana ollut verkkotapaamisia? (Kyllä=5, Ei=0)
-
Onko prosessin aikana ollut hybriditapaamisia? (Kyllä=5, Ei=0)
-
Onko tapaamisten perusteella luotu ehdotuksia? (Kyllä=5, Ei=0)
+
Onko prosessissa järjestetty tapaamisia? (Kyllä=5, Ei=0)
+
Onko prosessin aikana ollut naamatusten järjestettyjä fyysisiä tapaamisia? (Kyllä=5, Ei=0)
+
Onko prosessin aikana ollut verkkotapaamisia? (Kyllä=5, Ei=0)
+
Onko prosessin aikana ollut hybriditapaamisia? (Kyllä=5, Ei=0)
+
Onko tapaamisten perusteella luotu ehdotuksia? (Kyllä=5, Ei=0)
Reaktiivisuus
@@ -699,8 +699,8 @@ fi-pl:
Tämä tilasto mittaa organisaation reaktiivisuuden tasoa osallistujien aktiivisuuteen nähden. Tilasto kertoo, kuinka hyvin viranhaltijat ovat sitoutuneet antamaan virallisia vastauksia ja toteuttamaan tehtyjä päätöksiä.
-
Vastattujen ehdotusten prosentiaalinen osuus (n/kokonaismäärä) – Viranhaltijoiden reaktiivisuus ehdotuksiin
-
100% valmistuneiden tulosten prosentuaalinen osuus (n/kokonaismäärä)
+
Vastattujen ehdotusten prosentiaalinen osuus (n/kokonaismäärä) – Viranhaltijoiden reaktiivisuus ehdotuksiin
+
100% valmistuneiden tulosten prosentuaalinen osuus (n/kokonaismäärä)
Seurattavuus
@@ -708,11 +708,11 @@ fi-pl:
Tämä tilasto mittaa osallistumisprosessin läpinäkyvyyttä ja seurattavuutta. Tilasto kertoo, miten helposti osallistujat voivat seurata ehdotusten kehittymistä ja etenemistä sekä tarkastaa viranhaltijoiden suorittamia toimenpiteitä julkaistujen tietojen pohjalta.
-
Muutettujen ehdotusten prosentuaalinen osuus (n/kokonaismäärä)
-
Ehdotuksiin linkattujen tulosten prosentuaalinen osuus (n/kokonaismäärä)
-
Julkaistun tapaamismuistion kanssa suljettujen tapaamisten prosentuaalinen osuus (n/kokonaismäärä)
-
Avoimen datan moduulin aktivoiminen (kahtiajako: 0 tai 5)
-
Budjetteihin liitettyjen ehdotusten prosentuaalinen osuus (n/kokonaismäärä)
+
Muutettujen ehdotusten prosentuaalinen osuus (n/kokonaismäärä)
+
Ehdotuksiin linkattujen tulosten prosentuaalinen osuus (n/kokonaismäärä)
+
Julkaistun tapaamismuistion kanssa suljettujen tapaamisten prosentuaalinen osuus (n/kokonaismäärä)
+
Avoimen datan moduulin aktivoiminen (kahtiajako: 0 tai 5)
+
Budjetteihin liitettyjen ehdotusten prosentuaalinen osuus (n/kokonaismäärä)
@@ -730,87 +730,87 @@ fi-pl:
Informatiivisuus
-
Selventääkö julkaistu tieto päätöksenteon tapoja (esim. äänestys, yhteisymmärrys, suorat neuvottelut)?
-
-
Ei selkeyttä = 0
-
Matalan tason selkeys = 1
-
Riittävä selkeys = 2,5
-
Täysi selkeys = 5
-
-
-
Onko osallistujille tarjottu tietoa heidän vaikutusmahdollisuuksistaan käsiteltävään asiaan (prosessin viestinnässä, kutsuissa ja jokaisen keskustelutilaisuuden alussa)?
-
-
Ei koskaan = 0
-
Ei miltei koskaan = 1
-
Yleensä = 2,5
-
Aina = 5
-
-
+
Selventääkö julkaistu tieto päätöksenteon tapoja (esim. äänestys, yhteisymmärrys, suorat neuvottelut)?
+
+
Ei selkeyttä = 0
+
Matalan tason selkeys = 1
+
Riittävä selkeys = 2,5
+
Täysi selkeys = 5
+
+
+
Onko osallistujille tarjottu tietoa heidän vaikutusmahdollisuuksistaan käsiteltävään asiaan (prosessin viestinnässä, kutsuissa ja jokaisen keskustelutilaisuuden alussa)?
+
Osallistujille on annettu tietoa organisaation puolesta = 1
-
Osallistujat ovat osallistuneet kuulemisiin aktiivisesti tai antaneet palautetta organisaatiolle = 2
-
Osallistujille on annettu päätöksentekovaltaa = 3
-
Osallistujat on otettu määrätietoisesti mukaan päätöksentekoon = 4
-
Osallistujat ovat olleet osana päätöksentekoa ja hallinnoineet toteutusten resursseja = 5
-
-
-
Prosessin vaiheiden arviointi asteikolla 0-5 kansalaisten päätöksenteon mahdollisuuksista.
-
Kaikista prosessn vaiheista (asioiden valinnasta toimeenpanon valvontaan), monessa vaiheessa osallistujilla on ollut päätöksenteko- tai toimeenpanovaltaa?
Osallistujille on annettu tietoa organisaation puolesta = 1
+
Osallistujat ovat osallistuneet kuulemisiin aktiivisesti tai antaneet palautetta organisaatiolle = 2
+
Osallistujille on annettu päätöksentekovaltaa = 3
+
Osallistujat on otettu määrätietoisesti mukaan päätöksentekoon = 4
+
Osallistujat ovat olleet osana päätöksentekoa ja hallinnoineet toteutusten resursseja = 5
+
+
+
Prosessin vaiheiden arviointi asteikolla 0-5 kansalaisten päätöksenteon mahdollisuuksista.
+
Kaikista prosessn vaiheista (asioiden valinnasta toimeenpanon valvontaan), monessa vaiheessa osallistujilla on ollut päätöksenteko- tai toimeenpanovaltaa?
+
+
0-20% = 1
+
20-40% = 2
+
40-60% = 3
+
60-80% = 4
+
80-100% = 5
+
+
Inklusiivisuus
-
Miten toimijoiden ja osallistujien monimuotoisuutta on arvioitu päätöksenteon kohteena olevien asukkaiden kohderyhmään suhteutettuna?
-
-
Ei mitenkään = 0
-
Hieman = 1
-
Riittävästi = 2,5
-
Hyvällä tasolla = 5
-
-
-
Kuinka monella kielellä prosessista on viestitty?
-
-
Yhdellä kielellä = 1
-
Alle puolilla yhteisön puhumista kielistä = 2,5
-
Yli puolilla yhteisön puhumista kielistä = 5
-
-
-
Olivatko tapahtumapaikat kasvokkain järjestetyissä tapaamisissa liikuntarajoitteistan henkilöiden saavutettavissa?
-
-
Eivät = 0
-
Osittain = 2,5
-
Kyllä = 5
-
-
-
Onko osallistumistilaisuuksia on järjestetty eri aikoina (aamulla, keskipäivällä, iltapäivällä, iltaisin ja viikonloppuisin)?
-
-
Ei = 0
-
Osittain = 2,5
-
Kyllä = 5
-
-
-
Onko osallistujille tarjottu digitaalista tukea?
-
-
Ei = 0
-
Osittain = 2,5
-
Kyllä = 5
-
-
+
Miten toimijoiden ja osallistujien monimuotoisuutta on arvioitu päätöksenteon kohteena olevien asukkaiden kohderyhmään suhteutettuna?
+
+
Ei mitenkään = 0
+
Hieman = 1
+
Riittävästi = 2,5
+
Hyvällä tasolla = 5
+
+
+
Kuinka monella kielellä prosessista on viestitty?
+
+
Yhdellä kielellä = 1
+
Alle puolilla yhteisön puhumista kielistä = 2,5
+
Yli puolilla yhteisön puhumista kielistä = 5
+
+
+
Olivatko tapahtumapaikat kasvokkain järjestetyissä tapaamisissa liikuntarajoitteistan henkilöiden saavutettavissa?
+
+
Eivät = 0
+
Osittain = 2,5
+
Kyllä = 5
+
+
+
Onko osallistumistilaisuuksia on järjestetty eri aikoina (aamulla, keskipäivällä, iltapäivällä, iltaisin ja viikonloppuisin)?
+
+
Ei = 0
+
Osittain = 2,5
+
Kyllä = 5
+
+
+
Onko osallistujille tarjottu digitaalista tukea?
+
+
Ei = 0
+
Osittain = 2,5
+
Kyllä = 5
+
+
title: Demokraattiset laatumittarit
statistics:
diff --git a/decidim-participatory_processes/config/locales/fi.yml b/decidim-participatory_processes/config/locales/fi.yml
index 6bc57d5c4c861..265bf834024f4 100644
--- a/decidim-participatory_processes/config/locales/fi.yml
+++ b/decidim-participatory_processes/config/locales/fi.yml
@@ -19,7 +19,7 @@ fi:
import_attachments: Tuo liitteitä
import_categories: Kopioi aihepiirejä
import_components: Tuo komponentteja
- import_steps: Tuo vaiheita
+ import_steps: Tuo vaiheet
local_area: Järjestöalue
meta_scope: Teeman metadata
participatory_process_group_id: Prosessiryhmä
@@ -641,18 +641,18 @@ fi:
Määrittelimme kaksi menetelmää laatuindikaattorien keräämiseksi:
-
Automaattiset tilastot: nämä lasketaan suoraan Decidim-alustalla olevista tiedoista.
-
Itsearvioinnin kysymykset: nämä perustuvat hallintakäyttäjien antamiin kyselylomakkeen vastauksiin.
+
Automaattiset tilastot: nämä lasketaan suoraan Decidim-alustalla olevista tiedoista.
+
Itsearvioinnin kysymykset: nämä perustuvat hallintakäyttäjien antamiin kyselylomakkeen vastauksiin.
Jokainen tilasto esitetään prosentuaalisena arvona (n/kokonaismäärä). Tämä prosentuaalinen osuus pisteytetään asteikolla 1-5 seuraavasti:
-
1 = 0–20%
-
2 = 20–40%
-
3 = 40–60%
-
4 = 60–80%
-
5 = 80–100%
+
1 = 0–20%
+
2 = 20–40%
+
3 = 40–60%
+
4 = 60–80%
+
5 = 80–100%
@@ -666,20 +666,20 @@ fi:
Tämä tilasto mittaa kansalaisvaikuttamisen tasoa hyväksyttyjen ehdotusten ja prosessien lopputulosten osalta.
-
- Kansalaisvaikuttaminen ehdotusten kautta
-
-
Hyväksyttyjen ehdotusten määrä (n/kokonaismäärä)
-
Hyväksyttyjen kansalaisten jättämien ehdotusten prosentuaalinen osuus kaikista kansalaisten jättämien ehdotusten määrästä (kansalaisvaikuttamisen kokonaistaso hyväksyttyihin ehdotuksiin)
-
Hyväksyttyjen kansalaisten jättämien ehdotusten prosentuaalinen osuus kaikkien hyväksyttyjen ehdotusten määrästä (suhteellinen kansalaisten vaikutusvalta hyväksyttyihin ehdotuksiin)
-
-
-
- Kansalaisvaikuttaminen johtopäätöksiin tai lopputuloksiin
-
-
Ehdotuksiin liitettyjen tulosten prosentuaalinen määrä kaikkien tulosten määrästä (kansalaisvaikuttamisen kokonaistaso lopputuloksiin)
-
-
+
+ Kansalaisvaikuttaminen ehdotusten kautta
+
+
Hyväksyttyjen ehdotusten määrä (n/kokonaismäärä)
+
Hyväksyttyjen kansalaisten jättämien ehdotusten prosentuaalinen osuus kaikista kansalaisten jättämien ehdotusten määrästä (kansalaisvaikuttamisen kokonaistaso hyväksyttyihin ehdotuksiin)
+
Hyväksyttyjen kansalaisten jättämien ehdotusten prosentuaalinen osuus kaikkien hyväksyttyjen ehdotusten määrästä (suhteellinen kansalaisten vaikutusvalta hyväksyttyihin ehdotuksiin)
+
+
+
+ Kansalaisvaikuttaminen johtopäätöksiin tai lopputuloksiin
+
+
Ehdotuksiin liitettyjen tulosten prosentuaalinen määrä kaikkien tulosten määrästä (kansalaisvaikuttamisen kokonaistaso lopputuloksiin)
+
+
Hybridisointi
@@ -687,11 +687,11 @@ fi:
Tämä tilasto mittaa verkossa ja verkon ulkopuolella olevien tilojen yhdistämisen tasoa prosessin aikana
-
Onko prosessissa järjestetty tapaamisia? (Kyllä=5, Ei=0)
-
Onko prosessin aikana ollut naamatusten järjestettyjä fyysisiä tapaamisia? (Kyllä=5, Ei=0)
-
Onko prosessin aikana ollut verkkotapaamisia? (Kyllä=5, Ei=0)
-
Onko prosessin aikana ollut hybriditapaamisia? (Kyllä=5, Ei=0)
-
Onko tapaamisten perusteella luotu ehdotuksia? (Kyllä=5, Ei=0)
+
Onko prosessissa järjestetty tapaamisia? (Kyllä=5, Ei=0)
+
Onko prosessin aikana ollut naamatusten järjestettyjä fyysisiä tapaamisia? (Kyllä=5, Ei=0)
+
Onko prosessin aikana ollut verkkotapaamisia? (Kyllä=5, Ei=0)
+
Onko prosessin aikana ollut hybriditapaamisia? (Kyllä=5, Ei=0)
+
Onko tapaamisten perusteella luotu ehdotuksia? (Kyllä=5, Ei=0)
Reaktiivisuus
@@ -699,8 +699,8 @@ fi:
Tämä tilasto mittaa organisaation reaktiivisuuden tasoa osallistujien aktiivisuuteen nähden. Tilasto kertoo, kuinka hyvin viranhaltijat ovat sitoutuneet antamaan virallisia vastauksia ja toteuttamaan tehtyjä päätöksiä.
-
Vastattujen ehdotusten prosentiaalinen osuus (n/kokonaismäärä) – Viranhaltijoiden reaktiivisuus ehdotuksiin
-
100% valmistuneiden tulosten prosentuaalinen osuus (n/kokonaismäärä)
+
Vastattujen ehdotusten prosentiaalinen osuus (n/kokonaismäärä) – Viranhaltijoiden reaktiivisuus ehdotuksiin
+
100% valmistuneiden tulosten prosentuaalinen osuus (n/kokonaismäärä)
Seurattavuus
@@ -708,11 +708,11 @@ fi:
Tämä tilasto mittaa osallistumisprosessin läpinäkyvyyttä ja seurattavuutta. Tilasto kertoo, miten helposti osallistujat voivat seurata ehdotusten kehittymistä ja etenemistä sekä tarkastaa viranhaltijoiden suorittamia toimenpiteitä julkaistujen tietojen pohjalta.
-
Muutettujen ehdotusten prosentuaalinen osuus (n/kokonaismäärä)
-
Ehdotuksiin linkattujen tulosten prosentuaalinen osuus (n/kokonaismäärä)
-
Julkaistun tapaamismuistion kanssa suljettujen tapaamisten prosentuaalinen osuus (n/kokonaismäärä)
-
Avoimen datan moduulin aktivoiminen (kahtiajako: 0 tai 5)
-
Budjetteihin liitettyjen ehdotusten prosentuaalinen osuus (n/kokonaismäärä)
+
Muutettujen ehdotusten prosentuaalinen osuus (n/kokonaismäärä)
+
Ehdotuksiin linkattujen tulosten prosentuaalinen osuus (n/kokonaismäärä)
+
Julkaistun tapaamismuistion kanssa suljettujen tapaamisten prosentuaalinen osuus (n/kokonaismäärä)
+
Avoimen datan moduulin aktivoiminen (kahtiajako: 0 tai 5)
+
Budjetteihin liitettyjen ehdotusten prosentuaalinen osuus (n/kokonaismäärä)
@@ -730,87 +730,87 @@ fi:
Informatiivisuus
-
Selventääkö julkaistu tieto päätöksenteon tapoja (esim. äänestys, yhteisymmärrys, suorat neuvottelut)?
-
-
Ei selkeyttä = 0
-
Matalan tason selkeys = 1
-
Riittävä selkeys = 2,5
-
Täysi selkeys = 5
-
-
-
Onko osallistujille tarjottu tietoa heidän vaikutusmahdollisuuksistaan käsiteltävään asiaan (prosessin viestinnässä, kutsuissa ja jokaisen keskustelutilaisuuden alussa)?
-
-
Ei koskaan = 0
-
Ei miltei koskaan = 1
-
Yleensä = 2,5
-
Aina = 5
-
-
+
Selventääkö julkaistu tieto päätöksenteon tapoja (esim. äänestys, yhteisymmärrys, suorat neuvottelut)?
+
+
Ei selkeyttä = 0
+
Matalan tason selkeys = 1
+
Riittävä selkeys = 2,5
+
Täysi selkeys = 5
+
+
+
Onko osallistujille tarjottu tietoa heidän vaikutusmahdollisuuksistaan käsiteltävään asiaan (prosessin viestinnässä, kutsuissa ja jokaisen keskustelutilaisuuden alussa)?
+
Osallistujille on annettu tietoa organisaation puolesta = 1
-
Osallistujat ovat osallistuneet kuulemisiin aktiivisesti tai antaneet palautetta organisaatiolle = 2
-
Osallistujille on annettu päätöksentekovaltaa = 3
-
Osallistujat on otettu määrätietoisesti mukaan päätöksentekoon = 4
-
Osallistujat ovat olleet osana päätöksentekoa ja hallinnoineet toteutusten resursseja = 5
-
-
-
Prosessin vaiheiden arviointi asteikolla 0-5 kansalaisten päätöksenteon mahdollisuuksista.
-
Kaikista prosessn vaiheista (asioiden valinnasta toimeenpanon valvontaan), monessa vaiheessa osallistujilla on ollut päätöksenteko- tai toimeenpanovaltaa?
Osallistujille on annettu tietoa organisaation puolesta = 1
+
Osallistujat ovat osallistuneet kuulemisiin aktiivisesti tai antaneet palautetta organisaatiolle = 2
+
Osallistujille on annettu päätöksentekovaltaa = 3
+
Osallistujat on otettu määrätietoisesti mukaan päätöksentekoon = 4
+
Osallistujat ovat olleet osana päätöksentekoa ja hallinnoineet toteutusten resursseja = 5
+
+
+
Prosessin vaiheiden arviointi asteikolla 0-5 kansalaisten päätöksenteon mahdollisuuksista.
+
Kaikista prosessn vaiheista (asioiden valinnasta toimeenpanon valvontaan), monessa vaiheessa osallistujilla on ollut päätöksenteko- tai toimeenpanovaltaa?
+
+
0-20% = 1
+
20-40% = 2
+
40-60% = 3
+
60-80% = 4
+
80-100% = 5
+
+
Inklusiivisuus
-
Miten toimijoiden ja osallistujien monimuotoisuutta on arvioitu päätöksenteon kohteena olevien asukkaiden kohderyhmään suhteutettuna?
-
-
Ei mitenkään = 0
-
Hieman = 1
-
Riittävästi = 2,5
-
Hyvällä tasolla = 5
-
-
-
Kuinka monella kielellä prosessista on viestitty?
-
-
Yhdellä kielellä = 1
-
Alle puolilla yhteisön puhumista kielistä = 2,5
-
Yli puolilla yhteisön puhumista kielistä = 5
-
-
-
Olivatko tapahtumapaikat kasvokkain järjestetyissä tapaamisissa liikuntarajoitteistan henkilöiden saavutettavissa?
-
-
Eivät = 0
-
Osittain = 2,5
-
Kyllä = 5
-
-
-
Onko osallistumistilaisuuksia on järjestetty eri aikoina (aamulla, keskipäivällä, iltapäivällä, iltaisin ja viikonloppuisin)?
-
-
Ei = 0
-
Osittain = 2,5
-
Kyllä = 5
-
-
-
Onko osallistujille tarjottu digitaalista tukea?
-
-
Ei = 0
-
Osittain = 2,5
-
Kyllä = 5
-
-
+
Miten toimijoiden ja osallistujien monimuotoisuutta on arvioitu päätöksenteon kohteena olevien asukkaiden kohderyhmään suhteutettuna?
+
+
Ei mitenkään = 0
+
Hieman = 1
+
Riittävästi = 2,5
+
Hyvällä tasolla = 5
+
+
+
Kuinka monella kielellä prosessista on viestitty?
+
+
Yhdellä kielellä = 1
+
Alle puolilla yhteisön puhumista kielistä = 2,5
+
Yli puolilla yhteisön puhumista kielistä = 5
+
+
+
Olivatko tapahtumapaikat kasvokkain järjestetyissä tapaamisissa liikuntarajoitteistan henkilöiden saavutettavissa?
+
+
Eivät = 0
+
Osittain = 2,5
+
Kyllä = 5
+
+
+
Onko osallistumistilaisuuksia on järjestetty eri aikoina (aamulla, keskipäivällä, iltapäivällä, iltaisin ja viikonloppuisin)?
+
+
Ei = 0
+
Osittain = 2,5
+
Kyllä = 5
+
+
+
Onko osallistujille tarjottu digitaalista tukea?
+
+
Ei = 0
+
Osittain = 2,5
+
Kyllä = 5
+
+
title: Demokraattiset laatumittarit
statistics:
diff --git a/decidim-participatory_processes/config/locales/fr-CA.yml b/decidim-participatory_processes/config/locales/fr-CA.yml
index 1ef9f04c52db7..5f08384ea4ba9 100644
--- a/decidim-participatory_processes/config/locales/fr-CA.yml
+++ b/decidim-participatory_processes/config/locales/fr-CA.yml
@@ -109,6 +109,7 @@ fr-CA:
participatory_process_groups: Groupes de concertations
participatory_process_groups_submenu:
info: À propos de ce groupe de processus
+ landing_page: Mise en page de la page d'accueil
participatory_processes: Concertations
participatory_processes_submenu:
attachment_collections: Dossiers
@@ -116,6 +117,7 @@ fr-CA:
attachments: Documents liés
components: Fonctionnalités
info: A propos de cette concertation
+ landing_page: Mise en page de la page d'accueil
moderations: Modérations
private_users: Membres
process_admins: Administrateurs de la concertation
@@ -231,9 +233,13 @@ fr-CA:
destroy:
success: Utilisateur supprimé avec succès de cette concertation.
edit:
+ title: Mettre à jour l'administrateur du processus participatif
update: Mettre à jour
+ index:
+ process_admins_title: Administrateurs du processus participatif
new:
create: Créer
+ title: Nouvel administrateur du processus participatif
update:
error: Une erreur s'est produite lors de la mise à jour d'un utilisateur pour cette concertation.
success: L'utilisateur a été mis à jour avec succès pour cette concertation.
@@ -286,6 +292,8 @@ fr-CA:
import: "%{user_name} a importé la concertation %{resource_name}"
publish: "%{user_name} a publié la concertation %{resource_name}"
publish_all_members: "%{user_name} a publié tous les membres du processus participatif %{resource_name}"
+ restore: "%{user_name} a restauré le processus participatif %{resource_name}"
+ soft_delete: "%{user_name} a déplacé le processus participatif %{resource_name} dans la corbeille"
unpublish: "%{user_name} n'a pas publié la concertation %{resource_name}"
unpublish_all_members: "%{user_name} a dépublié tous les membres du processus participatif %{resource_name}"
update: "%{user_name} a mis à jour la concertation %{resource_name}"
@@ -341,6 +349,14 @@ fr-CA:
open_data:
help:
participatory_processes:
+ announcement: Information sur l'annonce (callout)
+ created_at: La date de création de cet espace
+ description: Une description longue du processus
+ developer_group: Le groupe promoteur de la concertation. Il s'agit de l'organisation qui porte la concertation.
+ end_date: La date de fin de la concertation
+ promoted: Si la concertation est promue ou non
+ published_at: La date de publication de cet espace
+ reference: La référence unique de l'espace
updated_at: La dernière date de mise à jour de cet espace
url: L'URL de l'espace
participatory_process_groups:
diff --git a/decidim-participatory_processes/config/locales/fr.yml b/decidim-participatory_processes/config/locales/fr.yml
index 40585014dc1e8..db9a26c619504 100644
--- a/decidim-participatory_processes/config/locales/fr.yml
+++ b/decidim-participatory_processes/config/locales/fr.yml
@@ -109,6 +109,7 @@ fr:
participatory_process_groups: Groupes de concertations
participatory_process_groups_submenu:
info: À propos de ce groupe de processus
+ landing_page: Mise en page de la page d'accueil
participatory_processes: Concertations
participatory_processes_submenu:
attachment_collections: Dossiers
@@ -116,6 +117,7 @@ fr:
attachments: Documents liés
components: Fonctionnalités
info: A propos de cette concertation
+ landing_page: Mise en page de la page d'accueil
moderations: Modérations
private_users: Membres
process_admins: Administrateurs de la concertation
@@ -290,6 +292,8 @@ fr:
import: "%{user_name} a importé la concertation %{resource_name}"
publish: "%{user_name} a publié la concertation %{resource_name}"
publish_all_members: "%{user_name} a publié tous les membres du processus participatif %{resource_name}"
+ restore: "%{user_name} a restauré le processus participatif %{resource_name}"
+ soft_delete: "%{user_name} a déplacé le processus participatif %{resource_name} dans la corbeille"
unpublish: "%{user_name} n'a pas publié la concertation %{resource_name}"
unpublish_all_members: "%{user_name} a dépublié tous les membres du processus participatif %{resource_name}"
update: "%{user_name} a mis à jour la concertation %{resource_name}"
@@ -345,6 +349,14 @@ fr:
open_data:
help:
participatory_processes:
+ announcement: Information sur l'annonce (callout)
+ created_at: La date de création de cet espace
+ description: Une description longue de la concertation
+ developer_group: Le groupe promoteur de la concertation. Il s'agit de l'organisation qui porte la concertation.
+ end_date: La date de fin de la concertation
+ promoted: Si la concertation est promue ou non
+ published_at: La date de publication de cet espace
+ reference: La référence unique de l'espace
updated_at: La dernière date de mise à jour de cet espace
url: L'URL de l'espace
participatory_process_groups:
diff --git a/decidim-participatory_processes/config/locales/hu.yml b/decidim-participatory_processes/config/locales/hu.yml
index 42c1251fd78b1..8ad4ae42760be 100644
--- a/decidim-participatory_processes/config/locales/hu.yml
+++ b/decidim-participatory_processes/config/locales/hu.yml
@@ -15,7 +15,6 @@ hu:
import_attachments: Mellékletek importálása
import_categories: Importált kategóriák
import_components: Komponensek importálása
- import_steps: Importálási lépések
local_area: Szervezet területe
meta_scope: Metaadatok hatásköre
participatory_process_group_id: Folyamatcsoport
diff --git a/decidim-participatory_processes/config/locales/ja.yml b/decidim-participatory_processes/config/locales/ja.yml
index 3a2746514ff4c..06c5143fa8d5a 100644
--- a/decidim-participatory_processes/config/locales/ja.yml
+++ b/decidim-participatory_processes/config/locales/ja.yml
@@ -13,13 +13,11 @@ ja:
duplicate_categories: カテゴリを複製
duplicate_components: コンポーネントを複製
duplicate_landing_page_blocks: ランディングページブロックを複製
- duplicate_steps: ステップを複製
end_date: 終了日
hero_image: ホーム画像
import_attachments: 添付ファイルをインポート
import_categories: カテゴリをインポート
import_components: コンポーネントをインポート
- import_steps: フェーズをインポート
local_area: 組織エリア
meta_scope: スコープメタデータ
participatory_process_group_id: 参加型プロセスグループ
diff --git a/decidim-participatory_processes/config/locales/lt.yml b/decidim-participatory_processes/config/locales/lt.yml
index 0850e15f81388..6743f9781a4bd 100644
--- a/decidim-participatory_processes/config/locales/lt.yml
+++ b/decidim-participatory_processes/config/locales/lt.yml
@@ -15,7 +15,6 @@ lt:
import_attachments: Importuoti priedus
import_categories: Importuoti kategorijas
import_components: Importuoti komponentus
- import_steps: Importuoti žingsnius
local_area: Organizacijos aplinka
meta_scope: Srities metaduomenys
participatory_process_group_id: Procesų grupė
diff --git a/decidim-participatory_processes/config/locales/no.yml b/decidim-participatory_processes/config/locales/no.yml
index 2d15ecaf59da4..6d8266a0735ac 100644
--- a/decidim-participatory_processes/config/locales/no.yml
+++ b/decidim-participatory_processes/config/locales/no.yml
@@ -15,7 +15,6 @@
import_attachments: Importer vedlegg
import_categories: Importer kategorier
import_components: Importer komponenter
- import_steps: Importer trinn
local_area: Organisasjonsområde
meta_scope: Omfang av metadata
participatory_process_group_id: Prosessgruppe
diff --git a/decidim-participatory_processes/config/locales/pl.yml b/decidim-participatory_processes/config/locales/pl.yml
index 4f19c22b69a64..13cb97ea7ae13 100644
--- a/decidim-participatory_processes/config/locales/pl.yml
+++ b/decidim-participatory_processes/config/locales/pl.yml
@@ -15,7 +15,6 @@ pl:
import_attachments: Importuj załączniki
import_categories: Importuj kategorie
import_components: Importuj komponenty
- import_steps: Importuj kroki
local_area: Obszar organizacji
meta_scope: Zakres metadanych
participatory_process_group_id: Grupa procesów
diff --git a/decidim-participatory_processes/config/locales/pt-BR.yml b/decidim-participatory_processes/config/locales/pt-BR.yml
index ea8058a1c5338..671886c2f48c3 100644
--- a/decidim-participatory_processes/config/locales/pt-BR.yml
+++ b/decidim-participatory_processes/config/locales/pt-BR.yml
@@ -13,13 +13,11 @@ pt-BR:
duplicate_categories: Categoria duplicada
duplicate_components: Componente duplicado
duplicate_landing_page_blocks: Bloco da página principal duplicada
- duplicate_steps: Etapa duplicada
end_date: Data final
hero_image: Imagem inicial
import_attachments: Importar anexos
import_categories: Importar categorias
import_components: Importar componentes
- import_steps: Importar etapas
local_area: Área da organização
meta_scope: Metadados do âmbito
participatory_process_group_id: Grupo de processos
diff --git a/decidim-participatory_processes/config/locales/ro-RO.yml b/decidim-participatory_processes/config/locales/ro-RO.yml
index c809b233d55df..f1c8d0a99798f 100644
--- a/decidim-participatory_processes/config/locales/ro-RO.yml
+++ b/decidim-participatory_processes/config/locales/ro-RO.yml
@@ -16,7 +16,6 @@ ro:
import_attachments: Importă atașamente
import_categories: Importă categorii
import_components: Importă componente
- import_steps: Importă etapele
local_area: Zona organizației
meta_scope: Metadate privind domeniul de interes
participatory_process_group_id: Grupul proceselor
diff --git a/decidim-participatory_processes/config/locales/sk.yml b/decidim-participatory_processes/config/locales/sk.yml
index 64a1fad84fd34..116225095239f 100644
--- a/decidim-participatory_processes/config/locales/sk.yml
+++ b/decidim-participatory_processes/config/locales/sk.yml
@@ -13,13 +13,11 @@ sk:
duplicate_categories: Duplikovať kategórie
duplicate_components: Duplikovať komponenty
duplicate_landing_page_blocks: Duplikovať bloky vstupnej stránky
- duplicate_steps: Duplikovať kroky
end_date: Dátum ukončenia
hero_image: Domáce obrázok
import_attachments: Importovať prílohy
import_categories: Importovať kategórie
import_components: Importovať komponenty
- import_steps: Importovať kroky
local_area: Oblasť organizácie
meta_scope: Rozsah metadát
participatory_process_group_id: Skupina procesov
diff --git a/decidim-participatory_processes/config/locales/sv.yml b/decidim-participatory_processes/config/locales/sv.yml
index 2347a360b91f5..f3fb8eef05c6d 100644
--- a/decidim-participatory_processes/config/locales/sv.yml
+++ b/decidim-participatory_processes/config/locales/sv.yml
@@ -13,13 +13,11 @@ sv:
duplicate_categories: Duplicera kategorier
duplicate_components: Duplicera komponenter
duplicate_landing_page_blocks: Duplicera innehållsblock från landningssidan
- duplicate_steps: Duplicera steg
end_date: Slutdatum
hero_image: Startbild
import_attachments: Importera bilagor
import_categories: Importera kategorier
import_components: Importera komponenter
- import_steps: Importera steg
local_area: Område
meta_scope: Omfattning
participatory_process_group_id: Grupp av processer
diff --git a/decidim-participatory_processes/config/locales/zh-TW.yml b/decidim-participatory_processes/config/locales/zh-TW.yml
index 6abff2176b90f..2ca7a17fb7995 100644
--- a/decidim-participatory_processes/config/locales/zh-TW.yml
+++ b/decidim-participatory_processes/config/locales/zh-TW.yml
@@ -15,7 +15,6 @@ zh-TW:
import_attachments: 匯入附件
import_categories: 匯入類別
import_components: 匯入組件
- import_steps: 匯入步驟
local_area: 組織區域
meta_scope: 元數據範圍
participatory_process_group_id: 程序群組
diff --git a/decidim-participatory_processes/lib/decidim/participatory_processes/version.rb b/decidim-participatory_processes/lib/decidim/participatory_processes/version.rb
index 6021942f05c14..55f9cc0ef199f 100644
--- a/decidim-participatory_processes/lib/decidim/participatory_processes/version.rb
+++ b/decidim-participatory_processes/lib/decidim/participatory_processes/version.rb
@@ -4,7 +4,7 @@ module Decidim
# This holds the decidim-participatory_processes version.
module ParticipatoryProcesses
def self.version
- "0.31.4"
+ "0.31.7"
end
end
end
diff --git a/decidim-participatory_processes/spec/commands/create_participatory_process_spec.rb b/decidim-participatory_processes/spec/commands/create_participatory_process_spec.rb
index a33c6fb1a33a4..6e42aa1434682 100644
--- a/decidim-participatory_processes/spec/commands/create_participatory_process_spec.rb
+++ b/decidim-participatory_processes/spec/commands/create_participatory_process_spec.rb
@@ -17,14 +17,12 @@ module Decidim::ParticipatoryProcesses
2.times.map { build(:taxonomization, taxonomy: create(:taxonomy, :with_parent, organization:), taxonomizable: nil) }
end
- let(:form) do
- instance_double(
- Admin::ParticipatoryProcessForm,
- invalid?: invalid,
+ let(:attributes) do
+ {
title: { en: "title" },
subtitle: { en: "subtitle" },
- weight:,
slug: "slug",
+ weight:,
meta_scope: { en: "meta scope" },
hero_image:,
promoted: nil,
@@ -37,15 +35,23 @@ module Decidim::ParticipatoryProcesses
end_date: nil,
description: { en: "description" },
short_description: { en: "short_description" },
- current_user:,
- current_organization: organization,
- organization:,
private_space: false,
taxonomizations:,
errors:,
related_process_ids:,
participatory_process_group:,
announcement: { en: "message" }
+ }
+ end
+
+ let(:form) do
+ instance_double(
+ Admin::ParticipatoryProcessForm,
+ **attributes,
+ invalid?: invalid,
+ current_user:,
+ current_organization: organization,
+ organization:
)
end
let(:invalid) { false }
@@ -58,6 +64,23 @@ module Decidim::ParticipatoryProcesses
end
end
+ context "when there is a trashed space with the same slug" do
+ let!(:trashed_space) { create(:participatory_process, :trashed, slug: "slug", organization:) }
+
+ let(:form) do
+ Admin::ParticipatoryProcessForm.from_params(attributes)
+ .with_context({
+ current_user:,
+ current_organization: organization
+ })
+ end
+
+ it "broadcasts invalid" do
+ expect { subject.call }.to broadcast(:invalid)
+ expect(form.errors[:slug]).not_to be_empty
+ end
+ end
+
context "when the process is not persisted" do
let(:hero_image) do
ActiveStorage::Blob.create_and_upload!(
diff --git a/decidim-participatory_processes/spec/commands/decidim/participatory_processes/admin/import_participatory_process_spec.rb b/decidim-participatory_processes/spec/commands/decidim/participatory_processes/admin/import_participatory_process_spec.rb
index fd0055973126c..60d10262b35f4 100644
--- a/decidim-participatory_processes/spec/commands/decidim/participatory_processes/admin/import_participatory_process_spec.rb
+++ b/decidim-participatory_processes/spec/commands/decidim/participatory_processes/admin/import_participatory_process_spec.rb
@@ -14,18 +14,30 @@ module Decidim::ParticipatoryProcesses
instance_double(File,
blank?: false)
end
+
+ let(:attributes) do
+ {
+ title: { en: "title" },
+ slug: "imported-slug",
+ import_steps: import_steps,
+ import_attachments: import_attachments,
+ import_components: import_components,
+ document: form_doc,
+ document_text: document_file,
+ document_type:
+ }
+ end
+
+ let(:current_user) { create(:user, organization:) }
+
let(:form) do
instance_double(
Admin::ParticipatoryProcessImportForm,
- title: { en: "title" },
- slug: "imported-slug",
+ **attributes,
import_steps?: import_steps,
import_attachments?: import_attachments,
import_components?: import_components,
- document: form_doc,
- document_text: document_file,
- document_type:,
- current_user: create(:user, organization:),
+ current_user:,
current_organization: organization,
invalid?: invalid
)
@@ -104,6 +116,30 @@ def stub_calls_to_external_files
end
end
+ context "when there is a trashed space with the same slug" do
+ let!(:trashed_space) { create(:participatory_process, :trashed, slug: "imported-slug", organization:) }
+ let(:form_doc) do
+ ActiveStorage::Blob.create_and_upload!(
+ io: File.open(Decidim::Dev.asset(document_name)),
+ filename: document_name,
+ content_type: document_type
+ )
+ end
+
+ let(:form) do
+ Admin::ParticipatoryProcessImportForm.from_params(attributes)
+ .with_context({
+ current_user:,
+ current_organization: organization
+ })
+ end
+
+ it "broadcasts invalid" do
+ expect { subject.call }.to broadcast(:invalid)
+ expect(form.errors[:slug]).not_to be_empty
+ end
+ end
+
describe "when the form is valid" do
let(:valid) { true }
diff --git a/decidim-participatory_processes/spec/commands/duplicate_participatory_process_spec.rb b/decidim-participatory_processes/spec/commands/duplicate_participatory_process_spec.rb
index 16a0042b8071b..ca77e13e2b229 100644
--- a/decidim-participatory_processes/spec/commands/duplicate_participatory_process_spec.rb
+++ b/decidim-participatory_processes/spec/commands/duplicate_participatory_process_spec.rb
@@ -19,10 +19,9 @@ module Decidim::ParticipatoryProcesses
Admin::ParticipatoryProcessDuplicateForm,
invalid?: invalid,
title: { en: "title" },
- slug: "copied-slug",
+ slug: "duplicated-slug",
duplicate_steps?: duplicate_steps,
duplicate_components?: duplicate_components,
- duplicate_landing_page_blocks?: duplicate_landing_page_blocks,
current_user:
)
end
@@ -30,7 +29,6 @@ module Decidim::ParticipatoryProcesses
let(:invalid) { false }
let(:duplicate_steps) { false }
let(:duplicate_components) { false }
- let(:duplicate_landing_page_blocks) { false }
context "when the form is not valid" do
let(:invalid) { true }
@@ -40,6 +38,28 @@ module Decidim::ParticipatoryProcesses
end
end
+ context "when there is a trashed space with the same slug" do
+ let!(:trashed_space) { create(:participatory_process, :trashed, slug: "duplicated-slug", organization:) }
+
+ let(:form) do
+ Admin::ParticipatoryProcessDuplicateForm.from_params({
+ title: { en: "title" },
+ slug: "duplicated-slug",
+ duplicate_steps?: duplicate_steps,
+ duplicate_components:
+ })
+ .with_context({
+ current_user:,
+ current_organization: organization
+ })
+ end
+
+ it "broadcasts invalid" do
+ expect { subject.call }.to broadcast(:invalid)
+ expect(form.errors[:slug]).not_to be_empty
+ end
+ end
+
context "when everything is ok" do
it "duplicates a participatory process" do
expect { subject.call }.to change(Decidim::ParticipatoryProcess, :count).by(1)
@@ -47,7 +67,7 @@ module Decidim::ParticipatoryProcesses
old_participatory_process = Decidim::ParticipatoryProcess.first
new_participatory_process = Decidim::ParticipatoryProcess.last
- expect(new_participatory_process.slug).to eq("copied-slug")
+ expect(new_participatory_process.slug).to eq("duplicated-slug")
expect(new_participatory_process.title["en"]).to eq("title")
expect(new_participatory_process).not_to be_published
expect(new_participatory_process.organization).to eq(old_participatory_process.organization)
@@ -80,6 +100,34 @@ module Decidim::ParticipatoryProcesses
expect(action_log.action).to eq("duplicate")
expect(action_log.version).to be_present
end
+
+ describe "landing page content blocks" do
+ let(:original_image) { Decidim::Dev.test_file("city.jpeg", "image/jpeg") }
+
+ before do
+ content_block.images_container.background_image.purge
+ content_block.images_container.background_image = original_image
+ content_block.save
+ content_block.reload
+ end
+
+ it "duplicates a participatory_process and the content_block with its attachments" do
+ expect { subject.call }.to change(Decidim::ContentBlock, :count).by(1)
+
+ old_block = Decidim::ContentBlock.unscoped.first
+ new_block = Decidim::ContentBlock.unscoped.last
+ last_process = Decidim::ParticipatoryProcess.last
+
+ expect(new_block.scope_name).to eq(old_block.scope_name)
+ expect(new_block.manifest_name).to eq(old_block.manifest_name)
+ # published_at is set in content_block factory
+ expect(new_block.published_at).not_to be_nil
+ expect(new_block.scoped_resource_id).to eq(last_process.id)
+ expect(new_block.attachments.length).to eq(1)
+ expect(new_block.attachments.first.name).to eq("background_image")
+ expect(new_block.images_container.attached_uploader(:background_image).url).not_to be_nil
+ end
+ end
end
context "when duplicate_steps exists" do
@@ -120,39 +168,5 @@ module Decidim::ParticipatoryProcesses
expect(last_component.step_settings.values).not_to eq(component.step_settings.values)
end
end
-
- context "when duplicate_landing_page_blocks exists" do
- let(:duplicate_landing_page_blocks) { true }
- let(:original_image) do
- Rack::Test::UploadedFile.new(
- Decidim::Dev.test_file("city.jpeg", "image/jpeg"),
- "image/jpeg"
- )
- end
-
- before do
- content_block.images_container.background_image.purge
- content_block.images_container.background_image = original_image
- content_block.save
- content_block.reload
- end
-
- it "duplicates a participatory_process and the content_block with its attachments" do
- expect { subject.call }.to change(Decidim::ContentBlock, :count).by(1)
-
- old_block = Decidim::ContentBlock.unscoped.first
- new_block = Decidim::ContentBlock.unscoped.last
- last_process = Decidim::ParticipatoryProcess.last
-
- expect(new_block.scope_name).to eq(old_block.scope_name)
- expect(new_block.manifest_name).to eq(old_block.manifest_name)
- # published_at is set in content_block factory
- expect(new_block.published_at).not_to be_nil
- expect(new_block.scoped_resource_id).to eq(last_process.id)
- expect(new_block.attachments.length).to eq(1)
- expect(new_block.attachments.first.name).to eq("background_image")
- expect(new_block.images_container.attached_uploader(:background_image).url).not_to be_nil
- end
- end
end
end
diff --git a/decidim-participatory_processes/spec/commands/update_participatory_process_spec.rb b/decidim-participatory_processes/spec/commands/update_participatory_process_spec.rb
index 2e28997ba6053..1a7e42c52025a 100644
--- a/decidim-participatory_processes/spec/commands/update_participatory_process_spec.rb
+++ b/decidim-participatory_processes/spec/commands/update_participatory_process_spec.rb
@@ -72,6 +72,19 @@ module Decidim::ParticipatoryProcesses
end
end
+ context "when there is a trashed space with the same slug" do
+ let!(:trashed_space) { create(:participatory_process, :trashed, slug: "slug", organization:) }
+
+ let(:form) do
+ Admin::ParticipatoryProcessForm.from_params(params.deep_merge(participatory_process: { slug: "slug" })).with_context(context)
+ end
+
+ it "broadcasts invalid" do
+ expect { command.call }.to broadcast(:invalid)
+ expect(form.errors[:slug]).not_to be_empty
+ end
+ end
+
describe "when the participatory process is not valid" do
before do
allow(form).to receive(:invalid?).and_return(false)
diff --git a/decidim-participatory_processes/spec/controllers/admin/imports_controller_spec.rb b/decidim-participatory_processes/spec/controllers/admin/imports_controller_spec.rb
index 3fabc7282c04d..61e779d37bf2f 100644
--- a/decidim-participatory_processes/spec/controllers/admin/imports_controller_spec.rb
+++ b/decidim-participatory_processes/spec/controllers/admin/imports_controller_spec.rb
@@ -13,10 +13,7 @@ module Admin
let(:extra_params) { { participatory_process_slug: participatory_space.slug } }
let(:file) do
- Rack::Test::UploadedFile.new(
- Decidim::Dev.test_file("import_proposals.csv", "text/csv"),
- "text/csv"
- )
+ Decidim::Dev.test_file("import_proposals.csv", "text/csv")
end
end
end
diff --git a/decidim-participatory_processes/spec/serializers/decidim/participatory_processes/participatory_process_importer_spec.rb b/decidim-participatory_processes/spec/serializers/decidim/participatory_processes/participatory_process_importer_spec.rb
index 44fe9f6cc2533..1bb3ae94cf74d 100644
--- a/decidim-participatory_processes/spec/serializers/decidim/participatory_processes/participatory_process_importer_spec.rb
+++ b/decidim-participatory_processes/spec/serializers/decidim/participatory_processes/participatory_process_importer_spec.rb
@@ -497,6 +497,109 @@ module Decidim::ParticipatoryProcesses
.not_to change(Decidim::Attachment, :count)
end
end
+
+ context "when the attachment collection is not defined" do
+ let(:attachments_data) do
+ {
+ "files" => [
+ {
+ "title" => { "en" => "Test File" },
+ "description" => { "en" => "Test Description" },
+ "weight" => 1,
+ "remote_file_url" => remote_file_url
+ }
+ ]
+ }
+ end
+
+ before do
+ stub_request(:head, remote_file_url)
+ .to_return(status: 200, headers: { "Content-Type" => "application/pdf" })
+ stub_request(:get, remote_file_url)
+ .to_return(status: 200, body: File.read(Decidim::Dev.asset("Exampledocument.pdf")))
+ end
+
+ it "does not create any attachments collections" do
+ expect { importer.import_folders_and_attachments(attachments_data) }
+ .not_to change(Decidim::AttachmentCollection, :count)
+ end
+ end
+
+ context "when the attachment collection is nil" do
+ let(:attachments_data) do
+ {
+ "files" => [
+ {
+ "title" => { "en" => "Test File" },
+ "description" => { "en" => "Test Description" },
+ "weight" => 1,
+ "remote_file_url" => remote_file_url
+ }
+ ],
+ "attachment_collections" => nil
+ }
+ end
+
+ before do
+ stub_request(:head, remote_file_url)
+ .to_return(status: 200, headers: { "Content-Type" => "application/pdf" })
+ stub_request(:get, remote_file_url)
+ .to_return(status: 200, body: File.read(Decidim::Dev.asset("Exampledocument.pdf")))
+ end
+
+ it "does not create any attachments collections" do
+ expect { importer.import_folders_and_attachments(attachments_data) }
+ .not_to change(Decidim::AttachmentCollection, :count)
+ end
+ end
+
+ context "when attachment collection is defined" do
+ let(:attachment_data) do
+ {
+ "files" => [
+ {
+ "title" => { "en" => "Test File" },
+ "description" => { "en" => "Test Description" },
+ "weight" => 1,
+ "remote_file_url" => remote_file_url,
+ "attachment_collections" => {
+ "name" => {
+ "en" => "Collection name"
+ },
+ "weight" => 0,
+ "description" => {
+ "en" => "Collection description"
+ }
+ }
+ }
+ ],
+ "attachment_collections" => [
+ {
+ "name" => {
+ "en" => "Collection name"
+ },
+ "weight" => 0,
+ "description" => {
+ "en" => "Collection description"
+ }
+ }
+ ]
+ }
+ end
+
+ before do
+ stub_request(:head, remote_file_url)
+ .to_return(status: 200, headers: { "Content-Type" => "application/pdf" })
+ stub_request(:get, remote_file_url)
+ .to_return(status: 200, body: File.read(Decidim::Dev.asset("Exampledocument.pdf")))
+ end
+
+ it "creates the attachment and the collection" do
+ expect { importer.import_folders_and_attachments(attachment_data) }
+ .to change(Decidim::Attachment, :count).by(1)
+ .and change(Decidim::AttachmentCollection, :count).by(1)
+ end
+ end
end
end
end
diff --git a/decidim-participatory_processes/spec/shared/manage_landing_page_examples.rb b/decidim-participatory_processes/spec/shared/manage_landing_page_examples.rb
index 98643844b02ea..029d606734ab8 100644
--- a/decidim-participatory_processes/spec/shared/manage_landing_page_examples.rb
+++ b/decidim-participatory_processes/spec/shared/manage_landing_page_examples.rb
@@ -34,6 +34,7 @@
find("a", text: "Hero image and CTA", exact_text: true).click
end
end
+ expect(page).to have_content("Content block successfully created.")
end.to change(active_content_blocks, :count).by(1)
end
@@ -47,6 +48,7 @@
find("a", text: "Hero image and CTA", exact_text: true).click
end
end
+ expect(page).to have_content("Content block successfully created.")
first("ul.js-list-available li").drag_to(find("ul.js-list-actives"))
sleep(2)
@@ -72,6 +74,7 @@
it "updates the settings of the content block" do
visit edit_content_block_path(resource, content_block)
+ expect(page).to have_css("form.edit_content_block")
fill_in(
:content_block_settings_button_text_en,
@@ -79,6 +82,8 @@
)
click_on "Update"
+ expect(page).to have_no_css("form.edit_content_block")
+
visit edit_content_block_path(resource, content_block)
expect(page).to have_css("input[value='Custom button text!']")
@@ -86,6 +91,17 @@
expect(content_block.settings.to_json).to match(/Custom button text!/)
end
+
+ it "displays the 'Resolution is too large' error message when image is invalid" do
+ visit edit_content_block_path(resource, content_block)
+
+ dynamically_attach_file(:content_block_images_background_image, Decidim::Dev.asset("8001x4000.png"))
+
+ click_on "Update"
+ sleep 1
+
+ expect(page).to have_text("File resolution is too large")
+ end
end
end
diff --git a/decidim-participatory_processes/spec/shared/manage_process_components_examples.rb b/decidim-participatory_processes/spec/shared/manage_process_components_examples.rb
index 7bbcb2791c0de..496c12e956797 100644
--- a/decidim-participatory_processes/spec/shared/manage_process_components_examples.rb
+++ b/decidim-participatory_processes/spec/shared/manage_process_components_examples.rb
@@ -321,7 +321,8 @@
it "hides the component from the menu" do
visit decidim_participatory_processes.participatory_process_path(participatory_process, locale: I18n.locale)
- expect(page).to have_content decidim_escape_translated(component.name)
+ expect(page).to have_content translated(component.name)
+ expect(page.html).to include decidim_escape_translated(component.name).gsub(""", "\"")
visit decidim_admin_participatory_processes.components_path(participatory_process)
@@ -336,7 +337,7 @@
end
visit decidim_participatory_processes.participatory_process_path(participatory_process, locale: I18n.locale)
- expect(page).to have_no_content decidim_escape_translated(component.name)
+ expect(page).to have_no_content translated(component.name)
end
end
diff --git a/decidim-participatory_processes/spec/system/admin/admin_import_participatory_process_spec.rb b/decidim-participatory_processes/spec/system/admin/admin_import_participatory_process_spec.rb
index c63d8026c477f..a83777c84b2fc 100644
--- a/decidim-participatory_processes/spec/system/admin/admin_import_participatory_process_spec.rb
+++ b/decidim-participatory_processes/spec/system/admin/admin_import_participatory_process_spec.rb
@@ -105,7 +105,7 @@
end
end
let(:uploaded_file) do
- Rack::Test::UploadedFile.new(json_file.path, "application/json")
+ Decidim::Dev.uploaded_file(json_file.path, "application/json")
end
before do
@@ -158,7 +158,7 @@
end
end
let(:uploaded_file) do
- Rack::Test::UploadedFile.new(json_file.path, "application/json")
+ Decidim::Dev.uploaded_file(json_file.path, "application/json")
end
before do
@@ -211,7 +211,7 @@
end
end
let(:uploaded_file) do
- Rack::Test::UploadedFile.new(json_file.path, "application/json")
+ Decidim::Dev.uploaded_file(json_file.path, "application/json")
end
before do
diff --git a/decidim-participatory_processes/spec/system/participatory_processes_spec.rb b/decidim-participatory_processes/spec/system/participatory_processes_spec.rb
index 0f44c8615b9f1..e5fdcbc972fb7 100644
--- a/decidim-participatory_processes/spec/system/participatory_processes_spec.rb
+++ b/decidim-participatory_processes/spec/system/participatory_processes_spec.rb
@@ -312,13 +312,29 @@
it "shows the components" do
within ".participatory-space__nav-container" do
- expect(page).to have_content(decidim_escape_translated(proposals_component.name))
- expect(page).to have_no_content(decidim_escape_translated(meetings_component.name))
+ expect(page).to have_content(translated(proposals_component.name))
+ expect(page).to have_no_content(translated(meetings_component.name))
+ expect(page.html).to include decidim_escape_translated(proposals_component.name).gsub(""", "\"")
end
end
it_behaves_like "accessible page"
+ describe "when there are special characters (', &) in the nav links" do
+ let(:participatory_space) { participatory_process }
+ let(:component_name) { "People's Budget & Ideas" }
+ let!(:proposal_component) { create(:proposal_component, name: { en: component_name }, participatory_space:) }
+
+ it "renders the component name correctly" do
+ visit current_path
+ within ".participatory-space__nav-container" do
+ expect(page).to have_content(component_name)
+ expect(page).to have_no_content("'")
+ expect(page).to have_no_content("'")
+ end
+ end
+ end
+
context "and the process statistics are enabled" do
let(:blocks_manifests) { [:hero, :stats] }
diff --git a/decidim-proposals/app/cells/decidim/proposals/proposal_vote/show.erb b/decidim-proposals/app/cells/decidim/proposals/proposal_vote/show.erb
index d3a2517793c0e..370e768520c81 100644
--- a/decidim-proposals/app/cells/decidim/proposals/proposal_vote/show.erb
+++ b/decidim-proposals/app/cells/decidim/proposals/proposal_vote/show.erb
@@ -1,19 +1,4 @@
-<% if !current_settings.votes_hidden? && (current_component.participatory_space.can_participate?(current_user) || current_user&.admin?) %>
- <% if component_settings.participatory_texts_enabled? && from_proposals_list %>
- <%= render partial: "decidim/proposals/proposals/participatory_texts/proposal_votes_count", locals: { proposal: resource, from_proposals_list: true } %>
- <% else %>
- <% progress ||= resource.proposal_votes_count || 0 %>
- <% total ||= resource.maximum_votes || 0 %>
- <%= cell(
- "decidim/progress_bar",
- progress,
- total:,
- units_name: "decidim.proposals.proposals.votes_count.count",
- element_id: "proposal-#{resource.id}-votes-count",
- class: total.positive? ? "card__proposals-votes-limited" : "card__proposals-votes-unlimited"
- ) %>
- <% end %>
-<% end %>
+<%= cell("decidim/proposals/proposal_votes_count", resource, from_proposals_list:) %>
<% button_classes = "button button__sm button__secondary w-full" %>
diff --git a/decidim-proposals/app/views/decidim/proposals/proposals/participatory_texts/_proposal_votes_count.html.erb b/decidim-proposals/app/cells/decidim/proposals/proposal_votes_count/participatory_texts.erb
similarity index 53%
rename from decidim-proposals/app/views/decidim/proposals/proposals/participatory_texts/_proposal_votes_count.html.erb
rename to decidim-proposals/app/cells/decidim/proposals/proposal_votes_count/participatory_texts.erb
index f75517808564b..396570c6ccdd5 100644
--- a/decidim-proposals/app/views/decidim/proposals/proposals/participatory_texts/_proposal_votes_count.html.erb
+++ b/decidim-proposals/app/cells/decidim/proposals/proposal_votes_count/participatory_texts.erb
@@ -1,38 +1,38 @@
-<% if proposal.rejected? %>
+<% if resource.rejected? %>
<% else %>
<% if !current_user %>
<% if current_settings.votes_blocked? %>
-
- <%= proposal.proposal_votes_count || 0 %>
+
+ <%= resource.proposal_votes_count || 0 %>
<% else %>
-
- <%= proposal.proposal_votes_count || 0 %>
+
+ <%= resource.proposal_votes_count || 0 %>
<% end %>
<% else %>
- <% if proposal_voted_by_user?(proposal) %>
-
- <%= proposal.proposal_votes_count || 0 %>
+ <% if proposal_voted_by_user?(resource) %>
+
+ <%= resource.proposal_votes_count || 0 %>
<% else %>
- <% if proposal.maximum_votes_reached? && !proposal.can_accumulate_votes_beyond_threshold && current_component.participatory_space.can_participate?(current_user) %>
-
- <%= proposal.proposal_votes_count || 0 %>
+ <% if resource.maximum_votes_reached? && !resource.can_accumulate_votes_beyond_threshold && current_component.participatory_space.can_participate?(current_user) %>
+
+ <%= resource.proposal_votes_count || 0 %>
<% else %>
<% if vote_limit_enabled? && remaining_votes_count_for_user == 0 %>
-
- <%= proposal.proposal_votes_count || 0 %>
+
+ <%= resource.proposal_votes_count || 0 %>
<% elsif current_settings.votes_blocked? || !current_component.participatory_space.can_participate?(current_user) %>
-
- <%= proposal.proposal_votes_count || 0 %>
+
+ <%= resource.proposal_votes_count || 0 %>
<% else %>
-
- <%= proposal.proposal_votes_count || 0 %>
+
+ <%= resource.proposal_votes_count || 0 %>
<% end %>
<% end %>
diff --git a/decidim-proposals/app/cells/decidim/proposals/proposal_votes_count/show.erb b/decidim-proposals/app/cells/decidim/proposals/proposal_votes_count/show.erb
new file mode 100644
index 0000000000000..4a959192377a8
--- /dev/null
+++ b/decidim-proposals/app/cells/decidim/proposals/proposal_votes_count/show.erb
@@ -0,0 +1,12 @@
+<% if participatory_texts_variant? %>
+ <%= render :participatory_texts %>
+<% else %>
+ <%= cell(
+ "decidim/progress_bar",
+ progress,
+ total:,
+ units_name: "decidim.proposals.proposals.votes_count.count",
+ element_id:,
+ class: progress_bar_class
+ ) %>
+<% end %>
diff --git a/decidim-proposals/app/cells/decidim/proposals/proposal_votes_count_cell.rb b/decidim-proposals/app/cells/decidim/proposals/proposal_votes_count_cell.rb
new file mode 100644
index 0000000000000..04a50496dcc06
--- /dev/null
+++ b/decidim-proposals/app/cells/decidim/proposals/proposal_votes_count_cell.rb
@@ -0,0 +1,81 @@
+# frozen_string_literal: true
+
+module Decidim
+ module Proposals
+ # Renders the votes count (progress bar or participatory texts variant)
+ # for a given proposal
+ class ProposalVotesCountCell < Decidim::ViewModel
+ include Cell::ViewModel::Partial
+ include Decidim::Proposals::ProposalVotesHelper
+
+ alias resource model
+
+ def show
+ return unless can_see_votes?
+
+ render
+ end
+
+ private
+
+ def can_see_votes?
+ return false if component.current_settings.votes_hidden?
+
+ space_member? || admin? || transparent_space?
+ end
+
+ def space_member?
+ participatory_space.can_participate?(current_user)
+ end
+
+ def admin?
+ current_user&.admin?
+ end
+
+ def transparent_space?
+ participatory_space.try(:is_transparent?)
+ end
+
+ def participatory_texts_variant?
+ component.settings.participatory_texts_enabled? && from_proposals_list?
+ end
+
+ def component
+ resource.component
+ end
+ alias current_component component
+
+ def participatory_space
+ component.participatory_space
+ end
+
+ def current_settings
+ component.current_settings
+ end
+
+ def component_settings
+ component.settings
+ end
+
+ def from_proposals_list?
+ options[:from_proposals_list]
+ end
+
+ def progress
+ resource.proposal_votes_count || 0
+ end
+
+ def total
+ resource.maximum_votes || 0
+ end
+
+ def progress_bar_class
+ total.positive? ? "card__proposals-votes-limited" : "card__proposals-votes-unlimited"
+ end
+
+ def element_id
+ "proposal-#{resource.id}-votes-count"
+ end
+ end
+ end
+end
diff --git a/decidim-proposals/app/commands/decidim/proposals/admin/update_proposal.rb b/decidim-proposals/app/commands/decidim/proposals/admin/update_proposal.rb
index be2e381c5c278..3682c82a3d539 100644
--- a/decidim-proposals/app/commands/decidim/proposals/admin/update_proposal.rb
+++ b/decidim-proposals/app/commands/decidim/proposals/admin/update_proposal.rb
@@ -36,7 +36,7 @@ def call
transaction do
update_proposal
update_proposal_author
- document_cleanup!(include_all_attachments: true)
+ attachment_cleanup!(include_all_attachments: true)
create_attachments(first_weight: first_attachment_weight) if process_attachments?
end
diff --git a/decidim-proposals/app/commands/decidim/proposals/create_proposal.rb b/decidim-proposals/app/commands/decidim/proposals/create_proposal.rb
index 0c413a46519f3..4c42d25493926 100644
--- a/decidim-proposals/app/commands/decidim/proposals/create_proposal.rb
+++ b/decidim-proposals/app/commands/decidim/proposals/create_proposal.rb
@@ -82,7 +82,7 @@ def create_proposal
)
proposal.taxonomizations = form.taxonomizations if form.taxonomizations.present?
- proposal.documents = form.documents if form.documents.present?
+ proposal.attachments = form.attachments if form.attachments.present?
if form.geocoded?
proposal.latitude = form.latitude
proposal.longitude = form.longitude
diff --git a/decidim-proposals/app/commands/decidim/proposals/gallery_methods.rb b/decidim-proposals/app/commands/decidim/proposals/gallery_methods.rb
deleted file mode 100644
index 9d22e3557be43..0000000000000
--- a/decidim-proposals/app/commands/decidim/proposals/gallery_methods.rb
+++ /dev/null
@@ -1,18 +0,0 @@
-# frozen_string_literal: true
-
-module Decidim
- module Proposals
- # A module with all the gallery common methods for proposals
- # and collaborative draft commands.
- # Allows to create several image attachments at once
- module GalleryMethods
- include ::Decidim::GalleryMethods
-
- private
-
- def gallery_allowed?
- @form.current_component.settings.attachments_allowed?
- end
- end
- end
-end
diff --git a/decidim-proposals/app/commands/decidim/proposals/update_proposal.rb b/decidim-proposals/app/commands/decidim/proposals/update_proposal.rb
index b2fff70357d45..8b3cb3c633425 100644
--- a/decidim-proposals/app/commands/decidim/proposals/update_proposal.rb
+++ b/decidim-proposals/app/commands/decidim/proposals/update_proposal.rb
@@ -39,7 +39,7 @@ def call
update_proposal
end
- document_cleanup!(include_all_attachments: true)
+ attachment_cleanup!(include_all_attachments: true)
create_attachments(first_weight: first_attachment_weight) if process_attachments?
end
diff --git a/decidim-proposals/app/forms/decidim/proposals/admin/proposal_form.rb b/decidim-proposals/app/forms/decidim/proposals/admin/proposal_form.rb
index f4d392a9d53f6..71e9fd12b7e54 100644
--- a/decidim-proposals/app/forms/decidim/proposals/admin/proposal_form.rb
+++ b/decidim-proposals/app/forms/decidim/proposals/admin/proposal_form.rb
@@ -14,7 +14,7 @@ class ProposalForm < Decidim::Proposals::Admin::ProposalBaseForm
translatable_attribute :body, Decidim::Attributes::RichText
attribute :attachment, AttachmentForm
- attachments_attribute :documents
+ attachments_attribute :attachments
validates :title, :body, translatable_presence: true
validates :title, :body, translated_etiquette: true
@@ -27,61 +27,12 @@ def map_model(model)
self.title = presenter.title(all_locales: title.is_a?(Hash))
self.body = presenter.editor_body(all_locales: body.is_a?(Hash))
- self.documents = model.attachments.ids
- self.add_documents = model.attachments.map { |att| { id: att.id, title: att.title } }
- end
-
- def documents=(value)
- case value
- when String
- super(parse_string_documents(value))
- when Integer
- super([value])
- else
- super
- end
- end
-
- def documents
- result = super
-
- if should_use_add_documents?(result)
- extract_ids_from_add_documents
- else
- result.is_a?(Array) ? result : []
- end
+ self.attachments = model.attachments.ids
+ self.add_attachments = model.attachments.map { |att| { id: att.id, title: att.title } }
end
def notify_missing_attachment_if_errored
- errors.add(:add_documents, :needs_to_be_reattached) if errors.any? && add_documents.present?
- end
-
- private
-
- def should_use_add_documents?(result)
- (result.blank? || result.is_a?(String)) && add_documents.present?
- end
-
- def extract_ids_from_add_documents
- add_documents
- .select { |doc| doc.is_a?(Hash) && (doc[:id].present? || doc["id"].present?) }
- .map { |doc| (doc[:id] || doc["id"]).to_i }
- end
-
- def parse_string_documents(value)
- return [] if value.blank?
-
- parse_document_ids(value)
- end
-
- def parse_document_ids(value)
- ids = begin
- Array(JSON.parse(value))
- rescue JSON::ParserError
- value.split(",").map(&:strip)
- end
-
- ids.map(&:to_i).reject(&:zero?)
+ errors.add(:add_attachments, :needs_to_be_reattached) if errors.any? && add_attachments.present?
end
end
end
diff --git a/decidim-proposals/app/forms/decidim/proposals/admin/proposals_import_form.rb b/decidim-proposals/app/forms/decidim/proposals/admin/proposals_import_form.rb
index 0ac67faa087e6..c85c08864a7e9 100644
--- a/decidim-proposals/app/forms/decidim/proposals/admin/proposals_import_form.rb
+++ b/decidim-proposals/app/forms/decidim/proposals/admin/proposals_import_form.rb
@@ -15,7 +15,6 @@ class ProposalsImportForm < Decidim::Form
attribute :states, Array[String]
validates :origin_component_id, :origin_component, :current_component, presence: true
- validates :states, presence: true
validate :valid_states
def states
diff --git a/decidim-proposals/app/forms/decidim/proposals/admin/proposals_merge_form.rb b/decidim-proposals/app/forms/decidim/proposals/admin/proposals_merge_form.rb
index e3ce715b6dd8a..bb46a04410086 100644
--- a/decidim-proposals/app/forms/decidim/proposals/admin/proposals_merge_form.rb
+++ b/decidim-proposals/app/forms/decidim/proposals/admin/proposals_merge_form.rb
@@ -15,7 +15,7 @@ class ProposalsMergeForm < ProposalBaseForm
attribute :target_component_id, Array[Integer]
attribute :proposal_ids, Array
- attachments_attribute :documents
+ attachments_attribute :attachments
validates :target_component, :proposals, :current_component, presence: true
validates :proposal_ids, length: { minimum: 2 }
@@ -61,7 +61,7 @@ def clean_target_component_id
end
def notify_missing_attachment_if_errored
- errors.add(:add_documents, :needs_to_be_reattached) if errors.any? && add_documents.present?
+ errors.add(:add_attachments, :needs_to_be_reattached) if errors.any? && add_attachments.present?
end
end
end
diff --git a/decidim-proposals/app/forms/decidim/proposals/proposal_form.rb b/decidim-proposals/app/forms/decidim/proposals/proposal_form.rb
index 3b606b825af26..373fe034195f9 100644
--- a/decidim-proposals/app/forms/decidim/proposals/proposal_form.rb
+++ b/decidim-proposals/app/forms/decidim/proposals/proposal_form.rb
@@ -19,7 +19,7 @@ class ProposalForm < Decidim::Form
attribute :longitude, Float
attribute :attachment, AttachmentForm
- attachments_attribute :documents
+ attachments_attribute :attachments
validates :title, :body, presence: true
validates :title, :body, etiquette: true
@@ -42,7 +42,7 @@ def map_model(model)
presenter = ProposalPresenter.new(model)
self.body = presenter.editor_body(all_locales: body.is_a?(Hash))
- self.documents = model.attachments
+ self.attachments = model.attachments
end
def participatory_space_manifest
@@ -73,7 +73,7 @@ def body_is_not_bare_template
# in any other field. This is needed because when the form has an error, the attachment
# is lost, so we need a way to inform the user of this problem.
def notify_missing_attachment_if_errored
- errors.add(:add_documents, :needs_to_be_reattached) if errors.any? && add_documents.present?
+ errors.add(:add_attachments, :needs_to_be_reattached) if errors.any? && add_attachments.present?
end
end
end
diff --git a/decidim-proposals/app/jobs/decidim/proposals/admin/import_proposals_job.rb b/decidim-proposals/app/jobs/decidim/proposals/admin/import_proposals_job.rb
index 86f77863123bf..bfdaedcadec65 100644
--- a/decidim-proposals/app/jobs/decidim/proposals/admin/import_proposals_job.rb
+++ b/decidim-proposals/app/jobs/decidim/proposals/admin/import_proposals_job.rb
@@ -32,7 +32,9 @@ def perform(form)
def proposals
proposals = Decidim::Proposals::Proposal.not_hidden.not_withdrawn.where(component: origin_component)
- if @form["states"].include?("not_answered")
+ if @form["states"].blank?
+ proposals
+ elsif @form["states"].include?("not_answered")
proposals.not_answered.or(proposals.where(id: proposals.only_status(@form["states"]).pluck(:id)))
else
proposals.only_status(@form["states"])
diff --git a/decidim-proposals/app/models/decidim/proposals/proposal.rb b/decidim-proposals/app/models/decidim/proposals/proposal.rb
index 0cde9e470227d..20886dea5aea2 100644
--- a/decidim-proposals/app/models/decidim/proposals/proposal.rb
+++ b/decidim-proposals/app/models/decidim/proposals/proposal.rb
@@ -397,8 +397,14 @@ def self.ransackable_scopes(_auth_object = nil)
# Create the :search_text ransacker alias for searching from both of these.
ransacker_i18n_multi :search_text, [:title, :body]
+ ransacker_i18n :translated_title, :title
+
def self.ransackable_attributes(_auth_object = nil)
- %w(id_string search_text title body is_emendation comments_count proposal_votes_count published_at proposal_notes_count)
+ %w(
+ id_string search_text title translated_title body is_emendation
+ comments_count proposal_votes_count published_at proposal_notes_count
+ state_published evaluation_assignments_count
+ )
end
def self.ransackable_associations(_auth_object = nil)
diff --git a/decidim-proposals/app/packs/entrypoints/decidim_proposals_geocoding.js b/decidim-proposals/app/packs/entrypoints/decidim_proposals_geocoding.js
deleted file mode 100644
index 83cc46a21230e..0000000000000
--- a/decidim-proposals/app/packs/entrypoints/decidim_proposals_geocoding.js
+++ /dev/null
@@ -1,2 +0,0 @@
-import "src/decidim/proposals/reverse_geocoding.js"
-import "stylesheets/decidim/proposals/geocoding_addons.scss";
diff --git a/decidim-proposals/app/packs/src/decidim/proposals/admin/controllers/import_proposals/controller.js b/decidim-proposals/app/packs/src/decidim/proposals/admin/controllers/import_proposals/controller.js
index 54c4d50e3514d..a7ef84247ef0a 100644
--- a/decidim-proposals/app/packs/src/decidim/proposals/admin/controllers/import_proposals/controller.js
+++ b/decidim-proposals/app/packs/src/decidim/proposals/admin/controllers/import_proposals/controller.js
@@ -62,8 +62,10 @@ export default class ImportProposalsController extends Controller {
return;
}
- const url = `${this.statesUrlValue}?origin_id=${componentId}`;
- fetch(url, {
+ const url = new URL(this.statesUrlValue, window.location.origin);
+ url.searchParams.append("origin_id", componentId);
+
+ fetch(url.toString(), {
credentials: "same-origin",
headers: { Accept: "application/json" }
}).then((res) => {
diff --git a/decidim-proposals/app/presenters/decidim/proposals/admin_log/value_types/evaluator_role_user_presenter.rb b/decidim-proposals/app/presenters/decidim/proposals/admin_log/value_types/evaluator_role_user_presenter.rb
index 5bb31956e81c7..158dc75b568f0 100644
--- a/decidim-proposals/app/presenters/decidim/proposals/admin_log/value_types/evaluator_role_user_presenter.rb
+++ b/decidim-proposals/app/presenters/decidim/proposals/admin_log/value_types/evaluator_role_user_presenter.rb
@@ -8,9 +8,10 @@ class EvaluatorRoleUserPresenter < Decidim::Log::ValueTypes::DefaultPresenter
def present
return unless value
- role = Decidim::Proposals::EvaluationAssignment.find_by(evaluator_role_id: value).evaluator_role
- user = role.user
- user.try(:name)
+ assignment = Decidim::Proposals::EvaluationAssignment.find_by(evaluator_role_id: value)
+ return unless assignment
+
+ assignment.evaluator_role&.user&.name
end
end
end
diff --git a/decidim-proposals/app/views/decidim/proposals/admin/proposal_states/index.html.erb b/decidim-proposals/app/views/decidim/proposals/admin/proposal_states/index.html.erb
index d3237f090e23c..896ac30c045bd 100644
--- a/decidim-proposals/app/views/decidim/proposals/admin/proposal_states/index.html.erb
+++ b/decidim-proposals/app/views/decidim/proposals/admin/proposal_states/index.html.erb
@@ -58,7 +58,7 @@
<% else %>
<% end %>
diff --git a/decidim-proposals/app/views/decidim/proposals/proposals/_votes_count.html.erb b/decidim-proposals/app/views/decidim/proposals/proposals/_votes_count.html.erb
deleted file mode 100644
index fde49c5ff07b8..0000000000000
--- a/decidim-proposals/app/views/decidim/proposals/proposals/_votes_count.html.erb
+++ /dev/null
@@ -1,16 +0,0 @@
-<% if !current_settings.votes_hidden? && (current_component.participatory_space.can_participate?(current_user) || current_user&.admin?) %>
- <% if component_settings.participatory_texts_enabled? && from_proposals_list %>
- <%= render partial: "decidim/proposals/proposals/participatory_texts/proposal_votes_count", locals: { proposal:, from_proposals_list: true } %>
- <% else %>
- <% progress ||= proposal.proposal_votes_count || 0 %>
- <% total ||= proposal.maximum_votes || 0 %>
- <%= cell(
- "decidim/progress_bar",
- progress,
- total:,
- units_name: "decidim.proposals.proposals.votes_count.count",
- element_id: "proposal-#{proposal.id}-votes-count",
- class: total.positive? ? "card__proposals-votes-limited" : "card__proposals-votes-unlimited"
- ) %>
- <% end %>
-<% end %>
diff --git a/decidim-proposals/app/views/decidim/proposals/proposals/index.js.erb b/decidim-proposals/app/views/decidim/proposals/proposals/index.js.erb
index 9dd9fc0cc9e0e..c5dc68b2a569c 100644
--- a/decidim-proposals/app/views/decidim/proposals/proposals/index.js.erb
+++ b/decidim-proposals/app/views/decidim/proposals/proposals/index.js.erb
@@ -10,7 +10,7 @@ $orderFilterInput.val('<%= order %>');
if (controller) {
var markerData = JSON.parse('<%= escape_javascript cell("decidim/map", @proposals, metadata_card: "decidim/proposals/proposal_metadata").geocoded_data.to_json.html_safe %>');
controller.clearMarkers();
- if (markerData.length > 0 ) {
+ if (markerData.length) {
controller.addMarkers(markerData);
}
}
diff --git a/decidim-proposals/config/locales/ar.yml b/decidim-proposals/config/locales/ar.yml
index 3371e708c2203..f1ab2db6c80aa 100644
--- a/decidim-proposals/config/locales/ar.yml
+++ b/decidim-proposals/config/locales/ar.yml
@@ -44,10 +44,6 @@ ar:
allowed_file_content_types: 'نوع الوثيقة غير صالح. يسمح فقط بالملفات ذات الإضافات التالية: %{types}'
proposal:
attributes:
- add_documents:
- needs_to_be_reattached: يحتاج إلى إعادة ربط
- add_photos:
- needs_to_be_reattached: يحتاج إلى إعادة ربط
body:
cant_be_equal_to_template: لا يمكن أن يساوي القالب
identical: لا يمكن أن يكون العنوان متطابقًا
@@ -99,7 +95,6 @@ ar:
'false': اقتراحات
'true': تعديلات
state_eq:
- label: الحالة
values:
accepted: تم قبوله
evaluating: قيد التقييم
@@ -125,7 +120,6 @@ ar:
attachments_allowed: السماح للمرفقات
collaborative_drafts_enabled: تم تمكين المسودات التعاونية
comments_enabled: تم تمكين التعليقات
- comments_max_length: الحد الأقصى لطول التعليقات (اترك 0 لاستعمال القيمة الافتراضية)
default_sort_order: التصنيف الافتراضي للاقتراح
default_sort_order_options:
most_commented: صاحبة الأكثر تعليقات
@@ -187,17 +181,14 @@ ar:
email_intro: 'تم قبول %{requester_name} لأن يكون مسجلاً كمساهم في المسودة التعاونية %{resource_title}.'
email_outro: لقد تلقيت هذا الإشعار لأنك مساهم مع %{resource_title}.
email_subject: "تم قبول %{requester_name} للوصول كمساهم في %{resource_title}."
- notification_title: %{requester_name} %{requester_nickname} كان مقبولة للوصول كمساهم من %{resource_title} مشروع تعاوني.
collaborative_draft_access_rejected:
email_intro: 'تم رفض %{requester_name} لأن يكون مسجلاً كمساهم في المسودة التعاونية %{resource_title}.'
email_outro: لقد تلقيت هذا الإشعار لأنك مساهم مع %{resource_title}.
email_subject: "تم رفض %{requester_name} للوصول كمساهم في المسودة التعاونية %{resource_title}."
- notification_title: %{requester_name} %{requester_nickname} تم رفض الوصول إلى كمساهم في المسودة التعاونية %{resource_title}.
collaborative_draft_access_requested:
email_intro: 'طلب %{requester_name} إمكانية المشاركة كمساهم. يمكنك قبول أو رفض الطلب من صفحة المسودة التعاونية %{resource_title}.'
email_outro: لقد تلقيت هذا الإشعار لأنك مساهم مع %{resource_title}.
email_subject: "%{requester_name} طلب الوصول للمساهمة في %{resource_title}."
- notification_title: %{requester_name} %{requester_nickname} طلب الوصول للمساهمة في المسودة التعاونية %{resource_title} . يرجى قبول أو رفض الطلب.
collaborative_draft_access_requester_accepted:
email_intro: تم قبول طلبك للمشاركة كمساهم في المسودة التعاونية %{resource_title}.
email_outro: لقد تلقيت هذا الإشعار لأنك طلبت أن تصبح مساهماً مع %{resource_title}.
@@ -209,10 +200,7 @@ ar:
email_subject: لقد تم رفضك كمساهم بـ %{resource_title}.
notification_title: لقد تم رفض دخولك كمساهم في المسودة التعاونية %{resource_title}.
collaborative_draft_withdrawn:
- email_intro: %{author_name} %{author_nickname} سحب %{resource_title} المسودة التعاونية.
email_outro: لقد تلقيت هذا الإشعار لأنك مساهم مع %{resource_title}.
- email_subject: "%{author_name} %{author_nickname} سحب المشروع %{resource_title} التعاوني."
- notification_title: %{author_name} %{author_nickname}سحبت مشروع %{resource_title} التعاوني.
creation_enabled:
email_intro: 'يمكنك الآن إنشاء مقترحات جديدة في %{participatory_space_title}! ابدأ المشاركة في هذه الصفحة:'
email_outro: لقد تلقيت هذا الإشعار لأنك تتابع %{participatory_space_title}. يمكنك إيقاف تلقي الإخطارات باتباع الرابط السابق.
@@ -222,11 +210,6 @@ ar:
email_outro: لقد تلقيت هذا الإشعار لأنك مؤلف "%{resource_title}".
email_subject: تم ذكر اقتراحك "%{mentioned_proposal_title}"
notification_title: لقد تم ذكر اقتراحك "%{mentioned_proposal_title}" في هذه المساحة في التعليقات.
- proposal_published:
- email_intro: '%{author_name} %{author_nickname}، الذي تتابعه ، بنشر اقتراح جديد يسمى "%{resource_title}". التحقق من ذلك والمساهمة:'
- email_outro: لقد تلقيت هذا الإشعار لأنك تتابع %{author_nickname}. يمكنك إيقاف تلقي الإخطارات باتباع الرابط السابق.
- email_subject: اقتراح جديد "%{resource_title}" من %{author_nickname}
- notification_title: تم نشر مقترح %{resource_title} بواسطة %{author_name} %{author_nickname}.
proposal_published_for_space:
email_intro: تمت إضافة الاقتراح "%{resource_title}" إلى "%{participatory_space_title}" الذي تتابعه.
email_outro: لقد تلقيت هذا الإشعار لأنك تتابع "%{participatory_space_title}". يمكنك إيقاف تلقي الإخطارات باتباع الرابط السابق.
diff --git a/decidim-proposals/config/locales/bg.yml b/decidim-proposals/config/locales/bg.yml
index 3714866c37159..9b937d894e595 100644
--- a/decidim-proposals/config/locales/bg.yml
+++ b/decidim-proposals/config/locales/bg.yml
@@ -52,10 +52,6 @@ bg:
allowed_file_content_types: 'Невалиден файлов формат. Позволени са само файлове със следните разширения: %{types}'
proposal:
attributes:
- add_documents:
- needs_to_be_reattached: Необходимо е да се прикачи отново
- add_photos:
- needs_to_be_reattached: Необходимо е да се прикачи отново
body:
cant_be_equal_to_template: не може да е еднакво с шаблона
identical: И заглавието не може да е еднакво
@@ -97,10 +93,7 @@ bg:
values:
'false': Предложения
'true': Изменения
- proposal_state_id_eq:
- label: Състояние
state_eq:
- label: Състояние
values:
accepted: Прието
evaluating: Оценяване
@@ -134,7 +127,6 @@ bg:
can_accumulate_votes_beyond_threshold: Може да натрупва гласове над прага
collaborative_drafts_enabled: Съвместните чернови са разрешени
comments_enabled: Коментарите са разрешени
- comments_max_length: Максимална дължина на коментарите (Оставете 0 за стойност по подразбиране)
default_sort_order: Сортиране на предложения по подразбиране
default_sort_order_help: Автоматично означава, че ако гласовете са активирани, предложенията ще се показват сортирани на случаен принцип, а ако гласовете са блокирани, тогава те ще бъдат сортирани по най-гласуваните.
default_sort_order_options:
@@ -209,17 +201,14 @@ bg:
email_intro: '%{requester_name} получи достъп като сътрудник в съвместната чернова %{resource_title}.'
email_outro: Получихте известие, защото сте сътрудник в %{resource_title}.
email_subject: "%{requester_name} получи достъп като сътрудник в %{resource_title}."
- notification_title: %{requester_name} %{requester_nickname}получи достъп като сътрудник в съвместната чернова %{resource_title}.
collaborative_draft_access_rejected:
email_intro: '%{requester_name} е отхвърлен като сътрудник в съвместната чернова %{resource_title}.'
email_outro: Получихте известие, защото сте сътрудник в %{resource_title}.
email_subject: "%{requester_name} е отхвърлен като сътрудник в съвместната чернова %{resource_title}."
- notification_title: %{requester_name} %{requester_nickname}е отхвърлен като сътрудник в съвместната чернова %{resource_title}.
collaborative_draft_access_requested:
email_intro: '%{requester_name} заяви достъп като сътрудник. Можете да приемете или отхвърлите от сраницата на колективната чернова %{resource_title}.'
email_outro: Получихте известие, защото сте сътрудник в %{resource_title}.
email_subject: "%{requester_name} заяви достъп като сътрудник в %{resource_title}."
- notification_title: %{requester_name} %{requester_nickname} заяви достъп като сътрудник в колективната чернова %{resource_title}. Моля, приемете или отхвърлете заявката.
collaborative_draft_access_requester_accepted:
email_intro: Получихте достъп като сътрудник в колективната чернова %{resource_title}.
email_outro: Получихте известие, защото заявихте да бъдете сътрудник в %{resource_title}.
@@ -231,10 +220,7 @@ bg:
email_subject: Отхвърлен сте като сътрудник в %{resource_title}.
notification_title: Отказан Ви е достъп като сътрудник в колективната чернова %{resource_title}.
collaborative_draft_withdrawn:
- email_intro: %{author_name} %{author_nickname} оттегли колективната чернова %{resource_title}.
email_outro: Получихте известие, защото сте сътрудник в %{resource_title}.
- email_subject: "%{author_name} %{author_nickname} оттегли колективната чернова %{resource_title}."
- notification_title: %{author_name} %{author_nickname}оттегли колективната чернова %{resource_title}.
creation_enabled:
email_intro: 'Вече може да създавате предложения в %{participatory_space_title}! Участвайте в тази страница:'
email_outro: Получавате това известие, защото следвате %{participatory_space_title}. Може да прекратите известията чрез предната връзка.
@@ -245,11 +231,6 @@ bg:
email_outro: Получавате това известие, защото сте автор на %{resource_title}".
email_subject: Вашето предложение %{mentioned_proposal_title} е споменато
notification_title: Вашето предложение "%{mentioned_proposal_title}" беше споменато в коментарите на това пространство.
- proposal_published:
- email_intro: '%{author_name} %{author_nickname}, което следвате, има публикувано ново предложение "%{resource_title}". Разгледайте го и допринасяйте:'
- email_outro: Получавате това известие, защото следвате %{author_nickname}. Може да прекратите известията чрез предната връзка.
- email_subject: Ново предложение "%{resource_title}" от %{author_nickname}
- notification_title: Предложението %{resource_title} беше публикувано от %{author_name} %{author_nickname}.
proposal_published_for_space:
email_intro: Предложението "%{resource_title}" беше добавено в "%{participatory_space_title}", което следвате.
email_outro: Получавате това известие, защото следвате "%{participatory_space_title}". Може да прекратите известията чрез предната връзка.
diff --git a/decidim-proposals/config/locales/ca-IT.yml b/decidim-proposals/config/locales/ca-IT.yml
index 63c4cb6001fbc..718679e71c70d 100644
--- a/decidim-proposals/config/locales/ca-IT.yml
+++ b/decidim-proposals/config/locales/ca-IT.yml
@@ -63,10 +63,8 @@ ca-IT:
allowed_file_content_types: 'Tipus de document no vàlid. Només s''accepten arxius amb les següents extensions: %{types}'
proposal:
attributes:
- add_documents:
- needs_to_be_reattached: És necessari tornar a adjuntar l'arxiu
- add_photos:
- needs_to_be_reattached: És necessari tornar a adjuntar l'arxiu
+ add_attachments:
+ needs_to_be_reattached: És necessari tornar a adjuntar el fitxer
body:
cant_be_equal_to_template: No pot ser igual a la plantilla
identical: I el títol no pot ser idèntic
@@ -107,9 +105,6 @@ ca-IT:
decidim/proposals/proposal:
one: Proposta
other: Propostes
- decidim/proposals/proposal_note:
- one: Nota
- other: Notes
decidim/proposals/proposal_vote:
one: Donar suport
other: Suports
@@ -179,7 +174,7 @@ ca-IT:
collaborative_drafts_enabled: Esborranys col·laboratius habilitats
collaborative_drafts_enabled_help: La funció «Esborranys col·laboratius» s'eliminarà pròximament. Si la feies servir, a partir de la versió 0.32 de Decidim podràs fer servir la funcionalitat de coautoria de propostes.
comments_enabled: Comentaris habilitats
- comments_max_length: Longitud màxima dels comentaris (deixa 0 si vols mantenir la configuració per defecte)
+ comments_max_length: Caràcters màxims per comentari (deixar a 0 el valor predeterminat)
default_sort_order: Ordre de propostes per defecte
default_sort_order_help: '''Per defecte'' vol dir que si els suports estan habilitats, les propostes es mostraran aleatòriament, i si els suports estan bloquejats, aleshores es mostraran de més a menys suports.'
default_sort_order_options:
@@ -278,17 +273,17 @@ ca-IT:
email_intro: '%{author_name} ha creat una nota privada a %{resource_title}. La pots veure al taulell d''administració.'
email_outro: Reps aquesta notificació perquè pots avaluar la proposta.
email_subject: Algú ha deixat una nota a la proposta %{resource_title}.
- notification_title: %{author_name} %{author_nickname} ha creat una nota privada a %{resource_title}. La pots veure al taulell d'administració.
+ notification_title: %{author_name} ha creat una nota privada a %{resource_title}. La pots veure al taulell d'administració.
proposal_note_mentioned:
- email_intro: '"%{author_name}" "%{author_nickname}" t''ha esmentat a una nota privada a "%{resource_title}". La pots veure al taulell d''administració.'
+ email_intro: '"%{author_name}" t''ha esmentat a una nota privada a "%{resource_title}". La pots veure al taulell d''administració.'
email_outro: Has rebut aquesta notificació perquè t'han esmentat a una nota privada.
email_subject: Algú ha deixat una nota a la proposta %{resource_title}.
- notification_title: %{author_name} %{author_nickname} t'ha esmentat a una nota privada a %{resource_title}. La pots veure al taulell d'administració.
+ notification_title: %{author_name} t'ha esmentat a una nota privada a "%{resource_title}". La pots veure al taulell d'administració.
proposal_note_replied:
email_intro: '%{author_name} ha respost la teva nota privada a %{resource_title}. Ho pots veure al taulell d''administració.'
email_outro: Has rebut aquesta notificació perquè ets l'autora de la nota privada.
email_subject: "%{author_name} ha respost a la teva nota privada a %{resource_title}."
- notification_title: %{author_name} %{author_nickname} ha respost a la teva nota privada a %{resource_title}. Ho pots veure al taulell d'administració.
+ notification_title: %{author_name} ha respost a la teva nota privada a %{resource_title}. Pots veure la resposta des del taulell d'administració.
coauthor_accepted_invite:
notification_title: %{coauthor_name} ha acceptat la teva invitació per a ser coautora de la proposta "%{resource_title}".
coauthor_invited:
@@ -305,17 +300,17 @@ ca-IT:
email_intro: 'S''ha acceptat %{requester_name} per accedir com a contribuidora de l''esborrany col·laboratiu %{resource_title}.'
email_outro: Has rebut aquesta notificació perquè vas contribuir a la proposta "%{resource_title}".
email_subject: "S'ha acceptat %{requester_name} per accedir com a contribuidora del %{resource_title}."
- notification_title: %{requester_name} %{requester_nickname} ha estat acceptat per accedir com a contribuidora de l'esborrany col·laboratiu %{resource_title}.
+ notification_title: %{requester_name} ha estat acceptada per accedir com a contribuïdora de l'esborrany col·laboratiu %{resource_title}.
collaborative_draft_access_rejected:
email_intro: 'S''ha rebutjat que %{requester_name} accedeixi com a contribuidora de l''esborrany col·laboratiu %{resource_title}.'
email_outro: Has rebut aquesta notificació perquè vas contribuir a la proposta "%{resource_title}".
email_subject: "S'ha rebutjat %{requester_name} per accedir com a contribuïdora de l'esborrany col·laboratiu %{resource_title}."
- notification_title: %{requester_name} %{requester_nickname} ha estat rebutjat per accedir com a contribuïdora de l'esborrany col·laboratiu %{resource_title}.
+ notification_title: 'S''ha rebutjat que %{requester_name} accedeixi com a contribuïdora de l''esborrany col·laboratiu: %{resource_title}.'
collaborative_draft_access_requested:
email_intro: '%{requester_name} ha sol·licitat accés com a contribuïdora. Pots acceptar o rebutjar la sol·licitud de l''esborrany col·laboratiu %{resource_title}.'
email_outro: Has rebut aquesta notificació perquè vas contribuir a la proposta "%{resource_title}".
email_subject: "%{requester_name} ha demanat accés per contribuir a %{resource_title}."
- notification_title: %{requester_name} %{requester_nickname} ha sol·licitat accés per contribuir a l'esborrany col·laboratiu de %{resource_title}. Si us plau, accepta o rebutja la sol·licitud.
+ notification_title: %{requester_name} ha sol·licitat accés per contribuir a l'esborrany col·laboratiu de %{resource_title}. Si us plau, accepta o rebutja la sol·licitud.
collaborative_draft_access_requester_accepted:
email_intro: Has estat acceptada com a contribuïdora de l'esborrany col·laboratiu %{resource_title}.
email_outro: Has rebut aquesta notificació perquè has sol·licitat poder contribuïr a la proposta "%{resource_title}".
@@ -327,10 +322,10 @@ ca-IT:
email_subject: Has estat rebutjada com a contribuïdora de %{resource_title}.
notification_title: Has estat rebutjada per accedir com a contribuïdora de l'esborrany col·laboratiu %{resource_title}.
collaborative_draft_withdrawn:
- email_intro: %{author_name} %{author_nickname} ha retirat l'esborrany col·laboratiu %{resource_title}.
+ email_intro: '%{author_name} ha retirat l''esborrany col·laboratiu: %{resource_title}.'
email_outro: Has rebut aquesta notificació perquè vas contribuir a la proposta "%{resource_title}".
- email_subject: "%{author_name} %{author_nickname} ha retirat l'esborrany col·laboratiu %{resource_title}."
- notification_title: %{author_name} %{author_nickname}ha retirat l'esborrany col·laboratiu %{resource_title}.
+ email_subject: "%{author_name} ha retirat l'esborrany col·laboratiu: %{resource_title}."
+ notification_title: '%{author_name}ha retirat l''esborrany col·laboratiu: %{resource_title}.'
creation_enabled:
email_intro: 'Ara pots crear noves propostes a %{participatory_space_title}! Comença a participar a aquesta pàgina:'
email_outro: Has rebut aquesta notificació perquè estàs seguint l'espai "%{participatory_space_title}". Pots deixar de rebre notificacions seguint l'enllaç anterior.
@@ -352,10 +347,10 @@ ca-IT:
email_subject: La proposta "%{resource_title}" s'ha fusionat amb una altra
notification_title: Una administradora ha fusionat la proposta "%{resource_title} amb una altra.
proposal_published:
- email_intro: '%{author_name} %{author_nickname}, a qui segueixes, ha publicat una nova proposta anomenada "%{resource_title}". Consulta i contribueix:'
- email_outro: Has rebut aquesta notificació perquè estàs seguint a "%{author_nickname}". Pots deixar de rebre notificacions seguint l'enllaç anterior.
- email_subject: Nova proposta "%{resource_title}" de %{author_nickname}
- notification_title: La proposta %{resource_title} ha estat publicada per %{author_name} %{author_nickname}.
+ email_intro: '%{author_name}, a qui segueixes, ha publicat una nova proposta anomenada "%{resource_title}". Consulta i contribueix:'
+ email_outro: Has rebut aquesta notificació perquè estàs seguint l'espai %{author_name}. Pots deixar de rebre notificacions seguint l'enllaç anterior.
+ email_subject: Nova proposta "%{resource_title}" de %{author_name}
+ notification_title: La proposta "%{resource_title}" va ser publicada per %{author_name} .
proposal_published_for_space:
email_intro: La proposta "%{resource_title}" s'ha afegit a l'espai "%{participatory_space_title}", que segueixes.
email_outro: Has rebut aquesta notificació perquè estàs seguint l'espai "%{participatory_space_title}". Pots deixar de rebre notificacions seguint l'enllaç anterior.
@@ -661,6 +656,7 @@ ca-IT:
number_of_proposals: Es publicaran les respostes a %{number} propostes
select_a_proposal: Si us plau, selecciona una proposta.
show:
+ address: Adreça
amendments_count: Número d'esmenes
assigned_evaluators: Avaluadores assignades
body: Cos
@@ -859,6 +855,7 @@ ca-IT:
errors:
device_not_supported: El teu dispositiu no admet serveis d'ubicació. Si us plau, introdueix l'adreça postal completa manualment (tipus de via, nom de la via, número, codi postal i ciutat).
no_device_location: Si us plau, no hem pogut detectar la teva ubicació. Si us plau, introdueix l'adreça postal completa manualment (tipus de via, nom de la via, número, codi postal i ciutat).
+ locating: Localitzant...
use_my_location: Fer servir la meva ubicació actual
invite_coauthors:
cancel:
diff --git a/decidim-proposals/config/locales/ca.yml b/decidim-proposals/config/locales/ca.yml
index e21fd2a2d0032..35853cd0cde42 100644
--- a/decidim-proposals/config/locales/ca.yml
+++ b/decidim-proposals/config/locales/ca.yml
@@ -63,10 +63,8 @@ ca:
allowed_file_content_types: 'Tipus de document no vàlid. Només s''accepten arxius amb les següents extensions: %{types}'
proposal:
attributes:
- add_documents:
- needs_to_be_reattached: És necessari tornar a adjuntar l'arxiu
- add_photos:
- needs_to_be_reattached: És necessari tornar a adjuntar l'arxiu
+ add_attachments:
+ needs_to_be_reattached: És necessari tornar a adjuntar el fitxer
body:
cant_be_equal_to_template: No pot ser igual a la plantilla
identical: I el títol no pot ser idèntic
@@ -179,7 +177,7 @@ ca:
collaborative_drafts_enabled: Esborranys col·laboratius habilitats
collaborative_drafts_enabled_help: La funció «Esborranys col·laboratius» s'eliminarà pròximament. Si la feies servir, a partir de la versió 0.32 de Decidim podràs fer servir la funcionalitat de coautoria de propostes.
comments_enabled: Comentaris habilitats
- comments_max_length: Longitud màxima dels comentaris (deixa 0 si vols mantenir la configuració per defecte)
+ comments_max_length: Caràcters màxims per comentari (deixar a 0 el valor predeterminat)
default_sort_order: Ordre de propostes per defecte
default_sort_order_help: '''Per defecte'' vol dir que si els suports estan habilitats, les propostes es mostraran aleatòriament, i si els suports estan bloquejats, aleshores es mostraran de més a menys suports.'
default_sort_order_options:
@@ -278,17 +276,17 @@ ca:
email_intro: '%{author_name} ha creat una nota privada a %{resource_title}. La pots veure al taulell d''administració.'
email_outro: Reps aquesta notificació perquè pots avaluar la proposta.
email_subject: Algú ha deixat una nota a la proposta %{resource_title}.
- notification_title: %{author_name} %{author_nickname} ha creat una nota privada a %{resource_title}. La pots veure al taulell d'administració.
+ notification_title: %{author_name} ha creat una nota privada a %{resource_title}. La pots veure al taulell d'administració.
proposal_note_mentioned:
- email_intro: '"%{author_name}" "%{author_nickname}" t''ha esmentat a una nota privada a "%{resource_title}". La pots veure al taulell d''administració.'
+ email_intro: '"%{author_name}" t''ha esmentat a una nota privada a "%{resource_title}". La pots veure al taulell d''administració.'
email_outro: Has rebut aquesta notificació perquè t'han esmentat a una nota privada.
email_subject: Algú ha deixat una nota a la proposta %{resource_title}.
- notification_title: %{author_name} %{author_nickname} t'ha esmentat a una nota privada a %{resource_title}. La pots veure al taulell d'administració.
+ notification_title: %{author_name} t'ha esmentat a una nota privada a "%{resource_title}". La pots veure al taulell d'administració.
proposal_note_replied:
email_intro: '%{author_name} ha respost la teva nota privada a %{resource_title}. Ho pots veure al taulell d''administració.'
email_outro: Has rebut aquesta notificació perquè ets l'autora de la nota privada.
email_subject: "%{author_name} ha respost a la teva nota privada a %{resource_title}."
- notification_title: %{author_name} %{author_nickname} ha respost a la teva nota privada a %{resource_title}. Ho pots veure al taulell d'administració.
+ notification_title: %{author_name} ha respost a la teva nota privada a %{resource_title}. Pots veure la resposta des del taulell d'administració.
coauthor_accepted_invite:
notification_title: %{coauthor_name} ha acceptat la teva invitació per a ser coautora de la proposta "%{resource_title}".
coauthor_invited:
@@ -305,17 +303,17 @@ ca:
email_intro: 'S''ha acceptat %{requester_name} per accedir com a contribuidora de l''esborrany col·laboratiu %{resource_title}.'
email_outro: Has rebut aquesta notificació perquè vas contribuir a la proposta "%{resource_title}".
email_subject: "S'ha acceptat %{requester_name} per accedir com a contribuidora del %{resource_title}."
- notification_title: %{requester_name} %{requester_nickname} ha estat acceptat per accedir com a contribuidora de l'esborrany col·laboratiu %{resource_title}.
+ notification_title: %{requester_name} ha estat acceptada per accedir com a contribuïdora de l'esborrany col·laboratiu %{resource_title}.
collaborative_draft_access_rejected:
email_intro: 'S''ha rebutjat que %{requester_name} accedeixi com a contribuidora de l''esborrany col·laboratiu %{resource_title}.'
email_outro: Has rebut aquesta notificació perquè vas contribuir a la proposta "%{resource_title}".
email_subject: "S'ha rebutjat %{requester_name} per accedir com a contribuïdora de l'esborrany col·laboratiu %{resource_title}."
- notification_title: %{requester_name} %{requester_nickname} ha estat rebutjat per accedir com a contribuïdora de l'esborrany col·laboratiu %{resource_title}.
+ notification_title: 'S''ha rebutjat que %{requester_name} accedeixi com a contribuïdora de l''esborrany col·laboratiu: %{resource_title}.'
collaborative_draft_access_requested:
email_intro: '%{requester_name} ha sol·licitat accés com a contribuïdora. Pots acceptar o rebutjar la sol·licitud de l''esborrany col·laboratiu %{resource_title}.'
email_outro: Has rebut aquesta notificació perquè vas contribuir a la proposta "%{resource_title}".
email_subject: "%{requester_name} ha demanat accés per contribuir a %{resource_title}."
- notification_title: %{requester_name} %{requester_nickname} ha sol·licitat accés per contribuir a l'esborrany col·laboratiu de %{resource_title}. Si us plau, accepta o rebutja la sol·licitud.
+ notification_title: %{requester_name} ha sol·licitat accés per contribuir a l'esborrany col·laboratiu de %{resource_title}. Si us plau, accepta o rebutja la sol·licitud.
collaborative_draft_access_requester_accepted:
email_intro: Has estat acceptada com a contribuïdora de l'esborrany col·laboratiu %{resource_title}.
email_outro: Has rebut aquesta notificació perquè has sol·licitat poder contribuïr a la proposta "%{resource_title}".
@@ -327,10 +325,10 @@ ca:
email_subject: Has estat rebutjada com a contribuïdora de %{resource_title}.
notification_title: Has estat rebutjada per accedir com a contribuïdora de l'esborrany col·laboratiu %{resource_title}.
collaborative_draft_withdrawn:
- email_intro: %{author_name} %{author_nickname} ha retirat l'esborrany col·laboratiu %{resource_title}.
+ email_intro: '%{author_name} ha retirat l''esborrany col·laboratiu: %{resource_title}.'
email_outro: Has rebut aquesta notificació perquè vas contribuir a la proposta "%{resource_title}".
- email_subject: "%{author_name} %{author_nickname} ha retirat l'esborrany col·laboratiu %{resource_title}."
- notification_title: %{author_name} %{author_nickname}ha retirat l'esborrany col·laboratiu %{resource_title}.
+ email_subject: "%{author_name} ha retirat l'esborrany col·laboratiu: %{resource_title}."
+ notification_title: '%{author_name}ha retirat l''esborrany col·laboratiu: %{resource_title}.'
creation_enabled:
email_intro: 'Ara pots crear noves propostes a %{participatory_space_title}! Comença a participar a aquesta pàgina:'
email_outro: Has rebut aquesta notificació perquè estàs seguint l'espai "%{participatory_space_title}". Pots deixar de rebre notificacions seguint l'enllaç anterior.
@@ -352,10 +350,10 @@ ca:
email_subject: La proposta "%{resource_title}" s'ha fusionat amb una altra
notification_title: Una administradora ha fusionat la proposta "%{resource_title} amb una altra.
proposal_published:
- email_intro: '%{author_name} %{author_nickname}, a qui segueixes, ha publicat una nova proposta anomenada "%{resource_title}". Consulta i contribueix:'
- email_outro: Has rebut aquesta notificació perquè estàs seguint a "%{author_nickname}". Pots deixar de rebre notificacions seguint l'enllaç anterior.
- email_subject: Nova proposta "%{resource_title}" de %{author_nickname}
- notification_title: La proposta %{resource_title} ha estat publicada per %{author_name} %{author_nickname}.
+ email_intro: '%{author_name}, a qui segueixes, ha publicat una nova proposta anomenada "%{resource_title}". Consulta i contribueix:'
+ email_outro: Has rebut aquesta notificació perquè estàs seguint l'espai %{author_name}. Pots deixar de rebre notificacions seguint l'enllaç anterior.
+ email_subject: Nova proposta "%{resource_title}" de %{author_name}
+ notification_title: La proposta "%{resource_title}" va ser publicada per %{author_name} .
proposal_published_for_space:
email_intro: La proposta "%{resource_title}" s'ha afegit a l'espai "%{participatory_space_title}", que segueixes.
email_outro: Has rebut aquesta notificació perquè estàs seguint l'espai "%{participatory_space_title}". Pots deixar de rebre notificacions seguint l'enllaç anterior.
@@ -661,6 +659,7 @@ ca:
number_of_proposals: Es publicaran les respostes a %{number} propostes
select_a_proposal: Si us plau, selecciona una proposta.
show:
+ address: Adreça
amendments_count: Número d'esmenes
assigned_evaluators: Avaluadores assignades
body: Cos
@@ -859,6 +858,7 @@ ca:
errors:
device_not_supported: El teu dispositiu no admet serveis d'ubicació. Si us plau, introdueix l'adreça postal completa manualment (tipus de via, nom de la via, número, codi postal i ciutat).
no_device_location: Si us plau, no hem pogut detectar la teva ubicació. Si us plau, introdueix l'adreça postal completa manualment (tipus de via, nom de la via, número, codi postal i ciutat).
+ locating: Localitzant...
use_my_location: Fer servir la meva ubicació actual
invite_coauthors:
cancel:
diff --git a/decidim-proposals/config/locales/cs.yml b/decidim-proposals/config/locales/cs.yml
index ccd7e14959611..622c9f9f25f74 100644
--- a/decidim-proposals/config/locales/cs.yml
+++ b/decidim-proposals/config/locales/cs.yml
@@ -63,10 +63,8 @@ cs:
allowed_file_content_types: 'Neplatný typ dokumentu. Jsou povoleny pouze soubory s následujícími příponami: %{types}'
proposal:
attributes:
- add_documents:
- needs_to_be_reattached: Potřebuje být znovu připojen
- add_photos:
- needs_to_be_reattached: Potřebuje být znovu připojen
+ add_attachments:
+ needs_to_be_reattached: Vyžaduje být znovu připojen
body:
cant_be_equal_to_template: nelze se rovnat šabloně
identical: A název nemůže být totožný
@@ -96,6 +94,7 @@ cs:
proposal:
budget_text: Návrh %{link} byl vytvořen
import_from_proposal_text: 'Stal se z něj tento návrh: %{link}'
+ import_to_proposal_text: Tento návrh %{link} byl vytvořen
merge_from_proposal_text: 'Stal se z něj tento návrh: %{link}'
merge_to_proposal_text: 'Tento návrh byl vytvořen: %{link}'
split_from_proposal_text: 'Stal se z něj tento návrh: %{link}'
@@ -134,10 +133,7 @@ cs:
values:
'false': Návrhy
'true': Pozměňovací návrhy
- proposal_state_id_eq:
- label: Stav
state_eq:
- label: Stav
values:
accepted: Přijato
evaluating: Hodnocení
@@ -186,7 +182,7 @@ cs:
collaborative_drafts_enabled: Společné koncepty povoleny
collaborative_drafts_enabled_help: Funkce „Spolunávrhy“ bude odstraněna v Decidim v0.32. Organizace, které ji používají, mohou přejít na novou funkci spoluautorství.
comments_enabled: Komentáře povoleny
- comments_max_length: Maximální délka komentáře (ponechte 0 pro výchozí hodnotu)
+ comments_max_length: Maximální počet znaků na komentář (ponechte 0 pro výchozí hodnotu)
default_sort_order: Výchozí řazení návrhu
default_sort_order_help: Automaticky znamená, že pokud je hlasování povoleno, návrhy se zobrazují seřazené náhodně, a pokud je hlasování zablokováno, pak se zobrazují seřazené podle počtu hlasů.
default_sort_order_options:
@@ -285,17 +281,13 @@ cs:
email_intro: '%{author_name} vytvořil soukromou poznámku v %{resource_title}. Podívejte se na administrátorský panel.'
email_outro: Obdrželi jste toto oznámení, protože můžete návrh vyhodnotit.
email_subject: Někdo zanechal poznámku na návrh %{resource_title}.
- notification_title: %{author_name} %{author_nickname} vytvořil soukromou poznámku v %{resource_title}. Podívejte se na administrátorský panel.
proposal_note_mentioned:
- email_intro: Byli jste zmíněni v soukromé poznámce v "%{resource_title}" od "%{author_name}"%{author_nickname}". Podívejte se na administrátorský panel.
email_outro: Obdrželi jste toto oznámení, protože jste byli zmíněni v soukromé poznámce.
email_subject: Někdo vás zmínil v poznámce k návrhu %{resource_title}.
- notification_title: Byl jste zmíněn v soukromé poznámce v %{resource_title} od %{author_name} %{author_nickname}. Podívejte se na administrátorský panel.
proposal_note_replied:
email_intro: '%{author_name} odpověděl na vaši soukromou poznámku v %{resource_title}. Podívejte se na admin panel.'
email_outro: Obdrželi jste toto oznámení, protože jste autorem poznámky.
email_subject: "%{author_name} odpověděl na vaši soukromou poznámku v %{resource_title}."
- notification_title: %{author_name} %{author_nickname} odpověděl na vaši soukromou poznámku v %{resource_title}. Podívejte se na administrátorský panel.
coauthor_accepted_invite:
notification_title: %{coauthor_name} přijal vaši pozvánku, aby se stal spoluautorem návrhu %{resource_title}.
coauthor_invited:
@@ -312,17 +304,14 @@ cs:
email_intro: '%{requester_name} byl přijat k přístupu jako přispěvatel konceptu spolupráce %{resource_title}.'
email_outro: Obdrželi jste toto oznámení, protože jste spolupracovníkem %{resource_title}.
email_subject: "%{requester_name} byl přijat k přístupu jako přispěvatel %{resource_title}."
- notification_title: %{requester_name} %{requester_nickname} je přijat k přístupu jako přispěvatel ke společnému návrhu %{resource_title}.
collaborative_draft_access_rejected:
email_intro: '%{requester_name} byl odmítnut přístup jako přispěvatel konceptu spolupráce %{resource_title}.'
email_outro: Obdrželi jste toto oznámení, protože jste spolupracovníkem %{resource_title}.
email_subject: "%{requester_name} byl odmítnut pro přístup jako přispěvatel k %{resource_title} kolektivnímu návrhu."
- notification_title: %{requester_name} %{requester_nickname} byl odmítnut k přístupu jako přispěvatel ke společnému návrhu %{resource_title}.
collaborative_draft_access_requested:
email_intro: '%{requester_name} požádal o přístup jako přispěvatel. Můžete přijmout nebo odmítnout požadavek ze stránky společného konceptu %{resource_title}.'
email_outro: Obdrželi jste toto oznámení, protože jste spolupracovníkem %{resource_title}.
email_subject: "%{requester_name} požádal o přístup k příspěvku na %{resource_title}."
- notification_title: %{requester_name} %{requester_nickname} požádal o přístup k přispění ke společnému návrhu %{resource_title}. Prosím, přijměte nebo odmítněte žádost.
collaborative_draft_access_requester_accepted:
email_intro: Byl jste přijat k přístupu jako přispěvatel konceptu spolupráce %{resource_title}.
email_outro: Obdrželi jste toto oznámení, protože jste požádali o spolupráci %{resource_title}.
@@ -334,10 +323,7 @@ cs:
email_subject: Byl jste odmítnut jako přispěvatel %{resource_title}.
notification_title: Byl jsi odmítnut přístup jako přispěvatel na %{resource_title} společném návrhu.
collaborative_draft_withdrawn:
- email_intro: %{author_name} %{author_nickname} stáhl %{resource_title} společný koncept.
email_outro: Obdrželi jste toto oznámení, protože jste spolupracovníkem %{resource_title}.
- email_subject: "%{author_name} %{author_nickname} stáhl společný koncept %{resource_title}."
- notification_title: %{author_name} %{author_nickname}stáhl%{resource_title} společný koncept.
creation_enabled:
email_intro: 'Nyní můžete vytvořit nové návrhy v %{participatory_space_title}! Začněte se účastnit této stránky:'
email_outro: Toto oznámení jste obdrželi, protože jste sledovali %{participatory_space_title}. Po předchozím propojení můžete přestat přijímat oznámení.
@@ -358,11 +344,6 @@ cs:
email_outro: Obdrželi jste toto oznámení, protože jste autorem návrhu.
email_subject: Návrh %{resource_title} byl sloučen
notification_title: Návrh %{resource_title} byl sloučen administrátorem.
- proposal_published:
- email_intro: '%{author_name} %{author_nickname}, kterého sledujete, zveřejnil nový návrh nazvaný "%{resource_title}". Omrkněte ho a přispějte:'
- email_outro: Toto oznámení jste obdrželi, protože sledujete %{author_nickname}. Na předchozím odkazu můžete přestat přijímat oznámení.
- email_subject: Nový návrh "%{resource_title}" od %{author_nickname}
- notification_title: Byl zveřejněn návrh %{resource_title} od %{author_name} %{author_nickname}.
proposal_published_for_space:
email_intro: Návrh "%{resource_title}" byl přidán k "%{participatory_space_title}", který sledujete.
email_outro: Toto oznámení jste obdrželi, protože jste sledovali "%{participatory_space_title}". Můžete jej odhlásit od předchozího odkazu.
diff --git a/decidim-proposals/config/locales/de.yml b/decidim-proposals/config/locales/de.yml
index b45401739fa61..d6a2cfceb938a 100644
--- a/decidim-proposals/config/locales/de.yml
+++ b/decidim-proposals/config/locales/de.yml
@@ -53,6 +53,7 @@ de:
file: Datei
proposals_import:
import_proposals: Vorschläge importieren
+ keep_answers: Status und Antworten beibehalten
keep_authors: Behalten Sie die ursprünglichen Autoren
errors:
models:
@@ -62,10 +63,8 @@ de:
allowed_file_content_types: 'Ungültiger Dokumententyp. Nur Dateien mit folgenden Erweiterungen sind erlaubt: %{types}'
proposal:
attributes:
- add_documents:
- needs_to_be_reattached: Der Anhang muss erneut angehängt werden
- add_photos:
- needs_to_be_reattached: Der Anhang muss erneut angehängt werden
+ add_attachments:
+ needs_to_be_reattached: Muss erneut angehängt werden
body:
cant_be_equal_to_template: kann nicht gleich der Vorlage sein
identical: UND Titel dürfen nicht identisch sein
@@ -176,8 +175,9 @@ de:
can_accumulate_votes_beyond_threshold: Stimmen können nach Erreichen des Schwellwerts weiter gesammelt werden
clear_all: Alles löschen
collaborative_drafts_enabled: Kollaborative Entwürfe aktiviert
+ collaborative_drafts_enabled_help: Die Funktion "Gemeinsame Entwürfe" wird in Decidim v0.32 entfernt. Organisationen, die sie nutzen, können auf die neue Funktion zur gemeinsamen Autorenschaft von Vorschlägen umsteigen.
comments_enabled: Kommentare aktiviert
- comments_max_length: Maximale Länge der Kommentare (0 für Standardwert)
+ comments_max_length: Maximale Zeichenanzahl pro Kommentar (0 für Standardwert)
default_sort_order: Standardsortierung für Vorschläge
default_sort_order_help: Standardmäßig bedeutet, dass bei aktivierten Stimmensammlung die Vorschläge nach Zufall und bei deaktivierter Stimmensammlung nach den meist gewählten Vorschläge sortiert werden.
default_sort_order_options:
@@ -190,7 +190,7 @@ de:
recent: Neueste
with_more_authors: Mit mehr Autoren
define_taxonomy_filters: Bitte definieren Sie einige Filter für diesen partizipativen Bereich, bevor Sie diese Einstellung verwenden.
- edit_time: Vorschläge können vor Ablauf dieser Zeit von den Autoren bearbeitet werden
+ edit_time: Autoren können Vorschläge während dieser Zeit nach der Einreichung bearbeiten
edit_time_units:
days: Tage
hours: Stunden
@@ -276,17 +276,17 @@ de:
email_intro: '%{author_name} hat eine private Notiz unter %{resource_title} erstellt. Jetzt im Admin-Panel anzeigen.'
email_outro: Sie haben diese Benachrichtigung erhalten, weil Sie den Vorschlag bewerten können.
email_subject: Jemand hat eine Notiz für Vorschlag %{resource_title} erstellt.
- notification_title: %{author_name} hat eine private Notiz unter %{resource_title} erstellt. Jetzt im Admin-Panel anzeigen.
+ notification_title: %{author_name} hat eine private Notiz zu %{resource_title} erstellt. Im Admin-Bereich finden Sie die Details.
proposal_note_mentioned:
- email_intro: Sie wurden in einer privaten Notiz in "%{resource_title}" von "%{author_name}" "%{author_nickname}" erwähnt. Jetzt im Admin-Panel anzeigen.
+ email_intro: Sie wurden von "%{author_name}" in einer privaten Notiz zu "%{resource_title}" erwähnt. Im Admin-Bereich finden Sie die Details.
email_outro: Sie haben diese Benachrichtigung erhalten, weil Sie in einer privaten Notiz erwähnt wurden.
email_subject: Jemand hat Sie in einer Notiz zum Vorschlag "%{resource_title}" erwähnt.
- notification_title: Sie wurden in einer privaten Notiz unter "%{resource_title}" von %{author_name} %{author_nickname} erwähnt. Jetzt im Admin-Panel anzeigen.
+ notification_title: Sie wurden von %{author_name} in einer privaten Notiz zu %{resource_title} erwähnt. Im Admin-Bereich finden Sie die Details.
proposal_note_replied:
email_intro: '%{author_name} hat deine private Notiz unter %{resource_title} beantwortet. Jetzt im Admin-Panel anzeigen.'
email_outro: Sie haben diese Benachrichtigung erhalten, weil Sie der Autor der Noitz sind.
email_subject: "%{author_name} hat auf Ihre private Notiz unter %{resource_title} geantwortet."
- notification_title: %{author_name} hat Ihre private Notiz unter %{resource_title} beantworter. Jetzt im Admin-Panel anzeigen.
+ notification_title: %{author_name} hat auf Ihre private Notiz zu %{resource_title} geantwortet. Im Admin-Bereich finden Sie die Details.
coauthor_accepted_invite:
notification_title: %{coauthor_name} hat Ihre Einladung angenommen, mitverfassende Person des Vorschlags %{resource_title} zu werden.
coauthor_invited:
@@ -303,17 +303,17 @@ de:
email_intro: '%{requester_name} wurde zur Mitwirkung am kollaborativen Entwurf %{resource_title} akzeptiert.'
email_outro: Sie haben diese Benachrichtigung erhalten, weil Sie bei %{resource_title} mitwirken.
email_subject: "%{requester_name} wurde zur Mitwirkung an %{resource_title} akzeptiert."
- notification_title: %{requester_name} %{requester_nickname} wurde zur Mitwirkung am kollaborativen Entwurf %{resource_title}angenommen.
+ notification_title: %{requester_name} wurde als Mitwirkende/r für den gemeinsamen Entwurf %{resource_title}angenommen.
collaborative_draft_access_rejected:
email_intro: '%{requester_name} wurde als Mitwirkender des kollaborativen Entwurfs %{resource_title} abgelehnt.'
email_outro: Sie haben diese Benachrichtigung erhalten, weil Sie bei %{resource_title} mitwirken.
email_subject: "%{requester_name} wurde als Mitwirkender des kollaborativen Entwurfs %{resource_title} abgelehnt."
- notification_title: %{requester_name} %{requester_nickname} wurde als Mitwirkender beim kollaborativen Entwurf %{resource_title}abgelehnt.
+ notification_title: %{requester_name} wurde als Mitwirkende/r für den gemeinsamen Entwurf %{resource_title}abgelehnt.
collaborative_draft_access_requested:
email_intro: '%{requester_name} hat um Zugriff auf Ihren kollaborativen Entwurf angefragt. Sie können den Antrag auf der Seite des kollaborativen Entwurfs %{resource_title}annehmen oder ablehnen.'
email_outro: Sie haben diese Benachrichtigung erhalten, weil Sie bei %{resource_title} mitwirken.
email_subject: "%{requester_name} hat um Zugang zur Mitwirkung bei %{resource_title} angefragt."
- notification_title: %{requester_name} %{requester_nickname} hat Zugriff beantragt, um beim kollaborativen Entwurf %{resource_title} mitzuwirken. Bitte den Antrag akzeptieren oder ablehnen.
+ notification_title: %{requester_name} hat um Zugang zur Mitarbeit am gemeinsamen Entwurf %{resource_title} gebeten. Bitte nehmen Sie die Anfrage an oder lehnen Sie sie ab.
collaborative_draft_access_requester_accepted:
email_intro: Sie wurden zur Mitwirkung am kollaborativen Entwurf %{resource_title} akzeptiert.
email_outro: Sie haben diese Benachrichtigung erhalten, weil Sie angefragt haben, bei %{resource_title} mitzuwirken.
@@ -325,10 +325,10 @@ de:
email_subject: Sie wurden als Mitwirkender von %{resource_title} abgelehnt.
notification_title: Sie wurden als Mitwirkender beim kollaborativen Entwurf %{resource_title}abgelehnt.
collaborative_draft_withdrawn:
- email_intro: %{author_name} %{author_nickname} hat den kollaborativen Entwurf %{resource_title} zurückgezogen.
+ email_intro: %{author_name} hat den gemeinsamen Entwurf %{resource_title} zurückgezogen.
email_outro: Sie haben diese Benachrichtigung erhalten, weil Sie bei %{resource_title} mitwirken.
- email_subject: "%{author_name} %{author_nickname} hat den kollaborativen Entwurf %{resource_title} zurückgezogen."
- notification_title: %{author_name} %{author_nickname} hat den kollaborativen Entwurf %{resource_title}zurückgezogen.
+ email_subject: "%{author_name} hat den gemeinsamen Entwurf %{resource_title} zurückgezogen."
+ notification_title: %{author_name} hat den gemeinsamen Entwurf %{resource_title}zurückgezogen.
creation_enabled:
email_intro: 'Sie können jetzt neue Vorschläge in %{participatory_space_title} erstellen! Beteiligen Sie sich auf dieser Seite:'
email_outro: Sie haben diese Benachrichtigung erhalten, weil Sie %{participatory_space_title} folgen. Falls Sie keine solchen Benachrichtigungen mehr erhalten möchten, besuchen Sie den obigen Link.
@@ -338,6 +338,7 @@ de:
email_intro: 'Sie können ab jetzt Vorschläge auf %{participatory_space_title} unterstützen! Jetzt auf dieser Seite mitmachen:'
email_outro: Sie haben diese Benachrichtigung erhalten, weil Sie %{participatory_space_title} folgen. Falls Sie keine solchen Benachrichtigungen mehr erhalten möchten, besuchen Sie den angegebenen Link.
email_subject: Vorschläge können nun in %{participatory_space_title} unterstützt werden
+ notification_title: Sie können nun in %{participatory_space_title} damit beginnen, Vorschlägen zu gefallen.
proposal_mentioned:
email_intro: Ihr Vorschlag "%{mentioned_proposal_title}" wurde hier in den Kommentaren erwähnt.
email_outro: Sie haben diese Benachrichtigung erhalten, weil Sie ein Autor von "%{resource_title}" sind.
@@ -349,10 +350,10 @@ de:
email_subject: Der Vorschlag %{resource_title} wurde zusammengeführt
notification_title: Der Vorschlag %{resource_title} wurde von einem Admin zusammengeführt.
proposal_published:
- email_intro: '%{author_name} %{author_nickname}, dem Sie folgen, hat einen neuen Vorschlag mit dem Namen "%{resource_title}" veröffentlicht. Sehen Sie es sich an und reden Sie mit:'
- email_outro: Sie haben diese Benachrichtigung erhalten, weil Sie %{author_nickname} folgen. Falls Sie keine solchen Benachrichtigungen mehr erhalten möchten, besuchen Sie den obigen Link.
- email_subject: Neuer Vorschlag "%{resource_title}" von %{author_nickname}
- notification_title: Der Vorschlag %{resource_title} wurde von %{author_name} %{author_nickname} veröffentlicht.
+ email_intro: '%{author_name}, dem/der Sie folgen, hat einen neuen Vorschlag mit dem Titel "%{resource_title}" veröffentlicht. Schauen Sie ihn sich an und beteiligen Sie sich:'
+ email_outro: Sie haben diese Benachrichtigung erhalten, weil Sie %{author_name} folgen. Falls Sie keine solchen Benachrichtigungen mehr erhalten möchten, besuchen Sie den obigen Link.
+ email_subject: Neuer Vorschlag "%{resource_title}" von %{author_name}
+ notification_title: Der Vorschlag %{resource_title} wurde von %{author_name} veröffentlicht.
proposal_published_for_space:
email_intro: Der Vorschlag "%{resource_title}" wurde zu "%{participatory_space_title}" hinzugefügt, welchem Sie folgen.
email_outro: Sie haben diese Benachrichtigung erhalten, weil Sie "%{participatory_space_title}" folgen. Sie können den Erhalt von Benachrichtigungen über den vorherigen Link beenden.
@@ -453,7 +454,7 @@ de:
longitude: Der Längengrad des Vorschlags, falls er verortet wurde
meeting_urls: Die URLs der Veranstaltungen, an denen dieser Vorschlag vorgestellt oder diskutiert wurde
original_proposal: Referenz des ursprünglichen Vorschlags, falls es sich um einen Änderungsantrag handelt
- participatory_space: Zu welchem Bereich dieser Vorschlag gehört (z.B. Partizipationsprozesse oder Gremien)
+ participatory_space: Zu welchem Bereich dieser Vorschlag gehört (z.B. Partizipationsprozesse oder Versammlungen)
published_at: Das Datum, an dem dieser Vorschlag veröffentlicht wurde
reference: Die eindeutige Bezeichnung der Ressource auf dieser Plattform
related_proposals: Mit diesem Vorschlag verknüpfte Vorschläge
@@ -647,7 +648,7 @@ de:
statuses: Status
title: Vorschläge
unassign_from_evaluator: Zuweisung zur bewertenden Person aufheben
- unassign_from_evaluator_button:
+ unassign_from_evaluator_button: Zuweisung aufheben
update: Aktualisieren
manage_trash:
title: Gelöschte Vorschläge
@@ -658,6 +659,7 @@ de:
number_of_proposals: Antworten für %{number} Vorschläge werden veröffentlicht.
select_a_proposal: Bitte wählen Sie einen Vorschlag.
show:
+ address: Adresse
amendments_count: Anzahl der Ergänzungen
assigned_evaluators: Zugewiesene Personen
body: Haupttext
@@ -689,6 +691,7 @@ de:
create: Vorschläge importieren
no_components: In diesem partizipatorischen Bereich gibt es keine weiteren Vorschlagskomponenten, aus denen die Vorschläge importiert werden könnten.
select_component: Bitte wählen Sie eine Komponente aus
+ select_states: Importiert nur Vorschläge mit diesen Status. Wenn keiner ausgewählt ist, werden alle Vorschläge importiert.
title: Vorschläge aus einer anderen Komponente importieren
proposals_merges:
create:
@@ -855,6 +858,7 @@ de:
errors:
device_not_supported: Ihr Gerät unterstützt keine Ortungsdienste. Bitte geben Sie die Adresse manuell ein.
no_device_location: Leider konnten wir Ihren Standort nicht erkennen. Bitte geben Sie die Adresse manuell ein.
+ locating: Standort wird ermittelt …
use_my_location: Meinen aktuellen Standort verwenden
invite_coauthors:
cancel:
diff --git a/decidim-proposals/config/locales/el.yml b/decidim-proposals/config/locales/el.yml
index 87597edb64cbb..657844c8862b6 100644
--- a/decidim-proposals/config/locales/el.yml
+++ b/decidim-proposals/config/locales/el.yml
@@ -39,10 +39,6 @@ el:
allowed_file_content_types: 'Μη έγκυρος τύπος εγγράφου. Επιτρέπονται μόνο αρχεία με τις ακόλουθες επεκτάσεις: %{types}'
proposal:
attributes:
- add_documents:
- needs_to_be_reattached: Πρέπει να επισυναφθεί ξανά
- add_photos:
- needs_to_be_reattached: Πρέπει να επισυναφθεί ξανά
body:
cant_be_equal_to_template: δεν μπορεί να είναι ίσο με το πρότυπο
identical: ΚΑΙ ο τίτλος δεν μπορεί να είναι ίδιος
@@ -82,7 +78,6 @@ el:
'false': Προτάσεις
'true': Τροποποιήσεις
state_eq:
- label: Κατάσταση
values:
accepted: Έγινε αποδοχή
evaluating: Υπό αξιολόγηση
@@ -113,7 +108,6 @@ el:
attachments_allowed: Να επιτρέπονται τα συνημμένα
collaborative_drafts_enabled: Τα προσχέδια συνεργασίας ενεργοποιήθηκαν
comments_enabled: Τα σχόλια ενεργοποιήθηκαν
- comments_max_length: Μέγιστο μέγεθος σχολίων (Αφήστε το 0 για την προκαθορισμένη τιμή)
default_sort_order: Προεπιλεγμένη ταξινόμηση προτάσεων
default_sort_order_options:
most_commented: Πιο σχολιασμένες
@@ -176,17 +170,14 @@ el:
email_intro: '%{requester_name} έχει γίνει δεκτή η πρόσβαση ως συνεισφέρων του %{resource_title} συνεργατικού σχεδίου.'
email_outro: Έχετε λάβει αυτήν την ειδοποίηση επειδή είστε συνεργάτης του %{resource_title}.
email_subject: "Ο αιτών %{requester_name} έγινε δεκτός για πρόσβαση ως συμβάλλων για το στοιχείο %{resource_title}."
- notification_title: Ο αιτών %{requester_name} %{requester_nickname} έγινε δεκτός για πρόσβαση ως συμβάλλων στο %{resource_title} προσχέδιο συνεργασίας.
collaborative_draft_access_rejected:
email_intro: '%{requester_name} έχει απορριφθεί για πρόσβαση ως συνεισφέρων του %{resource_title} συνεργατικού σχεδίου.'
email_outro: Έχετε λάβει αυτήν την ειδοποίηση επειδή είστε συνεργάτης του %{resource_title}.
email_subject: "Ο αιτών %{requester_name} απορρίφθηκε για πρόσβαση ως συμβάλλων στο προσχέδιο συνεργασίας %{resource_title}."
- notification_title: Ο αιτών %{requester_name} %{requester_nickname}απορρίφθηκε για πρόσβαση ως συμβάλλων στο προσχέδιο συνεργασίας %{resource_title}.
collaborative_draft_access_requested:
email_intro: 'Ο/Η %{requester_name} ζήτησε πρόσβαση ως συνεισφέρων. Μπορείτε να αποδεχτείτε ή να απορρίψετε το αίτημα από τη σελίδα του συνεργατικού προσχεδίου %{resource_title}.'
email_outro: Έχετε λάβει αυτήν την ειδοποίηση επειδή είστε συνεργάτης του %{resource_title}.
email_subject: "Ο αιτών %{requester_name} ζήτησε πρόσβαση για να συνεισφέρει στο στοιχείο %{resource_title}."
- notification_title: Ο αιτών %{requester_name} %{requester_nickname} ζήτησε πρόσβαση για να συνεισφέρει στο προσχέδιο συνεργασίας %{resource_title}. Αποδεχτείτε ή απορρίψτε το αίτημα.
collaborative_draft_access_requester_accepted:
email_intro: Έχετε γίνει δεκτός να έχετε πρόσβαση ως συνεισφέρων του συνεργατικού σχεδίου %{resource_title}.
email_outro: Έχετε λάβει αυτήν την ειδοποίηση επειδή ζητήσατε να γίνετε συνεργάτης του %{resource_title}.
@@ -198,10 +189,7 @@ el:
email_subject: Απορριφθήκατε ως συμβάλλων για το στοιχείο %{resource_title}.
notification_title: Απορριφθήκατε για πρόσβαση ως συμβάλλων στο προσχέδιο συνεργασίας %{resource_title}.
collaborative_draft_withdrawn:
- email_intro: %{author_name} %{author_nickname} απέσυρε το %{resource_title} συνεργατικό προσχέδιο.
email_outro: Έχετε λάβει αυτήν την ειδοποίηση επειδή είστε συνεργάτης του %{resource_title}.
- email_subject: "Ο συντάκτης %{author_name} %{author_nickname} απέσυρε το προσχέδιο συνεργασίας %{resource_title}."
- notification_title: Ο συντάκτης %{author_name} %{author_nickname}απέσυρε το προσχέδιο συνεργασίας %{resource_title}.
creation_enabled:
email_intro: 'Τώρα μπορείτε να δημιουργήσετε νέες προτάσεις στον χώρο συμμετοχής %{participatory_space_title}! Ξεκινήστε να συμμετέχετε σε αυτήν τη σελίδα:'
email_outro: Λάβατε αυτήν την ειδοποίηση επειδή ακολουθείτε τον χώρο συμμετοχής %{participatory_space_title}. Μπορείτε να διακόψετε τη λήψη ειδοποιήσεων ακολουθώντας τον προηγούμενο σύνδεσμο.
@@ -212,11 +200,6 @@ el:
email_outro: Λάβατε αυτήν την ειδοποίηση επειδή είστε συντάκτης του στοιχείου «%{resource_title}».
email_subject: Έγινε αναφορά στην πρότασή σας «%{mentioned_proposal_title}»
notification_title: Η πρότασή σας «%{mentioned_proposal_title}» αναφέρθηκε σε αυτόν τον χώρο στα σχόλια.
- proposal_published:
- email_intro: 'Ο συντάκτης %{author_name} %{author_nickname}, τον οποίο ακολουθείτε, δημοσίευση μια νέα πρόταση με τον τίτλο «%{resource_title}». Δείτε την και συνεισφέρετε:'
- email_outro: Λάβατε αυτήν την ειδοποίηση επειδή ακολουθείτε τον συντάκτη %{author_nickname}. Μπορείτε να διακόψετε τη λήψη ειδοποιήσεων ακολουθώντας τον προηγούμενο σύνδεσμο.
- email_subject: Νέα πρόταση «%{resource_title}» από τον συντάκτη %{author_nickname}
- notification_title: Η πρόταση %{resource_title} δημοσιεύτηκε από τον συντάκτη %{author_name} %{author_nickname}.
proposal_published_for_space:
email_intro: Η πρόταση «%{resource_title}» προστέθηκε στον χώρο συμμετοχής «%{participatory_space_title}» που ακολουθείτε.
email_outro: Λάβατε αυτήν την ειδοποίηση επειδή ακολουθείτε τον χώρο συμμετοχής «%{participatory_space_title}». Μπορείτε να διακόψετε τη λήψη ειδοποιήσεων ακολουθώντας τον προηγούμενο σύνδεσμο.
diff --git a/decidim-proposals/config/locales/en.yml b/decidim-proposals/config/locales/en.yml
index 4528075ed165f..3de1994f40e7e 100644
--- a/decidim-proposals/config/locales/en.yml
+++ b/decidim-proposals/config/locales/en.yml
@@ -63,9 +63,7 @@ en:
allowed_file_content_types: 'Invalid document type. Only files with the following extensions are allowed: %{types}'
proposal:
attributes:
- add_documents:
- needs_to_be_reattached: Needs to be reattached
- add_photos:
+ add_attachments:
needs_to_be_reattached: Needs to be reattached
body:
cant_be_equal_to_template: cannot be equal to the template
@@ -128,9 +126,9 @@ en:
'false': Proposals
'true': Amendments
proposal_state_id_eq:
- label: State
+ label: Status
state_eq:
- label: State
+ label: Status
values:
accepted: Accepted
evaluating: Evaluating
@@ -179,7 +177,7 @@ en:
collaborative_drafts_enabled: Collaborative drafts enabled
collaborative_drafts_enabled_help: The Collaborative Drafts feature will be removed in Decidim v0.32. Organizations using it can switch to the new proposal co-authorship feature.
comments_enabled: Comments enabled
- comments_max_length: Comments max length (Leave 0 for default value)
+ comments_max_length: Max characters per comment (Leave 0 for default value)
default_sort_order: Default proposal sorting
default_sort_order_help: Automatic means that if the votes are enabled, the proposals will be shown sorted by random, and if the votes are blocked, then they will be sorted by the most voted.
default_sort_order_options:
@@ -278,17 +276,17 @@ en:
email_intro: '%{author_name} has created a private note in %{resource_title}. Check it out at the admin panel.'
email_outro: You have received this notification because you can evaluate the proposal.
email_subject: Someone left a note on proposal %{resource_title}.
- notification_title: %{author_name} %{author_nickname} has created a private note in %{resource_title}. Check it out at the admin panel.
+ notification_title: %{author_name} has created a private note in %{resource_title}. Check it out at the admin panel.
proposal_note_mentioned:
- email_intro: You have been mentioned in a private note in "%{resource_title}" by "%{author_name}" "%{author_nickname}". Check it out at the admin panel.
+ email_intro: You have been mentioned in a private note in "%{resource_title}" by "%{author_name}". Check it out at the admin panel.
email_outro: You have received this notification because you have been mentioned in a private note.
email_subject: Someone mentioned you in a note on the proposal %{resource_title}.
- notification_title: You have been mentioned in a private note in %{resource_title} by %{author_name} %{author_nickname}. Check it out at the admin panel.
+ notification_title: You have been mentioned in a private note in %{resource_title} by %{author_name}. Check it out at the admin panel.
proposal_note_replied:
email_intro: '%{author_name} has replied your private note in %{resource_title}. Check it out at the admin panel.'
email_outro: You have received this notification because you are the author of the note.
email_subject: "%{author_name} has replied your private note in %{resource_title}."
- notification_title: %{author_name} %{author_nickname} has replied your private note in %{resource_title}. Check it out at the admin panel.
+ notification_title: %{author_name} has replied your private note in %{resource_title}. Check it out at the admin panel.
coauthor_accepted_invite:
notification_title: %{coauthor_name} has accepted your invitation to become a co-author of the proposal %{resource_title}.
coauthor_invited:
@@ -305,17 +303,17 @@ en:
email_intro: '%{requester_name} has been accepted to access as a contributor of the %{resource_title} collaborative draft.'
email_outro: You have received this notification because you are a collaborator of %{resource_title}.
email_subject: "%{requester_name} has been accepted to access as a contributor of the %{resource_title}."
- notification_title: %{requester_name} %{requester_nickname} has been accepted to access as a contributor of the %{resource_title} collaborative draft.
+ notification_title: %{requester_name} has been accepted to access as a contributor of the %{resource_title} collaborative draft.
collaborative_draft_access_rejected:
email_intro: '%{requester_name} has been rejected to access as a contributor of the %{resource_title} collaborative draft.'
email_outro: You have received this notification because you are a collaborator of %{resource_title}.
email_subject: "%{requester_name} has been rejected to access as a contributor of the %{resource_title} collaborative draft."
- notification_title: %{requester_name} %{requester_nickname} has been rejected to access as a contributor of the %{resource_title} collaborative draft.
+ notification_title: %{requester_name} has been rejected to access as a contributor of the %{resource_title} collaborative draft.
collaborative_draft_access_requested:
email_intro: '%{requester_name} requested access as a contributor. You can accept or reject the request from the %{resource_title} collaborative draft page.'
email_outro: You have received this notification because you are a collaborator of %{resource_title}.
email_subject: "%{requester_name} requested access to contribute to %{resource_title}."
- notification_title: %{requester_name} %{requester_nickname} requested access to contribute to the %{resource_title} collaborative draft. Please accept or reject the request.
+ notification_title: %{requester_name} requested access to contribute to the %{resource_title} collaborative draft. Please accept or reject the request.
collaborative_draft_access_requester_accepted:
email_intro: You have been accepted to access as a contributor of the %{resource_title} collaborative draft.
email_outro: You have received this notification because you requested to become a collaborator of %{resource_title}.
@@ -327,10 +325,10 @@ en:
email_subject: You have been rejected as a contributor of %{resource_title}.
notification_title: You have been rejected to access as a contributor of the %{resource_title} collaborative draft.
collaborative_draft_withdrawn:
- email_intro: %{author_name} %{author_nickname} withdrawn the %{resource_title} collaborative draft.
+ email_intro: %{author_name} has withdrawn the %{resource_title} collaborative draft.
email_outro: You have received this notification because you are a collaborator of %{resource_title}.
- email_subject: "%{author_name} %{author_nickname} withdrawn the %{resource_title} collaborative draft."
- notification_title: %{author_name} %{author_nickname}withdrawn the %{resource_title} collaborative draft.
+ email_subject: "%{author_name} has withdrawn the %{resource_title} collaborative draft."
+ notification_title: %{author_name} has withdrawn the %{resource_title} collaborative draft.
creation_enabled:
email_intro: 'You can now create new proposals in %{participatory_space_title}! Start participating in this page:'
email_outro: You have received this notification because you are following %{participatory_space_title}. You can stop receiving notifications following the previous link.
@@ -352,10 +350,10 @@ en:
email_subject: The %{resource_title} proposal has been merged
notification_title: The %{resource_title} proposal has been merged by an admin.
proposal_published:
- email_intro: '%{author_name} %{author_nickname}, who you are following, has published a new proposal called "%{resource_title}". Check it out and contribute:'
- email_outro: You have received this notification because you are following %{author_nickname}. You can stop receiving notifications following the previous link.
- email_subject: New proposal "%{resource_title}" by %{author_nickname}
- notification_title: The %{resource_title} proposal was published by %{author_name} %{author_nickname}.
+ email_intro: '%{author_name}, who you are following, has published a new proposal called "%{resource_title}". Check it out and contribute:'
+ email_outro: You have received this notification because you are following %{author_name}. You can stop receiving notifications following the previous link.
+ email_subject: New proposal "%{resource_title}" by %{author_name}
+ notification_title: The %{resource_title} proposal was published by %{author_name}.
proposal_published_for_space:
email_intro: The proposal "%{resource_title}" has been added to "%{participatory_space_title}" that you are following.
email_outro: You have received this notification because you are following "%{participatory_space_title}". You can stop receiving notifications following the previous link.
@@ -661,6 +659,7 @@ en:
number_of_proposals: Answers for %{number} proposal's will be published?
select_a_proposal: Please select a proposal.
show:
+ address: Address
amendments_count: Amendments count
assigned_evaluators: Assigned evaluators
body: Body
@@ -859,6 +858,7 @@ en:
errors:
device_not_supported: Your device does not support location services. Please enter the address manually.
no_device_location: Sorry, we could not detect your location. Please enter the address manually.
+ locating: Locating...
use_my_location: Use my current location
invite_coauthors:
cancel:
diff --git a/decidim-proposals/config/locales/es-MX.yml b/decidim-proposals/config/locales/es-MX.yml
index 67ab88669e981..782ac7d1cb118 100644
--- a/decidim-proposals/config/locales/es-MX.yml
+++ b/decidim-proposals/config/locales/es-MX.yml
@@ -63,10 +63,8 @@ es-MX:
allowed_file_content_types: 'Tipo de documento no válido. Sólo se permiten archivos con las siguientes extensiones: %{types}'
proposal:
attributes:
- add_documents:
- needs_to_be_reattached: Es necesario volver a adjuntar el fichero
- add_photos:
- needs_to_be_reattached: Es necesario volver a adjuntar el fichero
+ add_attachments:
+ needs_to_be_reattached: Es necesario volver a adjuntar el archivo
body:
cant_be_equal_to_template: no puede ser igual a la plantilla
identical: Y el título no puede ser idéntico
@@ -179,7 +177,7 @@ es-MX:
collaborative_drafts_enabled: Habilitar borradores colaborativos
collaborative_drafts_enabled_help: La función "Borradores colaborativos" se eliminará próximamente. Si la utilizas a partir de la versión 0.32 de Decidim, podrás utilizar la funcionalidad de coautoría de propuestas.
comments_enabled: Comentarios habilitados
- comments_max_length: Longitud máxima de los comentarios (deja 0 si quieres mantener la configuración por defecto)
+ comments_max_length: Caracteres máximos por comentario (dejar 0 para el valor predeterminado)
default_sort_order: Ordenación por defecto de propuestas
default_sort_order_help: '''Automático'' significa que si los apoyos están habilitados, las propuestas se mostrarán en orden aleatorio, y si los apoyos están bloqueados, se ordenarán de más a menos apoyos.'
default_sort_order_options:
@@ -278,17 +276,17 @@ es-MX:
email_intro: '%{author_name} ha creado una nota privada en %{resource_title}. Puedes verlo en el panel de administración.'
email_outro: Has recibido esta notificación porque puedes valorar la propuesta.
email_subject: Alguien dejó una nota en la propuesta %{resource_title}.
- notification_title: %{author_name} %{author_nickname} ha creado una nota privada en %{resource_title}. Puedes verla en el panel de administración.
+ notification_title: %{author_name} ha creado una nota privada en %{resource_title}. Puedes verla en el panel de administración.
proposal_note_mentioned:
- email_intro: '"%{author_name}" "%{author_nickname}" te ha mencionado en una nota privada en "%{resource_title}". Puedes verla en el panel de administración.'
+ email_intro: '"%{author_name}" te ha mencionado en una nota privada en "%{resource_title}". Puedes verla en el panel de administración.'
email_outro: Has recibido esta notificación porque se te ha mencionado en una nota privada.
email_subject: Alguien dejó una nota en la propuesta %{resource_title}.
- notification_title: %{author_name} %{author_nickname} te ha mencionado en una nota privada en %{resource_title}. Puedes verla en el panel de administración.
+ notification_title: %{author_name} te ha mencionado en una nota privada en %{resource_title}. Puedes verla en el panel de administración.
proposal_note_replied:
email_intro: '%{author_name} ha respondido a tu nota privada en %{resource_title}. Puedes verlo en el panel de administración.'
email_outro: Has recibido esta notificación porque eres el autor de la nota privada.
email_subject: "%{author_name} ha respondido a tu nota privada en %{resource_title}."
- notification_title: %{author_name} %{author_nickname} ha respondido a tu nota privada en %{resource_title}. Puedes verlo en el panel de administración.
+ notification_title: %{author_name} ha respondido a tu nota privada en %{resource_title}. Puedes ver la respuesta desde el panel de administración.
coauthor_accepted_invite:
notification_title: %{coauthor_name} ha aceptado tu invitación para ser coautora de la propuesta "%{resource_title}".
coauthor_invited:
@@ -305,17 +303,17 @@ es-MX:
email_intro: '%{requester_name} ha sido aceptada para acceder como contribuidora del borrador colaborativo %{resource_title}.'
email_outro: Has recibido esta notificación porque eres una contribuidora de %{resource_title}.
email_subject: "%{requester_name} ha sido aceptado para acceder como contribuidor de %{resource_title}."
- notification_title: %{requester_name} %{requester_nickname} ha sido aceptado para acceder como colaborador del borrador colaborativo %{resource_title}.
+ notification_title: %{requester_name} ha sido aceptada para acceder como contribuidora del borrador colaborativo %{resource_title}.
collaborative_draft_access_rejected:
email_intro: 'Se ha denegado que %{requester_name} acceda como contribuidora del borrador colaborativo %{resource_title}.'
email_outro: Has recibido esta notificación porque eres una contribuidora de %{resource_title}.
email_subject: "%{requester_name} ha sido rechazado para acceder como contribuidor del borrador colaborativo %{resource_title}."
- notification_title: %{requester_name} %{requester_nickname} ha sido rechazado para acceder como contribuidor del borrador colaborativo %{resource_title}.
+ notification_title: 'Se ha rechazado que %{requester_name} acceda como contribuidora del borrador colaborativo: %{resource_title}.'
collaborative_draft_access_requested:
email_intro: '%{requester_name} ha solicitado acceso como contribuidora. Puede aceptar o rechazar la solicitud de la página de borrador colaborativo de %{resource_title}.'
email_outro: Has recibido esta notificación porque eres contribuidora de %{resource_title}.
email_subject: "%{requester_name} solicitó acceso para contribuir a %{resource_title}."
- notification_title: %{requester_name} %{requester_nickname} solicitó acceso para contribuir al borrador de colaboración %{resource_title}. Por favor aceptar o rechazar la solicitud.
+ notification_title: %{requester_name} ha solicitado acceso para contribuir al borrador colaborativo %{resource_title}. Acepta o deniega la solicitud.
collaborative_draft_access_requester_accepted:
email_intro: Has sido aceptada para acceder como contribuidora del borrador colaborativo %{resource_title}.
email_outro: Has recibido esta notificación porque has solicitado ser contribuidora de %{resource_title}.
@@ -327,10 +325,10 @@ es-MX:
email_subject: Has sido rechazado como contribuidor de %{resource_title}.
notification_title: Has sido rechazado para acceder como contribuidor al borrador colaborativo %{resource_title}.
collaborative_draft_withdrawn:
- email_intro: %{author_name} %{author_nickname} ha retirado el borrador colaborativo %{resource_title}.
+ email_intro: '%{author_name} ha retirado el borrador colaborativo: %{resource_title}.'
email_outro: Has recibido esta notificación porque eres contribuidora de %{resource_title}.
- email_subject: "%{author_name} %{author_nickname} ha retirado el borrador colaborativo %{resource_title}."
- notification_title: %{author_name} %{author_nickname}ha retirado el borrador colaborativo %{resource_title}.
+ email_subject: "%{author_name} ha retirado el borrador colaborativo: %{resource_title}."
+ notification_title: '%{author_name}ha retirado el borrador colaborativo: %{resource_title}.'
creation_enabled:
email_intro: '¡Ahora puedes crear nuevas propuestas en %{participatory_space_title}! Empieza a participar en esta página:'
email_outro: Recibiste esta notificación porque estás siguiendo %{participatory_space_title}. Puedes dejar de recibir notificaciones siguiendo el enlace anterior.
@@ -352,10 +350,10 @@ es-MX:
email_subject: La propuesta "%{resource_title}" se ha fusionado con otra
notification_title: Una administradora ha fusionado la propouesta "%{resource_title}" con otra.
proposal_published:
- email_intro: '%{author_name} %{author_nickname}, a quien sigues, ha publicado una nueva propuesta llamada "%{resource_title}". Échale un vistazo y contribuye:'
- email_outro: Recibiste esta notificación porque estás siguiendo a %{author_nickname}. Puedes dejar de recibir notificaciones desde el enlace anterior.
- email_subject: Nueva propuesta "%{resource_title}" por %{author_nickname}
- notification_title: La propuesta %{resource_title} fue publicada por %{author_name} %{author_nickname}.
+ email_intro: '%{author_name}, a quien sigues, ha publicado una nueva propuesta llamada: "%{resource_title}". Échale un vistazo y contribuye:'
+ email_outro: Has recibido esta notificación porque estás siguiendo la iniciativa %{author_name}. Puedes dejar de recibir notificaciones siguiendo el enlace anterior.
+ email_subject: Nueva propuesta "%{resource_title}" de %{author_name}
+ notification_title: La propuesta %{resource_title} fue publicada por %{author_name} .
proposal_published_for_space:
email_intro: La propuesta "%{resource_title}" se ha añadido a "%{participatory_space_title}" que estás siguiendo.
email_outro: Recibiste esta notificación porque estás siguiendo "%{participatory_space_title}". Puedes dejar de seguirlo desde el enlace anterior.
@@ -661,6 +659,7 @@ es-MX:
number_of_proposals: Se publicarán las respuestas a %{number} propuestas
select_a_proposal: Por favor, selecciona una propuesta.
show:
+ address: Dirección
amendments_count: Número de enmiendas
assigned_evaluators: Evaluadoras asignadas
body: Cuerpo
@@ -859,6 +858,7 @@ es-MX:
errors:
device_not_supported: Su dispositivo no soporta servicios de ubicación. Por favor, introduzca la dirección postal completa manualmente (tipo de vía, nombre de la vía, número, código postal y ciudad).
no_device_location: Lo sentimos, no hemos podido detectar tu ubicación. Por favor, introduce la dirección postal completa manualmente (tipo de vía, nombre de la vía, número, código postal y ciudad).
+ locating: Localizando...
use_my_location: Usar mi ubicación actual
invite_coauthors:
cancel:
diff --git a/decidim-proposals/config/locales/es-PY.yml b/decidim-proposals/config/locales/es-PY.yml
index e93e3d3f890c0..574e2582d2fd6 100644
--- a/decidim-proposals/config/locales/es-PY.yml
+++ b/decidim-proposals/config/locales/es-PY.yml
@@ -63,10 +63,8 @@ es-PY:
allowed_file_content_types: 'Tipo de documento no válido. Sólo se permiten archivos con las siguientes extensiones: %{types}'
proposal:
attributes:
- add_documents:
- needs_to_be_reattached: Es necesario volver a adjuntar el fichero
- add_photos:
- needs_to_be_reattached: Es necesario volver a adjuntar el fichero
+ add_attachments:
+ needs_to_be_reattached: Es necesario volver a adjuntar el archivo
body:
cant_be_equal_to_template: no puede ser igual a la plantilla
identical: Y el título no puede ser idéntico
@@ -179,7 +177,7 @@ es-PY:
collaborative_drafts_enabled: Habilitar borradores colaborativos
collaborative_drafts_enabled_help: La función "Borradores colaborativos" se eliminará próximamente. Si la utilizas a partir de la versión 0.32 de Decidim, podrás utilizar la funcionalidad de coautoría de propuestas.
comments_enabled: Comentarios habilitados
- comments_max_length: Longitud máxima de los comentarios (deja 0 si quieres mantener la configuración por defecto)
+ comments_max_length: Caracteres máximos por comentario (dejar 0 para el valor predeterminado)
default_sort_order: Ordenación por defecto de propuestas
default_sort_order_help: '''Automático'' significa que si los apoyos están habilitados, las propuestas se mostrarán en orden aleatorio, y si los apoyos están bloqueados, se ordenarán de más a menos apoyos.'
default_sort_order_options:
@@ -278,17 +276,17 @@ es-PY:
email_intro: '%{author_name} ha creado una nota privada en %{resource_title}. Puedes verlo en el panel de administración.'
email_outro: Has recibido esta notificación porque puedes valorar la propuesta.
email_subject: Alguien dejó una nota en la propuesta %{resource_title}.
- notification_title: %{author_name} %{author_nickname} ha creado una nota privada en %{resource_title}. Puedes verla en el panel de administración.
+ notification_title: %{author_name} ha creado una nota privada en %{resource_title}. Puedes verla en el panel de administración.
proposal_note_mentioned:
- email_intro: '"%{author_name}" "%{author_nickname}" te ha mencionado en una nota privada en "%{resource_title}". Puedes verla en el panel de administración.'
+ email_intro: '"%{author_name}" te ha mencionado en una nota privada en "%{resource_title}". Puedes verla en el panel de administración.'
email_outro: Has recibido esta notificación porque se te ha mencionado en una nota privada.
email_subject: Alguien dejó una nota en la propuesta %{resource_title}.
- notification_title: %{author_name} %{author_nickname} te ha mencionado en una nota privada en %{resource_title}. Puedes verla en el panel de administración.
+ notification_title: %{author_name} te ha mencionado en una nota privada en %{resource_title}. Puedes verla en el panel de administración.
proposal_note_replied:
email_intro: '%{author_name} ha respondido a tu nota privada en %{resource_title}. Puedes verlo en el panel de administración.'
email_outro: Has recibido esta notificación porque eres el autor de la nota privada.
email_subject: "%{author_name} ha respondido a tu nota privada en %{resource_title}."
- notification_title: %{author_name} %{author_nickname} ha respondido a tu nota privada en %{resource_title}. Puedes verlo en el panel de administración.
+ notification_title: %{author_name} ha respondido a tu nota privada en %{resource_title}. Puedes ver la respuesta desde el panel de administración.
coauthor_accepted_invite:
notification_title: %{coauthor_name} ha aceptado tu invitación para ser coautora de la propuesta "%{resource_title}".
coauthor_invited:
@@ -305,17 +303,17 @@ es-PY:
email_intro: '%{requester_name} ha sido aceptada para acceder como contribuidora del borrador colaborativo %{resource_title}.'
email_outro: Has recibido esta notificación porque eres una contribuidora de %{resource_title}.
email_subject: "%{requester_name} ha sido aceptado para acceder como contribuidor de %{resource_title}."
- notification_title: %{requester_name} %{requester_nickname} ha sido aceptado para acceder como colaborador del borrador colaborativo %{resource_title}.
+ notification_title: %{requester_name} ha sido aceptada para acceder como contribuidora del borrador colaborativo %{resource_title}.
collaborative_draft_access_rejected:
email_intro: 'Se ha denegado que %{requester_name} acceda como contribuidora del borrador colaborativo %{resource_title}.'
email_outro: Has recibido esta notificación porque eres una contribuidora de %{resource_title}.
email_subject: "%{requester_name} ha sido rechazado para acceder como contribuidor del borrador colaborativo %{resource_title}."
- notification_title: %{requester_name} %{requester_nickname} ha sido rechazado para acceder como contribuidor del borrador colaborativo %{resource_title}.
+ notification_title: 'Se ha rechazado que %{requester_name} acceda como contribuidora del borrador colaborativo: %{resource_title}.'
collaborative_draft_access_requested:
email_intro: '%{requester_name} ha solicitado acceso como contribuidora. Puede aceptar o rechazar la solicitud de la página de borrador colaborativo de %{resource_title}.'
email_outro: Has recibido esta notificación porque eres contribuidora de %{resource_title}.
email_subject: "%{requester_name} solicitó acceso para contribuir a %{resource_title}."
- notification_title: %{requester_name} %{requester_nickname} solicitó acceso para contribuir al borrador de colaboración %{resource_title}. Por favor aceptar o rechazar la solicitud.
+ notification_title: %{requester_name} ha solicitado acceso para contribuir al borrador colaborativo %{resource_title}. Acepta o deniega la solicitud.
collaborative_draft_access_requester_accepted:
email_intro: Has sido aceptada para acceder como contribuidora del borrador colaborativo %{resource_title}.
email_outro: Has recibido esta notificación porque has solicitado ser contribuidora de %{resource_title}.
@@ -327,10 +325,10 @@ es-PY:
email_subject: Has sido rechazado como contribuidor de %{resource_title}.
notification_title: Has sido rechazado para acceder como contribuidor al borrador colaborativo %{resource_title}.
collaborative_draft_withdrawn:
- email_intro: %{author_name} %{author_nickname} ha retirado el borrador colaborativo %{resource_title}.
+ email_intro: '%{author_name} ha retirado el borrador colaborativo: %{resource_title}.'
email_outro: Has recibido esta notificación porque eres contribuidora de %{resource_title}.
- email_subject: "%{author_name} %{author_nickname} ha retirado el borrador colaborativo %{resource_title}."
- notification_title: %{author_name} %{author_nickname}ha retirado el borrador colaborativo %{resource_title}.
+ email_subject: "%{author_name} ha retirado el borrador colaborativo: %{resource_title}."
+ notification_title: '%{author_name}ha retirado el borrador colaborativo: %{resource_title}.'
creation_enabled:
email_intro: '¡Ahora puedes crear nuevas propuestas en %{participatory_space_title}! Comienza a participar en esta página:'
email_outro: Recibiste esta notificación porque estás siguiendo %{participatory_space_title}. Puedes dejar de recibir notificaciones siguiendo el enlace anterior.
@@ -352,10 +350,10 @@ es-PY:
email_subject: La propuesta "%{resource_title}" se ha fusionado con otra
notification_title: Una administradora ha fusionado la propouesta "%{resource_title}" con otra.
proposal_published:
- email_intro: '%{author_name} %{author_nickname}, a quien sigues, ha publicado una nueva propuesta llamada "%{resource_title}". Échale un vistazo y contribuye:'
- email_outro: Recibiste esta notificación porque estás siguiendo %{author_nickname}. Puedes dejar de recibir notificaciones desde el enlace anterior.
- email_subject: Nueva propuesta "%{resource_title}" por %{author_nickname}
- notification_title: La propuesta %{resource_title} fue publicada por %{author_name} %{author_nickname}.
+ email_intro: '%{author_name}, a quien sigues, ha publicado una nueva propuesta llamada: "%{resource_title}". Échale un vistazo y contribuye:'
+ email_outro: Has recibido esta notificación porque estás siguiendo la iniciativa %{author_name}. Puedes dejar de recibir notificaciones siguiendo el enlace anterior.
+ email_subject: Nueva propuesta "%{resource_title}" de %{author_name}
+ notification_title: La propuesta %{resource_title} fue publicada por %{author_name} .
proposal_published_for_space:
email_intro: La propuesta "%{resource_title}" se ha añadido a "%{participatory_space_title}" que estás siguiendo.
email_outro: Recibiste esta notificación porque estás siguiendo "%{participatory_space_title}". Puedes dejar de seguirlo desde el enlace anterior.
@@ -661,6 +659,7 @@ es-PY:
number_of_proposals: Se publicarán las respuestas a %{number} propuestas
select_a_proposal: Por favor, selecciona una propuesta.
show:
+ address: Dirección
amendments_count: Número de enmiendas
assigned_evaluators: Evaluadoras asignadas
body: Cuerpo
@@ -859,6 +858,7 @@ es-PY:
errors:
device_not_supported: Su dispositivo no soporta servicios de ubicación. Por favor, introduzca la dirección postal completa manualmente (tipo de vía, nombre de la vía, número, código postal y ciudad).
no_device_location: Lo sentimos, no hemos podido detectar tu ubicación. Por favor, introduce la dirección postal completa manualmente (tipo de vía, nombre de la vía, número, código postal y ciudad).
+ locating: Localizando...
use_my_location: Usar mi ubicación actual
invite_coauthors:
cancel:
diff --git a/decidim-proposals/config/locales/es.yml b/decidim-proposals/config/locales/es.yml
index fbffc54c0963b..82c6340a8df44 100644
--- a/decidim-proposals/config/locales/es.yml
+++ b/decidim-proposals/config/locales/es.yml
@@ -63,10 +63,8 @@ es:
allowed_file_content_types: 'Tipo de documento no válido. Sólo se permiten archivos con las siguientes extensiones: %{types}'
proposal:
attributes:
- add_documents:
- needs_to_be_reattached: Es necesario volver a adjuntar el fichero
- add_photos:
- needs_to_be_reattached: Es necesario volver a adjuntar el fichero
+ add_attachments:
+ needs_to_be_reattached: Es necesario volver a adjuntar el archivo
body:
cant_be_equal_to_template: no puede ser igual a la plantilla
identical: Y el título no puede ser idéntico
@@ -179,7 +177,7 @@ es:
collaborative_drafts_enabled: Borradores colaborativos habilitados
collaborative_drafts_enabled_help: La función "Borradores colaborativos" se eliminará próximamente. Si la utilizas a partir de la versión 0.32 de Decidim, podrás utilizar la funcionalidad de coautoría de propuestas.
comments_enabled: Comentarios habilitados
- comments_max_length: Longitud máxima de los comentarios (deja 0 si quieres mantener la configuración por defecto)
+ comments_max_length: Caracteres máximos por comentario (dejar 0 para el valor predeterminado)
default_sort_order: Ordenación por defecto de propuestas
default_sort_order_help: '''Automático'' significa que si los apoyos están habilitados, las propuestas se mostrarán en orden aleatorio, y si los apoyos están bloqueados, se ordenarán de más a menos apoyos.'
default_sort_order_options:
@@ -278,17 +276,17 @@ es:
email_intro: '%{author_name} ha creado una nota privada en %{resource_title}. Puedes verlo en el panel de administración.'
email_outro: Has recibido esta notificación porque puedes valorar la propuesta.
email_subject: Alguien dejó una nota en la propuesta %{resource_title}.
- notification_title: %{author_name} %{author_nickname} ha creado una nota privada en %{resource_title}. Puedes verla en el panel de administración.
+ notification_title: %{author_name} ha creado una nota privada en %{resource_title}. Puedes verla en el panel de administración.
proposal_note_mentioned:
- email_intro: '"%{author_name}" "%{author_nickname}" te ha mencionado en una nota privada en "%{resource_title}". Puedes verla en el panel de administración.'
+ email_intro: '"%{author_name}" te ha mencionado en una nota privada en "%{resource_title}". Puedes verla en el panel de administración.'
email_outro: Has recibido esta notificación porque se te ha mencionado en una nota privada.
email_subject: Alguien dejó una nota en la propuesta %{resource_title}.
- notification_title: %{author_name} %{author_nickname} te ha mencionado en una nota privada en %{resource_title}. Puedes verla en el panel de administración.
+ notification_title: %{author_name} te ha mencionado en una nota privada en %{resource_title}. Puedes verla en el panel de administración.
proposal_note_replied:
email_intro: '%{author_name} ha respondido a tu nota privada en %{resource_title}. Puedes verlo en el panel de administración.'
email_outro: Has recibido esta notificación porque eres el autor de la nota privada.
email_subject: "%{author_name} ha respondido a tu nota privada en %{resource_title}."
- notification_title: %{author_name} %{author_nickname} ha respondido a tu nota privada en %{resource_title}. Puedes verlo en el panel de administración.
+ notification_title: %{author_name} ha respondido a tu nota privada en %{resource_title}. Puedes ver la respuesta desde el panel de administración.
coauthor_accepted_invite:
notification_title: %{coauthor_name} ha aceptado tu invitación para ser coautora de la propuesta "%{resource_title}".
coauthor_invited:
@@ -305,17 +303,17 @@ es:
email_intro: '%{requester_name} ha sido aceptada para acceder como contribuidora del borrador colaborativo %{resource_title}.'
email_outro: Has recibido esta notificación porque eres una contribuidora de %{resource_title}.
email_subject: "%{requester_name} ha sido aceptada para acceder como contribuidora de %{resource_title}."
- notification_title: %{requester_name} %{requester_nickname} ha sido aceptada para acceder como contribuidora del borrador colaborativo %{resource_title}.
+ notification_title: %{requester_name} ha sido aceptada para acceder como contribuidora del borrador colaborativo %{resource_title}.
collaborative_draft_access_rejected:
email_intro: 'Se ha denegado que %{requester_name} acceda como contribuidora del borrador colaborativo %{resource_title}.'
email_outro: Has recibido esta notificación porque has contribuido en la propuesta "%{resource_title}".
email_subject: "%{requester_name} ha sido rechazado para acceder como contribuidora del borrador colaborativo %{resource_title}."
- notification_title: %{requester_name} %{requester_nickname} ha sido rechazado para acceder como contribuidora del borrador colaborativo %{resource_title}.
+ notification_title: 'Se ha rechazado que %{requester_name} acceda como contribuidora del borrador colaborativo: %{resource_title}.'
collaborative_draft_access_requested:
email_intro: '%{requester_name} ha solicitado acceso como contribuidora. Puede aceptar o rechazar la solicitud de la página de borrador colaborativo de %{resource_title}.'
email_outro: Has recibido esta notificación porque has contribuido en la propuesta "%{resource_title}".
email_subject: "%{requester_name} ha solicitado acceso para contribuir a %{resource_title}."
- notification_title: %{requester_name} %{requester_nickname} solicitó acceso para contribuir al borrador colaborativo %{resource_title}. Por favor, acepta o rechaza la solicitud.
+ notification_title: %{requester_name} ha solicitado acceso para contribuir al borrador colaborativo %{resource_title}. Acepta o deniega la solicitud.
collaborative_draft_access_requester_accepted:
email_intro: Has sido aceptada para acceder como contribuidora del borrador colaborativo %{resource_title}.
email_outro: Has recibido esta notificación porque has solicitado contribuir en la propuesta "%{resource_title}".
@@ -327,10 +325,10 @@ es:
email_subject: Has sido rechazada como contribuidora de %{resource_title}.
notification_title: Has sido rechazada como contribuidora del borrador colaborativo %{resource_title}.
collaborative_draft_withdrawn:
- email_intro: %{author_name} %{author_nickname} ha retirado el borrador colaborativo %{resource_title}.
+ email_intro: '%{author_name} ha retirado el borrador colaborativo: %{resource_title}.'
email_outro: Has recibido esta notificación porque eres contribuidora de %{resource_title}.
- email_subject: "%{author_name} %{author_nickname} ha retirado el borrador colaborativo %{resource_title}."
- notification_title: %{author_name} %{author_nickname}ha retirado el borrador colaborativo %{resource_title}.
+ email_subject: "%{author_name} ha retirado el borrador colaborativo: %{resource_title}."
+ notification_title: '%{author_name}ha retirado el borrador colaborativo: %{resource_title}.'
creation_enabled:
email_intro: '¡Ahora puedes crear nuevas propuestas en %{participatory_space_title}! Empieza a participar en esta página:'
email_outro: Recibiste esta notificación porque estás siguiendo %{participatory_space_title}. Puedes dejar de recibir notificaciones siguiendo el enlace anterior.
@@ -352,10 +350,10 @@ es:
email_subject: La propuesta "%{resource_title}" se ha fusionado con otra
notification_title: Una administradora ha fusionado la propouesta "%{resource_title}" con otra.
proposal_published:
- email_intro: '%{author_name} %{author_nickname}, a quien sigues, ha publicado una nueva propuesta llamada "%{resource_title}". Échale un vistazo y contribuye:'
- email_outro: Recibiste esta notificación porque estás siguiendo a %{author_nickname}. Puedes dejar de recibir notificaciones siguiendo el enlace anterior.
- email_subject: Nueva propuesta "%{resource_title}" de %{author_nickname}
- notification_title: La propuesta %{resource_title} ha sido publicada por %{author_name} %{author_nickname}.
+ email_intro: '%{author_name}, a quien sigues, ha publicado una nueva propuesta llamada: "%{resource_title}". Échale un vistazo y contribuye:'
+ email_outro: Has recibido esta notificación porque estás siguiendo la iniciativa %{author_name}. Puedes dejar de recibir notificaciones siguiendo el enlace anterior.
+ email_subject: Nueva propuesta "%{resource_title}" de %{author_name}
+ notification_title: La propuesta %{resource_title} fue publicada por %{author_name} .
proposal_published_for_space:
email_intro: La propuesta "%{resource_title}" se ha añadido en el espacio "%{participatory_space_title}", que estás siguiendo.
email_outro: Recibiste esta notificación porque estás siguiendo el espacio "%{participatory_space_title}". Puedes dejar de recibir notificaciones siguiendo el enlace anterior.
@@ -661,6 +659,7 @@ es:
number_of_proposals: Se publicarán las respuestas a %{number} propuestas
select_a_proposal: Por favor, selecciona una propuesta.
show:
+ address: Dirección
amendments_count: Número de enmiendas
assigned_evaluators: Evaluadoras asignadas
body: Cuerpo
@@ -859,6 +858,7 @@ es:
errors:
device_not_supported: Su dispositivo no soporta servicios de ubicación. Por favor, introduzca la dirección postal completa manualmente (tipo de vía, nombre de la vía, número, código postal y ciudad).
no_device_location: Lo sentimos, no hemos podido detectar tu ubicación. Por favor, introduce la dirección postal completa manualmente (tipo de vía, nombre de la vía, número, código postal y ciudad).
+ locating: Localizando...
use_my_location: Usar mi ubicación actual
invite_coauthors:
cancel:
diff --git a/decidim-proposals/config/locales/eu.yml b/decidim-proposals/config/locales/eu.yml
index da502c0d20194..9472e26699699 100644
--- a/decidim-proposals/config/locales/eu.yml
+++ b/decidim-proposals/config/locales/eu.yml
@@ -27,7 +27,7 @@ eu:
longitude: Longitudea
scope_id: Eremua
state: Egoera
- title: Izena
+ title: Izenburua
proposal_answer:
answer: Erantzuna
cost: Kostua
@@ -53,7 +53,7 @@ eu:
file: Fitxategia
proposals_import:
import_proposals: Proposamenak inportatu
- keep_answers: Egoera-orriak eta erantzunak mantendu
+ keep_answers: Mantendu egoera eta erantzunak
keep_authors: Mantendu jatorrizko egileak
errors:
models:
@@ -63,10 +63,8 @@ eu:
allowed_file_content_types: 'Dokumentu mota hau ez da onartzen. Honako hauek onartzen dira: %{types}'
proposal:
attributes:
- add_documents:
- needs_to_be_reattached: Fitxategia berriro erantsi behar da
- add_photos:
- needs_to_be_reattached: Fitxategia berriro erantsi behar da
+ add_attachments:
+ needs_to_be_reattached: Berriro erantsi behar da
body:
cant_be_equal_to_template: ezin da plantilla bezalakoa izan
identical: ETA izenburua ezin da berdina izan
@@ -111,7 +109,7 @@ eu:
one: Oharra
other: Oharrak
decidim/proposals/proposal_vote:
- one: Babesa
+ one: Babes bat
other: Babesak
decidim:
admin:
@@ -149,12 +147,12 @@ eu:
search_placeholder:
id_string_or_title_cont: Bilatu %{collection} edo ID edo izenburuaren arabera
tooltips:
- cannot_edit_proposal_info: Ezin da editatu proposamen hau parte-hartzaile batek sortua bezala edo botorik jaso badu
+ cannot_edit_proposal_info: Ezin da proposamen hau editatu, parte-hartzaile batek sortu duelako edo babesik jaso duelako
deleted_proposal_states_info: Ezin da ezabatu proposamen-egoera hau, proposamen batzuk esleitu baitzaizkio
deleted_proposals_info: Ezin da ezabatu proposamen hau
application:
geocoding:
- not_configured: Geokodifikazioa ez dago konfiguratuta!
+ not_configured: Geokodetzea ez dago konfiguratuta!
components:
proposals:
actions:
@@ -162,8 +160,8 @@ eu:
comment: Iruzkindu
create: Proposamena sortu
like: Atsegin dut
- vote: Eman babesa
- vote_comment: Bozkatu iruzkina
+ vote: Babesa eman
+ vote_comment: Iruzkinari babesa eman
withdraw: Kendu
name: Proposamenak
settings:
@@ -174,24 +172,24 @@ eu:
announcement: Jakinarazpena
attachments_allowed: Onartu eranskinak
attachments_allowed_help: Aukera hau gaitzean, besterik adierazi ezean, proposamenak lauki moduan agertuko dira eta lehen irudia txartelan agertuko da.
- can_accumulate_votes_beyond_threshold: Babesak metatu ditzake atalasetik haratago
+ can_accumulate_votes_beyond_threshold: Babesak atalasetik harago metatu daitezke
clear_all: Garbitu dena
collaborative_drafts_enabled: Zirriborro kolaboratiboak gaituta
- collaborative_drafts_enabled_help: Elkarlaneko zirriborroak Decidim v0.32an ezabatuko dira. Erabiltzen duten erakundeek proposamen berriaren egilekidetzara pasa daitezke.
+ collaborative_drafts_enabled_help: Zirriborro kolaboratiboen funtzioa Decidim v0.32 bertsioan kenduko da. Erabiltzen duten erakundeek proposamenen egilekidetzaren funtzio berria erabil dezakete.
comments_enabled: Iruzkinak gaituta
- comments_max_length: Iruzkinen gehieneko luzera (utzi 0 lehenetsitako ezarpenei eusteko)
+ comments_max_length: Iruzkin bakoitzeko gehieneko karaktereak (utzi 0 aurrez zehaztutako baliorako)
default_sort_order: Proposamenen hurrenkera lehenetsia
- default_sort_order_help: Automatikoak esan nahi du, babesak gaituta badaude, proposamenak ausaz ordenatuta agertuko direla, eta babesak blokeatuta badaude, bozkatuenaren arabera ordenatuko direla.
+ default_sort_order_help: Automatikoak esan nahi du babesak gaituta badaude proposamenak ausaz ordenatuta erakutsiko direla, eta babesak blokeatuta badaude, babes gehien jaso dutenen arabera ordenatuko direla.
default_sort_order_options:
automatic: Automatikoa
most_commented: Iruzkin gehien dituztenak
most_followed: Jarraitzaile gehien dituztenak
- most_liked: Like gehien
+ most_liked: Atsegin gehien
most_voted: Bozkatuenak
random: Ausazko ordena
recent: Berrienetatik zaharrenetara
with_more_authors: Egile gehien dituztenak
- define_taxonomy_filters: Mesedez, eszenatoki hau erabili aurretik, zehaztu espazio parte-hartzaile honetarako iragazki batzuk.
+ define_taxonomy_filters: Mesedez, eszenatoki hau erabili aurretik, zehaztu partaidetza-espazio honetarako iragazki batzuk.
edit_time: Egileek proposamenak edita ditzakete denbora tarte honen barruan
edit_time_units:
days: Egunak
@@ -240,26 +238,26 @@ eu:
answers_with_costs: Proposamenei erantzunetan kostua gaitu
comments_blocked: Iruzkinak blokeatuta
creation_enabled: Parte-hartzaileek proposamenak sor ditzakete
- creation_enabled_readonly: Aukera hori desaktibatu egiten da Testuen Parte-hartzaile funtzionaltasuna aktibatzean. Testu parte-hartzaile gisa proposamenak kargatzeko, egin klik Testu parte-hartzaileak botoian eta jarraitu jarraibideak.
+ creation_enabled_readonly: Ezarpen hau desgaitu egiten da Partaidetza-testuak funtzionalitatea aktibatzen duzunean. Proposamenak partaidetza-testu gisa igotzeko, egin klik Partaidetza-testuak botoian eta jarraitu argibideei.
default_sort_order: Proposamenen lehenetsitako hurrenkera
- default_sort_order_help: Automatikoak esan nahi du, babesak gaituta badaude, proposamenak ausaz ordenatuta agertuko direla, eta babesak blokeatuta badaude, bozkatuenaren arabera ordenatuko direla.
+ default_sort_order_help: Automatikoa izateak esan nahi du babesak gaituta badaude proposamenak ausaz ordenatuta erakutsiko direla, eta babesak blokeatuta badaude, babes gehien jaso dutenen arabera ordenatuko direla.
default_sort_order_options:
automatic: Automatikoa
most_commented: Iruzkin gehien dituztenak
most_followed: Jarraitzaile gehien dituztenak
- most_liked: Like gehien
- most_voted: Botu gehien dituztenak
+ most_liked: Atsegin gehien
+ most_voted: Babes gehien dituztenak
random: Ausazko ordena
recent: Berrienetatik zaharrenetara
with_more_authors: Egile gehiago dituztenak
- likes_blocked: Likeak blokeatuta
- likes_enabled: Likeak gaituta
+ likes_blocked: Atsegin dut aukerak blokeatuta
+ likes_enabled: Atsegin dut aukerak gaituta
proposal_answering_enabled: Proposamenei erantzuna gaituta
publish_answers_immediately: Argitaratu berehala proposamen erantzunak
publish_answers_immediately_help_html: 'Kontuz, proposamenen bati hau gaitu gabe erantzuten badiozu, aukeratu eta argitaratzeko ekintza erabiliz argitaratu beharko dituzula. Nola funtzionatzen duen jakiteko, ikus proposals'' answers documentation pageproposamenen erantzunen dokumentazio-orria.'
- votes_blocked: Botoak blokeatuta
- votes_enabled: Botoak gaituta
- votes_hidden: Boto ezkutuak (babesak gaituta badaude, hau markatuz boto kopurua ezkutuan geratuko da)
+ votes_blocked: Babesak blokeatuta
+ votes_enabled: Babesak gaituta
+ votes_hidden: Babesak ezkutatuta (babesak gaituta badaude, hau markatzean babes kopurua ezkutatuko da)
download_your_data:
show:
proposal_comments: Esportatu proposamenen iruzkinak
@@ -273,22 +271,22 @@ eu:
email_intro: '"%{resource_title}" proposamenaren ebaluatzaile rola eman dizute. Horrek esan nahi zugan konfidantza jarri dela datozen egunetan zure iritzia eta erantzun egokia emateko. Ikusi proposamena the admin panel admin. panelean.'
email_outro: Jakinarazpen hau jaso duzu proposamena ebaluatu ahal duzulako.
email_subject: '%{resource_title} proposamenaren ebaluatzaile rola eman dizute.'
- notification_title: %{resource_title} proposamenaren ebaluatzaile rola eman dizute. Ikusi proposamena admin. panelean.
+ notification_title: %{resource_title} proposamenaren ebaluatzaile gisa esleitu zaituzte. Ikusi administrazio-panelean.
proposal_note_created:
email_intro: '%{author_name} parte-hartzaileak ohar pribatu bat jarri du hemen: %{resources ce_title}. Ikusi hemen admin panelean.'
email_outro: Jakinarazpen hau jaso duzu proposamena ebaluatu ahal duzulako.
email_subject: Norbaitek ohar bat utzi du %{resource_title} proposamenean.
- notification_title: '%{author_name} %{author_nickname} parte-hartzaileak ohar pribatu bat sortu du hemen: %{resource_title}. Ikusi hemen admin. panelean.'
+ notification_title: %{author_name} parte-hartzaileak ohar pribatu bat sortu du %{resource_title} proposamenean. Ikusi administrazio-panelean.
proposal_note_mentioned:
email_intro: '"%{author_name}" "%{author_nickname}" parte-hartzaileak ohar pribatu batean aipatu zaitu hemen "%{resource_title}". Ikusi hemen admin. panelean.'
email_outro: Jakinarazpen hau jaso duzu ohar pribatu batean aipatu zaituztelako.
email_subject: Norbaitek aipatu zaitu ohar batean %{resource_title} proposamenean.
- notification_title: %{author_name} %{author_nickname} parte-hartzaileak ohar pribatu batean aipatu zaitu, hemen %{resource_title}. Ikusi hemen admin. panelean.
+ notification_title: %{resource_title}(e) ko ohar pribatu batean aipatu zaituzte, %{author_name}(r) en bidez. Egiaztatu administrazio-panelean.%{resource_title}.
proposal_note_replied:
email_intro: '%{author_name} parte-hartzaileak zure ohar pribatua erantzun du hemen: %{resource_title}. Ikusi hemen admin panelean.'
email_outro: Jakinarazpen hau jaso duzu oharraren egilea zarelako.
email_subject: "%{author_name} parte-hartzaileak zure ohar pribatua erantzun du hemen: %{resource_title}."
- notification_title: '%{author_name} %{author_nickname} parte-hartzaileak zure ohar pribatua erantzun du hemen: %{resource_title}. Ikusi hemen admin. panelean.'
+ notification_title: %{author_name} parte-hartzaileak %{resource_title} proposamenean zure ohar pribatuari erantzun dio. Ikusi administrazio-panelean.
coauthor_accepted_invite:
notification_title: %{coauthor_name} parte-hartzaileak onartu egin du zure gonbidapena %{resource_title} proposamenaren egilekidea izateko.
coauthor_invited:
@@ -302,63 +300,63 @@ eu:
coauthor_rejected_invite:
notification_title: %{coauthor_name} parte-hartzaileak %{resource_title} proposamenaren egilekidea izateko egin duzun gonbidapena errefusatu du.
collaborative_draft_access_accepted:
- email_intro: '%{requester_name} onartu da %{resource_title} zirriborro koloboratiboan laguntzaile gisa sartzeko.'
- email_outro: Jakinarazpen hau jaso duzu %{resource_title}-ko kolaboratzailea zarelako.
- email_subject: "%{requester_name} onartu egin da %{resource_title}-an laguntzaile gisa sartezko."
- notification_title: %{requester_name} %{requester_nickname}kolaboratzaile gisa onartua izan da%{resource_title} ziriborro kolaboratiboan.
+ email_intro: '%{requester_name} parte-hartzailea laguntzaile gisa sartzeko onartu dute %{resource_title} zirriborro kolaboratiboan.'
+ email_outro: Jakinarazpen hau jaso duzu %{resource_title} elementuaren kolaboratzailea zarelako.
+ email_subject: "%{requester_name} parte-hartzailea %{resource_title} elementuan laguntzaile gisa sartzeko onartu dute."
+ notification_title: %{requester_name}laguntzaile gisa sartzeko onartu dute%{resource_title} zirriborro kolaboratiboan.
collaborative_draft_access_rejected:
- email_intro: '%{requester_name} baztertu egin da %{resource_title}-an laguntzaile gisa sartzeko.'
- email_outro: Jakinarazpen hau jaso duzu%{resource_title}-ko kolaboratzailea zarelako.
- email_subject: "%{requester_name} ez da onartu du kolaboratzaile gisa sartzeko %{resource_title} ziriborro kolaboratiboan."
- notification_title: %{requester_name} %{requester_nickname}baztertu egin da < %{resource_title} ziriborro kolaboratiboan.
+ email_intro: '%{requester_name} parte-hartzaileari %{resource_title} zirriborro kolaboratiboan laguntzaile gisa sartzea ukatu diote.'
+ email_outro: Jakinarazpen hau jaso duzu %{resource_title} elementuaren kolaboratzailea zarelako.
+ email_subject: "%{requester_name} parte-hartzaileari %{resource_title} zirriborro kolaboratiboan laguntzaile gisa sartzea ukatu diote."
+ notification_title: %{requester_name} parte-hartzaileari laguntzaile gisa sartzea ukatu diote%{resource_title} zirriborro kolaboratiboan.
collaborative_draft_access_requested:
- email_intro: '%{requester_name} -k eskatu du laguntzaile gisa sartzeko. onartu edo baztertu egin dezakezu %{resource_title} testu kolaboratibo ziriborroan.'
- email_outro: Jakinarazpen hau jaso duzu %{resource_title}-ko kolaboratzailea zarelako.
- email_subject: "%{requester_name}-k sarbidea eskatu du %{resource_title}-an aritzeko."
- notification_title: %{requester_name} %{requester_nickname} parte-hartzaileak eskatu du %{resource_title} ziriborro kolaboratiboan parte hartzeko. Mesedez, onartu edo baztertu eskaera.
+ email_intro: '%{requester_name} parte-hartzaileak laguntzaile gisa sartzeko sarbidea eskatu du. Eskaera onartu edo baztertu dezakezu %{resource_title} zirriborro kolaboratiboaren orrian.'
+ email_outro: Jakinarazpen hau jaso duzu %{resource_title} elementuaren kolaboratzailea zarelako.
+ email_subject: "%{requester_name} parte-hartzaileak %{resource_title} elementuan laguntzaile gisa aritzeko sarbidea eskatu du."
+ notification_title: %{requester_name} parte-hartzaileak %{resource_title} zirriborro kolaboratiboan laguntzaile gisa parte hartzeko sarbidea eskatu du. Mesedez onartu edo baztertu eskaera.
collaborative_draft_access_requester_accepted:
email_intro: Onartu zaituzte %{resource_title} testu kolaboratiboan laguntzailea izateko.
email_outro: Jakinarazpen hau jaso duzu %{resource_title}-ren kolaboratzailea izatea eskatu duzulako.
email_subject: '%{resource_title} -ren laguntzaile gisa onartu zaituzte.'
- notification_title: Onartu zaituzte %{resource_title} ziriborro kolaboratiboan parte hartzeko.
+ notification_title: Laguntzaile gisa sartzeko onartu zaituzte%{resource_title} zirriborro kolaboratiboan.
collaborative_draft_access_requester_rejected:
email_intro: Baztertu da %{resource_title} testu kolaboratiboan laguntzailea izateko eskaera.
email_outro: Jakinarazpen hau jaso duzu hemen %{resource_title} kolaboratzaile izatea eskatu duzulako.
email_subject: Baztertu egin zaituzte laguntzaile gisa hemen %{resource_title}.
notification_title: 'Baztertu egin zaituzte, kolaboratzaile gisa, hemen sartzeko: %{resource_title}.'
collaborative_draft_withdrawn:
- email_intro: %{author_name} %{author_nickname}-k kendu du %{resource_title} testu kolaboraboaren zirriborroa.
- email_outro: Jakinarazpen hau jaso duzu %{resource_title} ko kolaboratzailea zarelako.
- email_subject: "%{author_name} %{author_nickname} egileak %{resource_title} zirriborroa kendu du."
- notification_title: %{author_name} %{author_nickname} egileak kendu du %{resource_title} zirriborro kolaboratiboa.
+ email_intro: %{author_name} egileak kendu du %{resource_title} zirriborro kolaboratiboa.
+ email_outro: Jakinarazpen hau jaso duzu %{resource_title} elementuaren kolaboratzailea zarelako.
+ email_subject: "%{author_name} egileak %{resource_title} zirriborroa kendu du."
+ notification_title: %{author_name} egileak erretiratu egin du%{resource_title} zirriborro kolaboratiboa.
creation_enabled:
email_intro: 'Orain %{participatory_space_title} proposamen berriak sor ditzakezu! Hasi parte hartzen orri honetan:'
email_outro: Jakinarazpen hau jaso duzu %{participatory_space_title} jarraitzen ari zarelako. Jakinarazpenak jasotzeari utzi ahal diozu aurreko estekan.
email_subject: 'Proposamenak orain eskuragarri hemen: %{participatory_space_title}'
- notification_title: 'Orain honi proposamen berriak aurkeztu ahal dizkiozu hemen: %{participatory_space_title}.'
+ notification_title: Orain proposamen berriak aurkez ditzakezu %{participatory_space_title} espazioan.
liking_enabled:
- email_intro: 'Proposamenak atsegin ditzakezu hemen: %{participatory_space_title} Hasi orri honetan parte hartzen:'
+ email_intro: '%{participatory_space_title} partaidetza-espazioan proposamenei Atsegin dut eman diezaiekezu! Hasi parte hartzen orri honetan:'
email_outro: Jakinarazpena jaso duzu %{participatory_space_title} jarraituz gero. Aurreko esteka jarraituz jakinarazpenak jasotzeari uztea erabaki dezakezu.
email_subject: 'Proposamenak atxikitzen hasi dira hemen: %{participatory_space_title}'
- notification_title: 'Orain has zaitezke proposamena bozkatzen hemen: s in %{participatory_space_title}.'
+ notification_title: Orain proposamenei Atsegin dut ematen has zaitezke %{participatory_space_title} partaidetza-espazioan.
proposal_mentioned:
email_intro: Zure proposamen hau "%{mentioned_proposal_title}" aipatu da iruzkinen espazioan.
email_outro: Jakinarazpen hau jaso duzu "%{resource_title}" egilea zarelako.
email_subject: Zure "%{mentioned_proposal_title}" proposamena aipatu egin da
- notification_title: Zure"%{mentioned_proposal_title}" proposamena espazio honetako iruzkinetan apiatu da.
+ notification_title: Zure "%{mentioned_proposal_title}" proposamena iruzkinetan aipatu dute espazio honetan.
proposal_merged:
email_intro: 'Administratzaile batek zure proposamena, "%{resource_title}", beste batekin batu du. Ikusi orri honetan:'
email_outro: Jakinarazpen hau jaso duzu proposamenaren egilea zarelako.
email_subject: '%{resource_title} proposamena beste batekin batu da'
notification_title: Administratzaile batek %{resource_title} proposamena beste batekin batu du.
proposal_published:
- email_intro: 'Jarraitzen ari zaren %{author_name} %{author_nickname} parte-hartzaileak beste proposamen bat argitaratu du, "%{resource_title}" izenekoa. Begiratu eta lagundu hobetzen:'
- email_outro: Jakinarazpen hau jaso duzu %{author_nickname} jarraitzen duzulako. Aurreko estekan jakinarazpenak jasotzeari utzi ahal diozu.
- email_subject: '%{author_nickname} parte-hartzaileak proposamen berria egin du: "%{resource_title}"'
- notification_title: %{author_name} %{author_nickname} parte-hartzaileak %{resource_title} proposamena argitaratu du.
+ email_intro: '%{author_name} egileak, jarraitzen ari zarenak,"%{resource_title}" izeneko proposamena argitaratu du. Begiratu eta lagundu hobetzen:'
+ email_outro: Jakinarazpen hau jaso duzu %{author_name} jarraitzen ari zarelako. Aurreko estekan jarraitzeari utzi ahal diozu.
+ email_subject: '%{author_name} parte-hartzaileak proposamen berria egin du: "%{resource_title}"'
+ notification_title: %{resource_title} proposamena %{author_name} parte-hartzaileak argitaratu zuen.
proposal_published_for_space:
- email_intro: '"%{resource_title}" proposamena jarraizten ari zaren ondorengo "%{participatory_space_title}" espazioan erantsi zaizu.'
- email_outro: Jakinarazpen hau jaso duzu "%{participatory_space_title}" jarraitzen ari zarelako. Jarraitzeari uzti ahal diozu aurreko estekan.
+ email_intro: Jarraitzen ari zaren "%{participatory_space_title}" espaziora "%{resource_title}" proposamena gehitu da.
+ email_outro: Jakinarazpen hau jaso duzu "%{participatory_space_title}" jarraitzen ari zarelako. Aurreko esteka erabilita jakinarazpenak jasotzeari utz diezaiokezu.
email_subject: '%{participatory_space_title} espazioan "%{resource_title}" proposamen berria egin da'
notification_title: %{resource_title} proposamena %{participatory_space_title}-era gehitu du %{author} egileak.
notification_title_official: 'Proposamen ofiziala hona gehitu da: %{resource_title}.'
@@ -374,44 +372,44 @@ eu:
email_subject: Jarraitzen ari zaren proposamen batek (%{state}) egoera aldatu du
notification_title: Zure proposamenak %{resource_title} egoera aldatu du eta "%{state}" egoera jarri du.
proposal_update_taxonomies:
- email_intro: 'Admintratzaile batek eguneratu ditu zure %{resource_title}" proposamenaren taxonomiak, ikus ezazu orri honetan:'
+ email_intro: 'Administratzaile batek zure "%{resource_title}" proposamenaren taxonomiak eguneratu ditu, ikusi orri honetan:'
email_outro: Jakinarazpen hau jaso duzu proposamenaren egilea zarelako.
email_subject: '%{resource_title} proposatutako taxonomiak eguneratu egin dira'
notification_title: %{resource_title} proposamenaren taxonomiak administratzaile batek eguneratu ditu.
rejected_coauthorship:
- notification_title: Baztertu duzu %{author_name} ren gonbidapena %{resource_title} proposamenaren egilekidea izateko.
+ notification_title: Baztertu duzu %{author_name} parte-hartzailearen gonbidapena %{resource_title} proposamenaren egilekidea izateko.
voting_enabled:
- email_intro: 'Proposamenak bozkatu ditzakezu hemen: %{participatory_space_title} Hasi orri honetan parte hartzen:'
- email_outro: Jakinarazpen hau jaso duzu %{participatory_space_title} jarraitzen duzulako. Jakinarazpenak jasotzeari uti ahal diozu aurreko estekan.
- email_subject: 'Proposamenak bozkatzen hasi dira hemen: %{participatory_space_title}'
- notification_title: 'Orain has zaitezke proposamena bozkatzen hemen: s in %{participatory_space_title}'
+ email_intro: 'Proposamenei babesa eman diezaiekezu %{participatory_space_title} partaidetza-espazioan! Hasi parte hartzen orri honetan:'
+ email_outro: Jakinarazpen hau jaso duzu %{participatory_space_title} jarraitzen duzulako. Aurreko esteka erabilita jakinarazpenak jasotzeari utz diezaiokezu.
+ email_subject: '%{participatory_space_title} partaidetza-espazioan proposamenei babesa emateko epea hasi da'
+ notification_title: Orain proposamenei babesa ematen has zaitezke %{participatory_space_title} partaidetza-espazioan
gamification:
badges:
accepted_proposals:
conditions:
- Aukeratu zure intereseko partaidetza-espazioa proposamenak bidaltzeko
- Egin daitezkeen proposamenak egiten saiatu. Horrela onartuak izateko aukera gehiago dute.
- description: Garaikur hau proposamen berriekin aktiboki parte hartzen duzunean eta horiek onartzen direnean ematen da
+ description: Garaikur hau proposamen berriekin aktiboki parte hartzen duzunean eta horiek onartzen direnean ematen da.
description_another: Parte-hartzaile honek %{score} proposamen onartu ditu.
description_own: Zure %{score} proposamen onartu dira.
- name: Onartutako proposamenak
+ name: Proposamen onartuak
next_level_in: Lortu %{score} proposamen gehiago onartuak izatea hurrengo mailara igotzeko!
unearned_another: Parte-hartzaile honek ez du oraindik lortu bere proposamen bat ere onartua izatea.
unearned_own: Oraindik ez duzu onartutako proposamenik.
proposal_votes:
conditions:
- Nabigatu eta irakurri besteen proposamenak
- - Eman botoa gustuko dituzun edo interesgarriak iruditzen zaizkizun proposamenei
- description: Bereizgarri hau ematen da beste pertsona batzuen proposmenak bozkatzen dituzunean.
- description_another: Parte-hartzaile honek %{score} proposamen bozkatu ditu.
- description_own: '%{score} proposamen bozkatu dituzu.'
- name: Proposamenetarako botoak
- next_level_in: Bozkatu %{score} proposamen gehiago hurrengo mailara iristeko!
- unearned_another: Parte-hartzaile honek oraindik ez du proposamenik bozkatu.
- unearned_own: Oraindik ez duzu proposamenik bozkatu.
+ - Babesa eman gustuko dituzun edo interesgarriak iruditzen zaizkizun proposamenei
+ description: Garaikur hau beste pertsona batzuen proposamenei babesa ematen diezunean lortzen duzu.
+ description_another: Parte-hartzaile honek %{score} proposameni babesa eman die.
+ description_own: Babesa eman diezu %{score} proposameni.
+ name: Proposamenaren babesak
+ next_level_in: Babesa eman beste %{score} proposameni hurrengo mailara iristeko!
+ unearned_another: Parte-hartzaile honek oraindik ez dio proposamen bati ere babesik eman.
+ unearned_own: Oraindik ez diozu proposamen bati ere babesik eman.
proposals:
conditions:
- - Aukeratu zure interesekoa den partaidetza-espazioa, gaitutako proposamenak aurkeztuta
+ - Aukeratu proposamenak aurkeztea gaituta duen intereseko partaidetza-espazioa
- Sortu beste proposamen bat
description: Garaikur hau proposamen berriekin modu aktiboan parte hartzen duzunean ematen da.
description_another: Parte-hartzaile honek %{score} proposamen sortu ditu.
@@ -427,7 +425,7 @@ eu:
author: Iruzkin hau egin duen parte-hartzailearen izena
body: Iruzkin bera
commentable_id: Iruzkingarriaren identifikazio bakarra
- commentable_type: Iruzkingarri mota (emaitza, proposamena... izan bazen)
+ commentable_type: Iruzkin daitekeen elementuaren mota (emaitza, proposamena eta abar)
created_at: Zein datatan sortu zen iruzkin hau
depth: Iruzkin hau hiru iruzkinetan dago (erantzuna edo erantzunaren erantzuna bada)
id: Identifikazioa iruzkin honetarako
@@ -452,9 +450,9 @@ eu:
id: Proposamenaren identifikatzaile bakarra
is_amend: Proposamen honek beste proposamen bat dakarren
latitude: Proposamenaren latitudea, baldin eta kokagune fisikoa badu
- likes: Proposamen honek duen atxikimendu ("like") kopurua
+ likes: Proposamen honek dituen atseginen kopurua ("Atsegin dut")
longitude: Proposamenaren luzera, baldin eta kokagune fisikoa badu
- meeting_urls: Proposamen hau aurkeztu edo eztabaidatu zen bileretako URLak
+ meeting_urls: Proposamen hau aurkeztu edo eztabaidatu zen topaketen URLak
original_proposal: Hasierako proposamenaren erreferentzia, zuzenketa bat bada
participatory_space: Zein espaziotakoa den proposamen hau (adibidez, Partaidetza-prozesua edo Batzarra)
published_at: Zein datatan argitaratu zen proposamen hau
@@ -480,11 +478,11 @@ eu:
delete_proposal_state_confirm: Ziur zaude egoera hau ezabatu nahi duzula?
destroy: Ezabatu egoera
edit_proposal: Proposamena editatu
- edit_proposal_state: Egoera editaru
+ edit_proposal_state: Egoera editatu
import: Inportatu proposamenak beste osagai batetik
mark_as_coauthor: Markatu egilekide gisa
mark_as_coauthor_confirm: Ziur zaude parte-hartzaile hau egilekide gisa markatu nahi duzula? Parte-hartzaileak jakinarazpena jasoko du gonbidapena onartzeko edo baztertzeko.
- new: Proposamen berria
+ new: Beste proposamen bat
new_proposal_state: Beste egoera bat
participatory_texts: Testu parte-hartzaileak
show: Ikusi proposamena
@@ -495,14 +493,14 @@ eu:
deleted_proposals_info: Ezabatutako proposamenak berreskura daitezke zaborrontzitik.
preview: Aurreikusi
view_deleted_proposals: Ikusi ezabatutako proposamenak
- deprecation_warning_collaborative_drafts_html: "⚠️ Deprezazioaren Oharra. Elkarlaneko Zirriborroak ezabatuko dira Decidim v0.32an. Erabiltzen duten erakundeek proposamen berriaren egilekidetzara pasa daitezke."
+ deprecation_warning_collaborative_drafts_html: "⚠️ Zaharkitze-oharra. Zirriborro kolaboratiboen funtzioa Decidim v0.32 bertsioan kenduko da. Erabiltzen duten erakundeek proposamenen egilekidetzaren funtzio berria erabil dezakete."
evaluation_assignments:
create:
invalid: Arazo bat izan da proposamenak ebaluatzaile bati esleitzean.
success: Proposamenak zuzen esleituta ebaluatzaileari.
delete:
- invalid: Arazo bat izan da ebaluatzaile bati proposamenak desesleitzean.
- success: Proposamenentzako ebaluatzailea zuzen desesleitua.
+ invalid: Arazo bat gertatu da proposamenak ebaluatzaileari esleitzeari uztean.
+ success: Ebaluatzailea proposamenetatik behar bezala desesleitu da.
exports:
proposal_comments: Iruzkinak
proposals: Proposamenak
@@ -617,8 +615,8 @@ eu:
success: Errorea zuzen eguneratua
proposals:
answer:
- bulk_answer_error: Ezin izan dira [%{proposals}] proposamenak erantzun IDen bidez erroreengatik "%{template}" txantiloia aplikatuz. Erantzunen txantiloia osagai horretarako espero den formatuarekin bat datorrela egiazta daiteke, banaka aplikatuz.
- bulk_answer_success: '%{count} proposamenak erantzungo dira "%{template}" txantiloiak erabiliz. Mesesdez, itxaron minutu batzuetan eta eguneratu orrialdea eguneraketak ikusteko.'
+ bulk_answer_error: Honako ID hauek dituzten proposamenak [%{proposals}] ezin izan dira erantzun "%{template}" txantiloia aplikatzean izandako erroreengatik. Erantzun-txantiloia osagai honetarako espero den formatuarekin bat datorren egiazta dezakezu banaka aplikatuta.
+ bulk_answer_success: '%{count} proposameni "%{template}" txantiloia erabiliz erantzungo zaie. Mesedez itxaron minutu batzuk eta kargatu berriro orria eguneraketak ikusteko.'
invalid: Arazo bat izan da proposamen honi erantzutean.
success: Proposamena ondo erantzuna.
create:
@@ -637,7 +635,7 @@ eu:
assign_to_evaluator_button: Esleitu
cancel: Utzi
change_taxonomies: Aldatu taxonomiak
- merge: Beste batean fusionatu
+ merge: Bat egin berri batekin
merge_button: Sortu
no_templates_available: Ez dago txantiloirik eskuragarri
publish: Argitaratu
@@ -661,6 +659,7 @@ eu:
number_of_proposals: '%{number} proposamenetarako erantzunak argitaratuko dira?'
select_a_proposal: Mesedez, hautatu proposamen bat.
show:
+ address: Helbidea
amendments_count: Zuzenketa kopurua
assigned_evaluators: Ebaluatzaileak esleituta
body: Testua
@@ -668,8 +667,8 @@ eu:
documents: Dokumentuak
evaluators: Ebaluatzaileak
likes: Likeak
- likes_count: Like kopurua
- link: Ikusi proposamena
+ likes_count: Atsegin dut kopurua
+ link: Proposamena ikusi
n_more_likes:
one: eta 1 gehiago
other: eta %{count} gehiago
@@ -677,7 +676,7 @@ eu:
ranking: "%{total} tik %{ranking}"
related_meetings: Erlazionatutako topaketak
remove_assignment: Desegin esleipena
- remove_assignment_confirmation: Ziur zaude proposamen honen ebaluatzailea desesleitu nahi duzula?
+ remove_assignment_confirmation: Ziur zaude ebaluatzailea proposamen honetatik kendu nahi duzula?
votes_count: Babes kopurua
update_taxonomies:
invalid: 'Proposamen hauek bazuten %{taxonomia} taxonomia: %{proposals}.'
@@ -710,26 +709,26 @@ eu:
admin_log:
evaluation_assignment:
create: "%{user_name} k esleitu zion %{resource_name} proposamena ebaluatzaile bati"
- delete: "%{user_name} k desesleitu du ebaluatzaile bat %{proposal_title} proposamenetik"
+ delete: "%{user_name} parte-hartzaileak ebaluatzaile bat desesleitu du %{proposal_title} proposamenetik"
proposal:
answer: "%{user_name} parte-hartzaileak %{resource_name} %{space_name} espazioko proposamenari erantzun dio"
- create: "%{user_name} parte-hartzaileak sortu zuen %{resource_name} proposamena %{space_name} esparruko %{merged_count} proposamenen bat egitetik"
+ create: "%{user_name} parte-hartzaileak sortu zuen %{resource_name} proposamena %{space_name} eremuko %{merged_count} proposamenen bat egitetik"
publish_answer: "%{user_name} parte-hartzaileak argitaratu du %{resource_name} proposamenaren erantzuna %{space_name} espazioan"
- restore: "%{user_name} parte-hartzailea berreskuratu du %{resource_name} proposamena %{space_name} espazioan"
- soft_delete: "%{user_name} parte-hartzailea eraman du %{resource_name} proposamena %{space_name} espaziora"
+ restore: "%{user_name} parte-hartzaileak berreskuratu du %{resource_name} osagaia %{space_name} espazioan"
+ soft_delete: "%{user_name} parte-hartzaileak berreskuratu du %{resource_name} proposamena %{space_name} espazioan"
update: "%{user_name} parte-hartzaileak %{resource_name} proposamena eguneratu du %{space_name} espazioan"
proposal_note:
- create: "%{user_name} k %{resource_name} proposamenari buruzko ohar pribatu bat utzi du %{space_name} espazioan"
+ create: "%{user_name} parte-hartzaileak %{resource_name} proposamenari buruzko ohar pribatu bat utzi du %{space_name} espazioan"
answers:
accepted: Onartuta
evaluating: Ebaluatzen
not_answered: Erantzun gabe
- rejected: Bazteruta
+ rejected: Baztertuta
withdrawn: Kendu
application_helper:
filter_origin_values:
all: Guztiak
- meetings: Bilerak
+ meetings: Topaketak
official: Ofiziala
participants: Parte-hartzaileak
filter_state_values:
@@ -742,13 +741,13 @@ eu:
collaborative_drafts:
collaborative_draft:
publish:
- error: Arazoak izan dira zirriborro kolaboratiboa argitaratzean.
+ error: Arazo bat egon da testu kolaboratiboa gordetzen.
irreversible_action_modal:
- body: Zirriborroa proposamen gisa argitaratu ondoren, jada ez da editagarria izango. Proposamenak ez du beste egile edo ekarpenik onartuko.
+ body: Zirriborroa proposamen gisa argitaratu ondoren, ezin izango da gehiago editatu. Proposamenak ez du egile edo ekarpen berririk onartuko.
cancel: Utzi
ok: Argitaratu proposamen gisa
title: Hurrengo ekintza atzeraezina da
- success: Proposamen gisa argitaratutako ziriborro kolaboratiboa.
+ success: Zirriborro kolaboratiboa proposamen gisa behar bezala argitaratu da.
withdraw:
error: Arazoak izan dira zirriborro kolaboratiboa ixtean.
irreversible_action_modal:
@@ -779,11 +778,11 @@ eu:
filters_small_view:
close_modal: Itxi leihoa
filter: Iragazi
- filter_by: 'Honen arabera iragazi:'
+ filter_by: Iragazi honen arabera
unfold: Zabaldu
index:
count:
- one: "Zirriborro kolaboratibo %{count}"
+ one: "%{count} zirriborro kolaboratibo"
other: "%{count} zirriborro kolaboratibo"
name: Zirriborro kolaboratzaileak
new:
@@ -791,12 +790,12 @@ eu:
edit_file: Editatu fitxategia
send: Jarraitu
new_collaborative_draft_button:
- new_collaborative_draft: Testu kolaboratibo zirriborro berria
+ new_collaborative_draft: Zirriborro kolaboratibo berria
orders:
- label: 'Zirriborroak honela ordenatu:'
+ label: 'Ordenatu zirriborroak honen arabera:'
most_contributed: Bozka gehien jaso duena
random: Ausazko ordena
- recent: Berrienetatik zaharrenetara
+ recent: Azkenak
requests:
accepted_request:
error: Ezin izan da kolaboratzaile gisa onartu, saiatu berriro geroago.
@@ -813,7 +812,7 @@ eu:
success: "@%{user} behar bezala ukatu da kolaboratzaile gisa."
show:
edit: Editatu
- final_proposal: azken proposamena
+ final_proposal: Azken proposamena
final_proposal_help_text: Abisua amaitu da. Azken bukatutako proposamena ikus dezakezu
hidden_authors_count:
one: eta pertsona %{count} gehiago
@@ -831,7 +830,7 @@ eu:
withdrawn: Kendu
update:
error: Arazoak izan dira proposamenaren aurrebista gordetzean.
- success: Ziriboro kolaboratiboa ondo eguneratu da.
+ success: Zirriborro kolaboratiboa behar bezala eguneratu da.
wizard_aside:
back_from_collaborative_draft: Itzuli zirriborro kolaboratzaileetara
wizard_header:
@@ -853,12 +852,13 @@ eu:
exit_modal:
cancel: Ezeztatu
exit: Jarraitu
- message: Proposamen ezberdinen artean %{number} babes gehiago eman behar dizkiezu proposamenei zure botoak kontuan har daitezen.
+ message: Zure babesak kontuan hartzeko, beste %{number} babesa eman behar dituzu proposamen desberdinei.
title: Gogoratu babesen %{number} geratzen zaizula
forms:
errors:
device_not_supported: Zure gailuak ez ditu kokapen-zerbitzuak onartzen. Mesedez, sartu helbidea eskuz.
no_device_location: Barkatu, ezin izan dugu zure kokapena antzeman. Mesedez, sartu helbidea eskuz.
+ locating: Lokalizatzen...
use_my_location: Erabili nire egungo kokapena
invite_coauthors:
cancel:
@@ -866,7 +866,7 @@ eu:
success: Egilekide-gonbidapena behar bezala ezeztatua.
create:
error: Arazo bat izan da egilekidea gonbidatzean.
- success: "%{author_name} zuzen gonbidatu da koegile gisa."
+ success: "%{author_name} parte-hartzailea behar bezala gonbidatu dute egilekide gisa."
destroy:
error: Arazo bat izan da gonbidapena baztertzean.
success: Gonbidapena baztertua.
@@ -875,7 +875,7 @@ eu:
success: Gonbidapena onartua.
last_activity:
new_proposal: 'Beste proposamen bat:'
- proposal_updated: 'Poposamena eguneratua:'
+ proposal_updated: 'Proposamena eguneratu da:'
models:
proposal:
fields:
@@ -889,7 +889,7 @@ eu:
published_at: Argitaratze-data
state: Egoera
taxonomies: Taxonomiak
- title: Titulua
+ title: Izenburua
votes: Babesak
proposal_state:
css_class: CSS klasea
@@ -903,10 +903,10 @@ eu:
comment: Iruzkina
proposal_votes:
create:
- error: Arazo bat egon da proposamena bozkatzean.
+ error: Arazo bat gertatu da proposamenari babesa ematean.
proposals:
dynamic_map_instructions:
- description: Koordenatuak eguneratu egingo dira 'aurrebistaratu' botoian klik egiten duzunean. Baina helbidea ez da aldatzen.
+ description: Koordenatuak eguneratuko dira 'aurrebista' botoian klik egitean. Hala ere, helbidea ez da aldatuko.
instructions: Kokapena mugitu ahal duzu mapan.
edit:
add_attachments: Gehitu eranskinak
@@ -934,7 +934,7 @@ eu:
state: Egoera
taxonomy_filters: Iragazkiak
type: Mota
- voted: Bozkatuta
+ voted: Babestua
index:
click_here: Ikusi proposamen guztiak
collaborative_drafts_list: Sartu elkarlanerako zirriborroetan
@@ -954,10 +954,10 @@ eu:
label: 'Antolatu proposamenak honen arabera:'
most_commented: Iruzkin gehien dituztenak
most_followed: Jarraitzaile gehien dituztenak
- most_liked: Like gehien
+ most_liked: Atsegin gehien
most_voted: Gehien babestutakoak
random: Ausazko ordena
- recent: Berrienetatik zaharrenetara
+ recent: Azkenak
with_more_authors: Egile gehiagorekin
participatory_texts:
view_index:
@@ -987,27 +987,27 @@ eu:
link_to_collaborative_draft_help_text: Proposamen hau ziriborro kolaboratibo baten emaitza da. Berrikusi historia
link_to_collaborative_draft_text: Ikusi zirriborro kolaboratiboaren testua
link_to_promoted_emendation_help_text: Proposamen hau zuzenketa batetik dator
- link_to_promoted_emendation_text: Ikusi baztertutako zuzeketa.
+ link_to_promoted_emendation_text: Ikusi baztertutako zuzenketa.
link_to_proposal_from_emendation_help_text: Hau baztertutako zuzenketa bat da
link_to_proposal_from_emendation_text: Ikusi proposamena
proposal_accepted_reason: 'Proposamen hau onartu da arrazoi hauengatik:'
proposal_in_evaluation_reason: Proposamen hau ebaluatzen ari da
proposal_rejected_reason: 'Proposamen hau baztertu da arrazoi hauengatik:'
- withdraw_btn_hint: Zure proposamena atzera babes eman dezakezu iritziz aldatzen baduzu, botorik jaso ez baduzu. Proposamena ez da ezabatzen, baztertutako proposamenen zerrendan agertuko da.
+ withdraw_btn_hint: Zure proposamena atzera babesa eman dezakezu iritziz aldatzen baduzu, botorik jaso ez baduzu. Proposamena ez da ezabatzen, baztertutako proposamenen zerrendan agertuko da.
withdraw_confirmation_html: Ziur zaude proposamen hau kendu nahi duzula?
Ekintza hau ezin da desegin!
withdraw_proposal: Kendu
update:
title: Eguneratu proposamena
vote_button:
- already_voted: Botoa emanda
+ already_voted: Babesa emanda
already_voted_hover: Kendu babesa
maximum_votes_reached: Babesen muga lortua
- no_votes_remaining: Ez da gelditzen babesik
+ no_votes_remaining: Ez da babesik gelditzen
vote: Babesa eman
votes_blocked: Eman botoa
votes_count:
count:
- one: Babesa
+ one: Babes bat
other: Babesak
voting_rules:
already_vote:
@@ -1017,9 +1017,9 @@ eu:
can_accumulate_votes_beyond_threshold:
description: Proposamen bakoitzak %{limit} babes baino gehiago jaso dezake
minimum_votes_per_user:
- description: Gutxienez %{votes} babes banatu behar duzu proposamen ezberdinen artean zure euskarriak kontuan har daitezen.
+ description: Gutxienez %{votes} babes banatu behar duzu proposamen ezberdinen artean zure hautuak kontuan har daitezen.
proposal_limit:
- description: Proposamen(ak) sortu ditzakezu.
+ description: Gehienez %{limit} proposamen sor ditzakezu.
success: Zure babesak ongi onartu dira
threshold_per_proposal:
description: Proposamenak baliagarriak izan daitezen, %{limit} babes izatera iritsi behar da.
@@ -1068,6 +1068,6 @@ eu:
participatory_space_proposals_count: Proposamenak
proposals_accepted: Onartutako proposamenak
proposals_count: Proposamenak
- proposals_count_tooltip: Aurkeztutako proposamenen eta emandako botoen kopurua, guztira.
- votes: 'Botoak:'
+ proposals_count_tooltip: Aurkeztutako proposamenen eta emandako babesen kopurua, guztira.
+ votes: 'Babesak:'
votes_count: Babesak
diff --git a/decidim-proposals/config/locales/fi-plain.yml b/decidim-proposals/config/locales/fi-plain.yml
index 877cf7aedf0b4..2db8b96a036c6 100644
--- a/decidim-proposals/config/locales/fi-plain.yml
+++ b/decidim-proposals/config/locales/fi-plain.yml
@@ -63,10 +63,8 @@ fi-pl:
allowed_file_content_types: 'Virheellinen tiedostomuoto. Ainoastaan seuraavat tiedostomuodot on sallittu: %{types}'
proposal:
attributes:
- add_documents:
- needs_to_be_reattached: Liitettävä uudelleen
- add_photos:
- needs_to_be_reattached: Liitettävä uudelleen
+ add_attachments:
+ needs_to_be_reattached: Liitettävä uudestaan
body:
cant_be_equal_to_template: ei voi vastata mallipohjaa
identical: JA otsikko ei voi olla täysin sama
@@ -278,17 +276,17 @@ fi-pl:
email_intro: '%{author_name} on luonut yksityisen muistiinpanon kohteeseen %{resource_title}. Tarkasta muistiinpano hallintapaneelin kautta.'
email_outro: Tämä ilmoitus on lähetetty sinulle, koska olet ehdotuksen arvioija.
email_subject: Joku on jättänyt huomion ehdotukseen %{resource_title}.
- notification_title: %{author_name} on luonut yksityisen muistiinpanon kohteeseen %{resource_title}. Tarkasta muistiinpano hallintapaneelin kautta.
+ notification_title: %{author_name} loi yksityisen muistiinpanon kohteeseen %{resource_title}. Tarkasta muistiinpano hallintapaneelin kautta.
proposal_note_mentioned:
- email_intro: Sinut on mainittu yksityisessä muistiinpanossa "%{resource_title}" henkilön "%{author_name}" "%{author_nickname}" toimesta. Tarkista muistiinpano hallintapaneelin kautta.
+ email_intro: '"%{author_name}" mainitsi sinut yksityisessä muistiinpanossa "%{resource_title}". Tarkista muistiinpano hallintapaneelin kautta.'
email_outro: Tämä ilmoitus on lähetetty sinulle, koska sinut on mainittu yksityisessä muistiinpanossa.
email_subject: Sinut on mainittu ehdotuksen %{resource_title} muistiinpanossa.
- notification_title: Sinut on mainittu yksityisessä muistiinpanossa %{resource_title} henkilön %{author_name} %{author_nickname} toimesta. Tarkista se hallintapaneelin kautta.
+ notification_title: %{author_name} mainitsi sinut yksityisessä muistiinpanossa %{resource_title}. Tarkista muistiinpano hallintapaneelin kautta.
proposal_note_replied:
email_intro: '%{author_name} on vastannut yksityiseen muistiinpanoon kohteessa %{resource_title}. Tarkasta muistiinpano hallintapaneelin kautta.'
email_outro: Sait tämän ilmoituksen, koska olet muistiinpanon laatija.
email_subject: "%{author_name} on vastannut yksityiseen muistiinpanoon kohteessa %{resource_title}."
- notification_title: %{author_name}%{author_nickname} on vastannut yksityiseen muistiinpanoosi kohteessa %{resource_title}. Tarkasta muistiinpano hallintapaneelin kautta.
+ notification_title: %{author_name} vastasi yksityiseen muistiinpanoon kohteessa %{resource_title}. Tarkasta muistiinpano hallintapaneelin kautta.
coauthor_accepted_invite:
notification_title: %{coauthor_name} on hyväksynyt kutsusi ehdotuksen %{resource_title} laatijaksi.
coauthor_invited:
@@ -305,17 +303,17 @@ fi-pl:
email_intro: '%{requester_name} on hyväksytty osallistujaksi yhteistyöluonnokseen %{resource_title}.'
email_outro: Tämä ilmoitus on lähetetty sinulle, koska olet osallistujana kohteessa %{resource_title}.
email_subject: "%{requester_name} on hyväksytty osallistujaksi kohtaan %{resource_title}."
- notification_title: %{requester_name} %{requester_nickname} on hyväksytty osallistujaksi yheistyöluonnokseen %{resource_title}.
+ notification_title: %{requester_name}hyväksyttiin osallistujaksi yheistyöluonnokseen %{resource_title}.
collaborative_draft_access_rejected:
email_intro: 'Käyttäjän %{requester_name} pyyntö päästä yhteistyöluonnoksen %{resource_title} osallistujaksi on hylätty.'
email_outro: Tämä ilmoitus on lähetetty sinulle, koska olet osallistujana kohteessa %{resource_title}.
email_subject: "%{requester_name} on hylätty, jotta hän voi osallistua %{resource_title} yhteistyöhankkeeseen."
- notification_title: %{requester_name} %{requester_nickname}avustajaoikeudet on hylätty yhteistyöluonnoksesta %{resource_title}.
+ notification_title: %{requester_name}pyyntö liittyä osallistujaksi hylättiin yhteistyöluonnokselle %{resource_title}.
collaborative_draft_access_requested:
email_intro: '%{requester_name} pyysi pääsyä osallistujaksi. Voit hyväksyä tai hylätä pyynnön yhteistyöluonnoksen %{resource_title} sivulta.'
email_outro: Tämä ilmoitus on lähetetty sinulle, koska olet osallistujana kohteessa %{resource_title}.
email_subject: "%{requester_name} pyysi osallistumisoikeutta kohteeseen %{resource_title}."
- notification_title: %{requester_name} %{requester_nickname} pyysi saada osallistua yhteistyöluonnokseen%{resource_title}. Hyväksy tai hylkää pyyntö.
+ notification_title: %{requester_name} pyysi päästä osallistujaksi yhteistyöluonnokseen %{resource_title}. Hyväksy tai hylkää pyyntö.
collaborative_draft_access_requester_accepted:
email_intro: Sinut on hyväksytty osallistujaksi yhteistyöluonnokseen %{resource_title}.
email_outro: Tämä ilmoitus on lähetetty sinulle, koska olet pyytänyt pääsyä osallistujaksi yhteistyöluonnokseen %{resource_title}.
@@ -327,10 +325,10 @@ fi-pl:
email_subject: Sinua ei ole hyväksytty osallistujaksi yhteistyöluonnokseen %{resource_title}.
notification_title: Sinua ei ole hyväksytty osallistujaksi yhteistyöluonnokseen %{resource_title}.
collaborative_draft_withdrawn:
- email_intro: %{author_name} %{author_nickname} perui yhteistyöluonnoksen %{resource_title}.
+ email_intro: %{author_name} perui yhteistyöluonnoksen %{resource_title}.
email_outro: Tämä ilmoitus on lähetetty sinulle, koska olet osallistujana kohteessa %{resource_title}.
- email_subject: "%{author_name} %{author_nickname} perunut yhteistyöluonnoksen %{resource_title}."
- notification_title: %{author_name} %{author_nickname}perunutyhteistyöluonnoksen %{resource_title}.
+ email_subject: "%{author_name} perui yhteistyöluonnoksen %{resource_title}."
+ notification_title: %{author_name}perui yhteistyöluonnoksen %{resource_title}.
creation_enabled:
email_intro: 'Voit nyt luoda uusia ehdotuksia kohteessa %{participatory_space_title}! Aloita osallistuminen tällä sivulla:'
email_outro: Tämä ilmoitus on lähetetty sinulle, koska seuraat kohdetta %{participatory_space_title}. Voit lopettaa ilmoitusten vastaanottamisen edellä esitetyn linkin kautta.
@@ -352,10 +350,10 @@ fi-pl:
email_subject: Ehdotus %{resource_title} on yhdistetty
notification_title: Hallintakäyttäjä on yhdistänyt ehdotuksen %{resource_title}.
proposal_published:
- email_intro: '%{author_name} %{author_nickname}, jota seuraat, on julkaissut uuden ehdotuksen "%{resource_title}". Tutustu ehdotukseen ja osallistu:'
- email_outro: Tämä ilmoitus on lähetetty sinulle, koska seuraat %{author_nickname}. Voit lopettaa ilmoitusten vastaanottamisen edellä esitetyn linkin kautta.
- email_subject: Uusi ehdotus "%{resource_title}", jonka on luonut %{author_nickname}
- notification_title: %{resource_title} ehdotus julkaistiin tekijän %{author_name} %{author_nickname} toimesta.
+ email_intro: 'Seuraamasi osallistuja %{author_name} on julkaissut uuden ehdotuksen "%{resource_title}". Tutustu ehdotukseen ja osallistu:'
+ email_outro: Tämä ilmoitus on lähetetty sinulle, koska olet seuraat käyttäjää %{author_name}. Voit lopettaa ilmoitusten vastaanottamisen edellä esitetyn linkin kautta.
+ email_subject: Uusi ehdotus "%{resource_title}" osallistujalta %{author_name}
+ notification_title: Osallistuja %{author_name} julkaisi uuden ehdotuksen %{resource_title}.
proposal_published_for_space:
email_intro: Ehdotus "%{resource_title}", jota seuraat, on lisätty kohteeseen "%{participatory_space_title}".
email_outro: Tämä ilmoitus on lähetetty sinulle, koska seuraat kohdetta "%{participatory_space_title}". Voit lopettaa seuraamisen edellä esitetyn linkin kautta.
@@ -661,6 +659,7 @@ fi-pl:
number_of_proposals: Haluatko varmasti julkaista %{number} ehdotusten vastausta?
select_a_proposal: Valitse ehdotus.
show:
+ address: Osoite
amendments_count: Muutosten lukumäärä
assigned_evaluators: Annettu tehtäväksi arvioijalle
body: Ehdotuksen kuvaus
@@ -859,6 +858,7 @@ fi-pl:
errors:
device_not_supported: Laitteesi ei tue sijaintipalveluita. Syötä osoite manuaalisesti.
no_device_location: Valitettavasti sijaintijasi ei voitu tunnistaa automaattisesti. Syötä osoite manuaalisesti.
+ locating: Paikannetaan...
use_my_location: Käytä nykyistä sijaintiani
invite_coauthors:
cancel:
diff --git a/decidim-proposals/config/locales/fi.yml b/decidim-proposals/config/locales/fi.yml
index 8f45764cbb4a4..696b0d4d4317c 100644
--- a/decidim-proposals/config/locales/fi.yml
+++ b/decidim-proposals/config/locales/fi.yml
@@ -63,10 +63,8 @@ fi:
allowed_file_content_types: 'Virheellinen tiedostomuoto. Ainoastaan seuraavat tiedostomuodot on sallittu: %{types}'
proposal:
attributes:
- add_documents:
- needs_to_be_reattached: Liitettävä uudelleen
- add_photos:
- needs_to_be_reattached: Liitettävä uudelleen
+ add_attachments:
+ needs_to_be_reattached: Liitettävä uudestaan
body:
cant_be_equal_to_template: ei voi vastata mallipohjaa
identical: JA otsikko ei voi olla täysin sama
@@ -278,17 +276,17 @@ fi:
email_intro: '%{author_name} on luonut yksityisen muistiinpanon kohteeseen %{resource_title}. Tarkasta muistiinpano hallintapaneelin kautta.'
email_outro: Tämä ilmoitus on lähetetty sinulle, koska olet ehdotuksen arvioija.
email_subject: Joku on jättänyt huomion ehdotukseen %{resource_title}.
- notification_title: %{author_name} on luonut yksityisen muistiinpanon kohteeseen %{resource_title}. Tarkasta muistiinpano hallintapaneelin kautta.
+ notification_title: %{author_name} loi yksityisen muistiinpanon kohteeseen %{resource_title}. Tarkasta muistiinpano hallintapaneelin kautta.
proposal_note_mentioned:
- email_intro: Sinut on mainittu yksityisessä muistiinpanossa "%{resource_title}" henkilön "%{author_name}" "%{author_nickname}" toimesta. Tarkista muistiinpano hallintapaneelin kautta.
+ email_intro: '"%{author_name}" mainitsi sinut yksityisessä muistiinpanossa "%{resource_title}". Tarkista muistiinpano hallintapaneelin kautta.'
email_outro: Tämä ilmoitus on lähetetty sinulle, koska sinut on mainittu yksityisessä muistiinpanossa.
email_subject: Sinut on mainittu ehdotuksen %{resource_title} muistiinpanossa.
- notification_title: Sinut on mainittu yksityisessä muistiinpanossa %{resource_title} henkilön %{author_name} %{author_nickname} toimesta. Tarkista se hallintapaneelin kautta.
+ notification_title: %{author_name} mainitsi sinut yksityisessä muistiinpanossa %{resource_title}. Tarkista muistiinpano hallintapaneelin kautta.
proposal_note_replied:
email_intro: '%{author_name} on vastannut yksityiseen muistiinpanoon kohteessa %{resource_title}. Tarkasta muistiinpano hallintapaneelin kautta.'
email_outro: Sait tämän ilmoituksen, koska olet muistiinpanon laatija.
email_subject: "%{author_name} on vastannut yksityiseen muistiinpanoon kohteessa %{resource_title}."
- notification_title: %{author_name}%{author_nickname} on vastannut yksityiseen muistiinpanoosi kohteessa %{resource_title}. Tarkasta muistiinpano hallintapaneelin kautta.
+ notification_title: %{author_name} vastasi yksityiseen muistiinpanoon kohteessa %{resource_title}. Tarkasta muistiinpano hallintapaneelin kautta.
coauthor_accepted_invite:
notification_title: %{coauthor_name} on hyväksynyt kutsusi ehdotuksen %{resource_title} laatijaksi.
coauthor_invited:
@@ -305,17 +303,17 @@ fi:
email_intro: '%{requester_name} on hyväksytty osallistujaksi yhteistyöluonnokseen %{resource_title}.'
email_outro: Tämä ilmoitus on lähetetty sinulle, koska olet osallistujana kohteessa %{resource_title}.
email_subject: "%{requester_name} on hyväksytty osallistujaksi kohtaan %{resource_title}."
- notification_title: %{requester_name} %{requester_nickname} on hyväksytty osallistujaksi yheistyöluonnokseen %{resource_title}.
+ notification_title: %{requester_name}hyväksyttiin osallistujaksi yheistyöluonnokseen %{resource_title}.
collaborative_draft_access_rejected:
email_intro: 'Käyttäjän %{requester_name} pyyntö päästä yhteistyöluonnoksen %{resource_title} osallistujaksi on hylätty.'
email_outro: Tämä ilmoitus on lähetetty sinulle, koska olet osallistujana kohteessa %{resource_title}.
email_subject: "%{requester_name} on hylätty, jotta hän voi osallistua %{resource_title} yhteistyöhankkeeseen."
- notification_title: %{requester_name} %{requester_nickname}avustajaoikeudet on hylätty yhteistyöluonnoksesta %{resource_title}.
+ notification_title: %{requester_name}pyyntö liittyä osallistujaksi hylättiin yhteistyöluonnokselle %{resource_title}.
collaborative_draft_access_requested:
email_intro: '%{requester_name} pyysi pääsyä osallistujaksi. Voit hyväksyä tai hylätä pyynnön yhteistyöluonnoksen %{resource_title} sivulta.'
email_outro: Tämä ilmoitus on lähetetty sinulle, koska olet osallistujana kohteessa %{resource_title}.
email_subject: "%{requester_name} pyysi osallistumisoikeutta kohteeseen %{resource_title}."
- notification_title: %{requester_name} %{requester_nickname} pyysi saada osallistua yhteistyöluonnokseen%{resource_title}. Hyväksy tai hylkää pyyntö.
+ notification_title: %{requester_name} pyysi päästä osallistujaksi yhteistyöluonnokseen %{resource_title}. Hyväksy tai hylkää pyyntö.
collaborative_draft_access_requester_accepted:
email_intro: Sinut on hyväksytty osallistujaksi yhteistyöluonnokseen %{resource_title}.
email_outro: Tämä ilmoitus on lähetetty sinulle, koska olet pyytänyt pääsyä osallistujaksi yhteistyöluonnokseen %{resource_title}.
@@ -327,10 +325,10 @@ fi:
email_subject: Sinua ei ole hyväksytty osallistujaksi yhteistyöluonnokseen %{resource_title}.
notification_title: Sinua ei ole hyväksytty osallistujaksi yhteistyöluonnokseen %{resource_title}.
collaborative_draft_withdrawn:
- email_intro: %{author_name} %{author_nickname} perui yhteistyöluonnoksen %{resource_title}.
+ email_intro: %{author_name} perui yhteistyöluonnoksen %{resource_title}.
email_outro: Tämä ilmoitus on lähetetty sinulle, koska olet osallistujana kohteessa %{resource_title}.
- email_subject: "%{author_name} %{author_nickname} perunut yhteistyöluonnoksen %{resource_title}."
- notification_title: %{author_name} %{author_nickname}perunutyhteistyöluonnoksen %{resource_title}.
+ email_subject: "%{author_name} perui yhteistyöluonnoksen %{resource_title}."
+ notification_title: %{author_name}perui yhteistyöluonnoksen %{resource_title}.
creation_enabled:
email_intro: 'Voit nyt luoda uusia ehdotuksia osallistumistilassa %{participatory_space_title}! Aloita osallistuminen sivulta:'
email_outro: Tämä ilmoitus on lähetetty sinulle, koska seuraat kohdetta %{participatory_space_title}. Voit lopettaa ilmoitusten vastaanottamisen edellä esitetyn linkin kautta.
@@ -352,10 +350,10 @@ fi:
email_subject: Ehdotus %{resource_title} on yhdistetty
notification_title: Hallintakäyttäjä on yhdistänyt ehdotuksen %{resource_title}.
proposal_published:
- email_intro: '%{author_name} %{author_nickname}, jota seuraat, on julkaissut uuden ehdotuksen "%{resource_title}". Tutustu ehdotukseen ja osallistu:'
- email_outro: Tämä ilmoitus on lähetetty sinulle, koska seuraat %{author_nickname}. Voit lopettaa ilmoitusten vastaanottamisen edellä esitetyn linkin kautta.
- email_subject: Uusi ehdotus "%{resource_title}", jonka on luonut %{author_nickname}
- notification_title: %{resource_title} ehdotus julkaistiin tekijän %{author_name} %{author_nickname} toimesta.
+ email_intro: 'Seuraamasi osallistuja %{author_name} on julkaissut uuden ehdotuksen "%{resource_title}". Tutustu ehdotukseen ja osallistu:'
+ email_outro: Tämä ilmoitus on lähetetty sinulle, koska olet seuraat käyttäjää %{author_name}. Voit lopettaa ilmoitusten vastaanottamisen edellä esitetyn linkin kautta.
+ email_subject: Uusi ehdotus "%{resource_title}" osallistujalta %{author_name}
+ notification_title: Osallistuja %{author_name} julkaisi uuden ehdotuksen %{resource_title}.
proposal_published_for_space:
email_intro: Ehdotus "%{resource_title}", jota seuraat, on lisätty kohteeseen "%{participatory_space_title}".
email_outro: Tämä ilmoitus on lähetetty sinulle, koska seuraat kohdetta "%{participatory_space_title}". Voit lopettaa seuraamisen edellä esitetyn linkin kautta.
@@ -661,6 +659,7 @@ fi:
number_of_proposals: Haluatko varmasti julkaista %{number} ehdotusten vastausta?
select_a_proposal: Valitse ehdotus.
show:
+ address: Osoite
amendments_count: Muutosten lukumäärä
assigned_evaluators: Annettu tehtäväksi arvioijalle
body: Ehdotuksen kuvaus
@@ -859,6 +858,7 @@ fi:
errors:
device_not_supported: Laitteesi ei tue sijaintipalveluita. Syötä osoite manuaalisesti.
no_device_location: Valitettavasti sijaintijasi ei voitu tunnistaa automaattisesti. Syötä osoite manuaalisesti.
+ locating: Paikannetaan...
use_my_location: Käytä nykyistä sijaintiani
invite_coauthors:
cancel:
diff --git a/decidim-proposals/config/locales/fr-CA.yml b/decidim-proposals/config/locales/fr-CA.yml
index f576cc397d1a5..5b546612eb3a9 100644
--- a/decidim-proposals/config/locales/fr-CA.yml
+++ b/decidim-proposals/config/locales/fr-CA.yml
@@ -63,10 +63,8 @@ fr-CA:
allowed_file_content_types: 'Type de document invalide. Seuls les fichiers avec les extensions suivantes sont autorisés : %{types}'
proposal:
attributes:
- add_documents:
- needs_to_be_reattached: Doit être téléchargé de nouveau
- add_photos:
- needs_to_be_reattached: Doit être téléchargé de nouveau
+ add_attachments:
+ needs_to_be_reattached: Doit être ré-attachée
body:
cant_be_equal_to_template: ne peut pas être égal au modèle
identical: ET le titre ne peut pas être identique
@@ -125,9 +123,9 @@ fr-CA:
'false': Propositions
'true': Amendements
proposal_state_id_eq:
- label: État
+ label: État
state_eq:
- label: État
+ label: État
values:
accepted: Acceptée
evaluating: En cours d'évaluation
@@ -176,7 +174,7 @@ fr-CA:
collaborative_drafts_enabled: Brouillons collaboratifs activés
collaborative_drafts_enabled_help: La fonctionnalité « Brouillons collaboratifs » sera supprimée dans Decidim v0.32. Les organisations qui l’utilisent peuvent passer à la nouvelle fonctionnalité de co-auteur de proposition.
comments_enabled: Activer le module de commentaire
- comments_max_length: Longueur maximum (en caractères) des commentaires (laisser 0 pour la valeur par défaut)
+ comments_max_length: Nombre maximum de caractères par commentaire (Laisser 0 pour la valeur par défaut)
default_sort_order: Tri des propositions par défaut
default_sort_order_help: Automatique signifie que si les votes sont activés, les propositions seront affichées par ordre aléatoire, et si les votes sont bloqués, elles seront triées par ordre décroissant des votes.
default_sort_order_options:
@@ -275,17 +273,13 @@ fr-CA:
email_intro: '%{author_name} a créé une note privée dans %{resource_title}. Consultez-la sur le panneau d''administration.'
email_outro: Vous avez reçu cette notification parce que vous pouvez évaluer la proposition.
email_subject: Quelqu'un a laissé une note sur la proposition %{resource_title}.
- notification_title: %{author_name} %{author_nickname} a créé une note privée dans %{resource_title}. Consultez-la sur le panneau d'administration.
proposal_note_mentioned:
- email_intro: Vous avez été mentionné(e) dans une note privée dans «%{resource_title}» par «%{author_name}» «%{author_nickname}». Jetez-y un coup d'œil dans le panneau d'administration.
email_outro: Vous avez reçu cette notification parce que vous avez été mentionné(e) dans une note privée.
email_subject: Quelqu'un vous a mentionné(e) dans une note sur la proposition %{resource_title}.
- notification_title: Vous avez été mentionné(e) dans une note privée dans %{resource_title} par %{author_name} %{author_nickname}. Jetez-y un coup d'œil dans le panneau d'administration.
proposal_note_replied:
email_intro: '%{author_name} a répondu à votre note privée dans %{resource_title}. Consultez-la sur le panneau d''administration.'
email_outro: Vous avez reçu cette notification parce que vous êtes l'auteur/autrice de la note.
email_subject: "%{author_name} a répondu à votre note privée dans %{resource_title}."
- notification_title: %{author_name} %{author_nickname} a répondu à votre note privée dans %{resource_title}. Consultez-la sur le panneau d'administration.
coauthor_accepted_invite:
notification_title: %{coauthor_name} a accepté votre invitation à devenir co-auteur de la proposition %{resource_title}.
coauthor_invited:
@@ -302,17 +296,14 @@ fr-CA:
email_intro: '%{requester_name} a été accepté en tant que contributeur du brouillon collaboratif %{resource_title}.'
email_outro: Vous avez reçu cette notification car vous êtes collaborateur de %{resource_title}. Si vous souhaitez vous désabonner des notifications, connectez-vous à la plateforme, puis rendez-vous dans l'onglet “Mon compte” > “Paramètres des notifications”.
email_subject: "%{requester_name} a été accepté pour accéder en tant que contributeur du %{resource_title}."
- notification_title: %{requester_name} %{requester_nickname} a été admis à l' accès en tant que contributeur du %{resource_title} projet de collaboration.
collaborative_draft_access_rejected:
email_intro: '%{requester_name} a été refusé d''accès en tant que contributeur du brouillpn collaboratif %{resource_title}.'
email_outro: Vous avez reçu cette notification car vous êtes collaborateur de %{resource_title}. Si vous souhaitez vous désabonner des notifications, connectez-vous à la plateforme, puis rendez-vous dans l'onglet “Mon compte” > “Paramètres des notifications”.
email_subject: "%{requester_name} a été rejetée pour accéder en tant que contributeur du %{resource_title} projet de collaboration."
- notification_title: %{requester_name} %{requester_nickname} a été rejeté pour accéder en tant que contributeur du %{resource_title} projet de collaboration.
collaborative_draft_access_requested:
email_intro: '%{requester_name} a demandé à contribuer au brouillon. Vous pouvez accepter ou rejeter la demande depuis la page du brouillon collaboratif %{resource_title}.'
email_outro: Vous avez reçu cette notification car vous êtes collaborateur de %{resource_title}. Si vous souhaitez vous désabonner des notifications, connectez-vous à la plateforme, puis rendez-vous dans l'onglet “Mon compte” > “Paramètres des notifications”.
email_subject: "%{requester_name} demandé un accès pour contribuer à %{resource_title}."
- notification_title: %{requester_name} %{requester_nickname} demandé un accès pour contribuer au projet de collaboration %{resource_title} . S'il vous plaît accepter ou rejeter la demande.
collaborative_draft_access_requester_accepted:
email_intro: Vous avez été accepté pour accéder en tant que contributeur du brouillon collaboratif %{resource_title}.
email_outro: Vous avez reçu cette notification car vous avez demandé à devenir contributeur de %{resource_title}. Si vous souhaitez vous désabonner des notifications, connectez-vous à la plateforme, puis rendez-vous dans l'onglet “Mon compte” > “Paramètres des notifications”.
@@ -324,10 +315,7 @@ fr-CA:
email_subject: Vous avez été rejeté en tant que contributeur de %{resource_title}.
notification_title: Vous avez été rejeté pour accéder en tant que contributeur du %{resource_title} projet de collaboration.
collaborative_draft_withdrawn:
- email_intro: %{author_name} %{author_nickname} a retiré le brouillon collaboratif %{resource_title}.
email_outro: Vous avez reçu cette notification car vous êtes collaborateur de %{resource_title}. Si vous souhaitez vous désabonner des notifications, connectez-vous à la plateforme, puis rendez-vous dans l'onglet “Mon compte” > “Paramètres des notifications”.
- email_subject: "%{author_name} %{author_nickname} retiré le %{resource_title} projet de collaboration."
- notification_title: %{author_name} %{author_nickname}retiré le %{resource_title} projet de collaboration.
creation_enabled:
email_intro: 'Vous pouvez maintenant créer de nouvelles propositions dans %{participatory_space_title} ! Commencez à participer sur cette page :'
email_outro: Vous avez reçu cette notification car vous suivez %{participatory_space_title}. Vous pouvez arrêter de recevoir des notifications en cliquant sur le lien précédent.
@@ -347,10 +335,7 @@ fr-CA:
email_subject: La proposition %{resource_title} a été fusionnée
notification_title: La proposition %{resource_title} a été fusionnée par un administrateur.
proposal_published:
- email_intro: '%{author_name} %{author_nickname}, que vous suivez, a publié une nouvelle proposition appelée "%{resource_title}". Découvrez-le et contribuez:'
- email_outro: Vous avez reçu cette notification car vous suivez %{author_nickname}. Vous pouvez cesser de recevoir des notifications en suivant le lien précédent.
- email_subject: Nouvelle proposition "%{resource_title}" par %{author_nickname}
- notification_title: La proposition %{resource_title} a été publiée par %{author_name} %{author_nickname}.
+ email_subject: Nouvelle proposition "%{resource_title}" par %{author_name}
proposal_published_for_space:
email_intro: La proposition "%{resource_title}" a été publiée dans "%{participatory_space_title}" que vous suivez.
email_outro: Vous avez reçu cette notification parce que vous suivez "%{participatory_space_title}". Vous pouvez cesser de le suivre en cliquant sur le lien précédent.
@@ -591,6 +576,7 @@ fr-CA:
number_of_proposals: Les réponses de %{number} propositions seront publiées ?
select_a_proposal: Veuillez sélectionner une proposition.
show:
+ address: Adresse
amendments_count: Nombre d'amendements
assigned_evaluators: Évaluateurs assignés
body: Corps
@@ -772,6 +758,7 @@ fr-CA:
errors:
device_not_supported: Votre appareil ne prend pas en charge les services de localisation. Veuillez entrer l'adresse manuellement.
no_device_location: Désolé, nous n'avons pas pu détecter votre position. Veuillez entrer l'adresse manuellement.
+ locating: Localisation en cours...
use_my_location: Utiliser ma position actuelle
invite_coauthors:
cancel:
diff --git a/decidim-proposals/config/locales/fr.yml b/decidim-proposals/config/locales/fr.yml
index dfbfec91b7800..75e1881f1d932 100644
--- a/decidim-proposals/config/locales/fr.yml
+++ b/decidim-proposals/config/locales/fr.yml
@@ -63,10 +63,8 @@ fr:
allowed_file_content_types: 'Type de document invalide. Seuls les fichiers avec les extensions suivantes sont autorisés : %{types}'
proposal:
attributes:
- add_documents:
- needs_to_be_reattached: Doit être téléchargé de nouveau
- add_photos:
- needs_to_be_reattached: Doit être téléchargé de nouveau
+ add_attachments:
+ needs_to_be_reattached: Doit être ré-attachée
body:
cant_be_equal_to_template: ne peut pas être égal au modèle
identical: ET le titre ne peut pas être identique
@@ -125,9 +123,9 @@ fr:
'false': Propositions
'true': Amendements
proposal_state_id_eq:
- label: État
+ label: État
state_eq:
- label: État
+ label: État
values:
accepted: Acceptée
evaluating: En cours d'évaluation
@@ -176,7 +174,7 @@ fr:
collaborative_drafts_enabled: Brouillons collaboratifs activés
collaborative_drafts_enabled_help: La fonctionnalité « Brouillons collaboratifs » sera supprimée dans Decidim v0.32. Les organisations qui l’utilisent peuvent passer à la nouvelle fonctionnalité de co-auteur de proposition.
comments_enabled: Activer le module de commentaire
- comments_max_length: Longueur maximum (en caractères) des commentaires (laisser 0 pour la valeur par défaut)
+ comments_max_length: Nombre maximum de caractères par commentaire (Laisser 0 pour la valeur par défaut)
default_sort_order: Tri des propositions par défaut
default_sort_order_help: Automatique signifie que si les votes sont activés, les propositions seront affichées par ordre aléatoire, et si les votes sont bloqués, elles seront triées par ordre décroissant des votes.
default_sort_order_options:
@@ -275,17 +273,13 @@ fr:
email_intro: '%{author_name} a créé une note privée dans %{resource_title}. Consultez-la sur le panneau d''administration.'
email_outro: Vous avez reçu cette notification parce que vous pouvez évaluer la proposition.
email_subject: Quelqu'un a laissé une note sur la proposition %{resource_title}.
- notification_title: %{author_name} %{author_nickname} a créé une note privée dans %{resource_title}. Consultez-la sur le panneau d'administration.
proposal_note_mentioned:
- email_intro: Vous avez été mentionné(e) dans une note privée dans «%{resource_title}» par «%{author_name}» «%{author_nickname}». Jetez-y un coup d'œil dans le panneau d'administration.
email_outro: Vous avez reçu cette notification parce que vous avez été mentionné(e) dans une note privée.
email_subject: Quelqu'un vous a mentionné(e) dans une note sur la proposition %{resource_title}.
- notification_title: Vous avez été mentionné(e) dans une note privée dans %{resource_title} par %{author_name} %{author_nickname}. Jetez-y un coup d'œil dans le panneau d'administration.
proposal_note_replied:
email_intro: '%{author_name} a répondu à votre note privée dans %{resource_title}. Consultez-la sur le panneau d''administration.'
email_outro: Vous avez reçu cette notification parce que vous êtes l'auteur/autrice de la note.
email_subject: "%{author_name} a répondu à votre note privée dans %{resource_title}."
- notification_title: %{author_name} %{author_nickname} a répondu à votre note privée dans %{resource_title}. Consultez-la sur le panneau d'administration.
coauthor_accepted_invite:
notification_title: %{coauthor_name} a accepté votre invitation à devenir co-auteur de la proposition %{resource_title}.
coauthor_invited:
@@ -302,17 +296,14 @@ fr:
email_intro: '%{requester_name} a été accepté en tant que contributeur du brouillon collaboratif %{resource_title}.'
email_outro: Vous avez reçu cette notification car vous êtes collaborateur de %{resource_title}. Si vous souhaitez vous désabonner des notifications, connectez-vous à la plateforme, puis rendez-vous dans l'onglet “Mon compte” > “Paramètres des notifications”.
email_subject: "%{requester_name} a été accepté pour accéder en tant que contributeur du %{resource_title}."
- notification_title: %{requester_name} %{requester_nickname} a été admis à l' accès en tant que contributeur du %{resource_title} projet de collaboration.
collaborative_draft_access_rejected:
email_intro: '%{requester_name} a été refusé d''accès en tant que contributeur du brouillpn collaboratif %{resource_title}.'
email_outro: Vous avez reçu cette notification car vous êtes collaborateur de %{resource_title}. Si vous souhaitez vous désabonner des notifications, connectez-vous à la plateforme, puis rendez-vous dans l'onglet “Mon compte” > “Paramètres des notifications”.
email_subject: "%{requester_name} a été rejetée pour accéder en tant que contributeur du %{resource_title} projet de collaboration."
- notification_title: %{requester_name} %{requester_nickname} a été rejeté pour accéder en tant que contributeur du %{resource_title} projet de collaboration.
collaborative_draft_access_requested:
email_intro: '%{requester_name} a demandé à contribuer au brouillon. Vous pouvez accepter ou rejeter la demande depuis la page du brouillon collaboratif %{resource_title}.'
email_outro: Vous avez reçu cette notification car vous êtes collaborateur de %{resource_title}. Si vous souhaitez vous désabonner des notifications, connectez-vous à la plateforme, puis rendez-vous dans l'onglet “Mon compte” > “Paramètres des notifications”.
email_subject: "%{requester_name} demandé un accès pour contribuer à %{resource_title}."
- notification_title: %{requester_name} %{requester_nickname} demandé un accès pour contribuer au projet de collaboration %{resource_title} . S'il vous plaît accepter ou rejeter la demande.
collaborative_draft_access_requester_accepted:
email_intro: Vous avez été accepté pour accéder en tant que contributeur du brouillon collaboratif %{resource_title}.
email_outro: Vous avez reçu cette notification car vous avez demandé à devenir contributeur de %{resource_title}. Si vous souhaitez vous désabonner des notifications, connectez-vous à la plateforme, puis rendez-vous dans l'onglet “Mon compte” > “Paramètres des notifications”.
@@ -324,10 +315,7 @@ fr:
email_subject: Vous avez été rejeté en tant que contributeur de %{resource_title}.
notification_title: Vous avez été rejeté pour accéder en tant que contributeur du %{resource_title} projet de collaboration.
collaborative_draft_withdrawn:
- email_intro: %{author_name} %{author_nickname} a retiré le brouillon collaboratif %{resource_title}.
email_outro: Vous avez reçu cette notification car vous êtes collaborateur de %{resource_title}. Si vous souhaitez vous désabonner des notifications, connectez-vous à la plateforme, puis rendez-vous dans l'onglet “Mon compte” > “Paramètres des notifications”.
- email_subject: "%{author_name} %{author_nickname} retiré le %{resource_title} projet de collaboration."
- notification_title: %{author_name} %{author_nickname}retiré le %{resource_title} projet de collaboration.
creation_enabled:
email_intro: 'Vous pouvez maintenant créer de nouvelles propositions dans %{participatory_space_title} ! Commencez à participer sur cette page :'
email_outro: Vous avez reçu cette notification car vous suivez %{participatory_space_title}. Si vous souhaitez vous désabonner des notifications, connectez-vous à la plateforme, puis rendez-vous dans l'onglet “Mon compte” > “Paramètres des notifications”.
@@ -347,10 +335,7 @@ fr:
email_subject: La proposition %{resource_title} a été fusionnée
notification_title: La proposition %{resource_title} a été fusionnée par un administrateur.
proposal_published:
- email_intro: '%{author_name} %{author_nickname}, que vous suivez, a publié une nouvelle proposition appelée "%{resource_title}". Découvrez-le et contribuez:'
- email_outro: Vous avez reçu cette notification car vous suivez %{author_nickname}. Si vous souhaitez vous désabonner des notifications, connectez-vous à la plateforme, puis rendez-vous dans l'onglet “Mon compte” > “Paramètres des notifications”.
- email_subject: Nouvelle proposition "%{resource_title}" par %{author_nickname}
- notification_title: La proposition %{resource_title} a été publiée par %{author_name} %{author_nickname}.
+ email_subject: Nouvelle proposition "%{resource_title}" par %{author_name}
proposal_published_for_space:
email_intro: La proposition "%{resource_title}" a été publiée dans "%{participatory_space_title}" que vous suivez.
email_outro: Vous avez reçu cette notification parce que vous suivez "%{participatory_space_title}". Si vous souhaitez vous désabonner des notifications, connectez-vous à la plateforme, puis rendez-vous dans l'onglet “Mon compte” > “Paramètres des notifications”.
@@ -412,14 +397,21 @@ fr:
unearned_own: Vous n'avez créé aucune proposition pour le moment.
open_data:
help:
+ proposal_comments:
+ id: L'identifiant de ce commentaire
+ locale: Les paramètres régionaux (langue) du participant au moment où il a laissé ce commentaire
+ root_commentable_url: L'URL de la ressource associée à ce commentaire
proposals:
+ answered_at: Date à laquelle cette proposition a reçu une réponse
coauthorships_count: Le nombre de coauteurs que la proposition représente
+ comments: Le nombre de commentaires sur cette proposition
cost: Le coût total de la proposition en question
cost_report: Un rapport sur les coûts de la proposition
created_at: La date de création de la proposition
created_in_meeting: Si la proposition a été créée dans une réunion
execution_period: La période à laquelle la proposition s'est déroulée du début à la fin
follows_count: Le nombre de personnes qui suivent cette proposition
+ id: L'identifiant unique de la proposition
state_published_at: Un horodatage de l'état de la proposition lorsqu'elle est publiée
updated_at: La date de la dernière mise à jour de la proposition
participatory_spaces:
@@ -591,6 +583,7 @@ fr:
number_of_proposals: Les réponses de %{number} propositions seront publiées ?
select_a_proposal: Veuillez sélectionner une proposition.
show:
+ address: Adresse
amendments_count: Nombre d'amendements
assigned_evaluators: Évaluateurs assignés
body: Corps
@@ -772,6 +765,7 @@ fr:
errors:
device_not_supported: Votre appareil ne prend pas en charge les services de localisation. Veuillez entrer l'adresse manuellement.
no_device_location: Désolé, nous n'avons pas pu détecter votre position. Veuillez entrer l'adresse manuellement.
+ locating: Localisation en cours...
use_my_location: Utiliser ma position actuelle
invite_coauthors:
cancel:
@@ -801,6 +795,7 @@ fr:
published_answer: Réponse publiée
published_at: Publiée à
state: État
+ taxonomies: Taxonomies
title: Titre
votes: Votes
proposal_state:
@@ -915,6 +910,7 @@ fr:
maximum_votes_reached: Nombre maximum de votes atteint
no_votes_remaining: Aucun vote restant
vote: Soutenir
+ votes_blocked: Voter
votes_count:
count:
one: Vote
diff --git a/decidim-proposals/config/locales/ga-IE.yml b/decidim-proposals/config/locales/ga-IE.yml
index d68b9a7bb6192..b0b6456306a64 100644
--- a/decidim-proposals/config/locales/ga-IE.yml
+++ b/decidim-proposals/config/locales/ga-IE.yml
@@ -37,7 +37,6 @@ ga:
values:
'false': Moltaí
state_eq:
- label: Staid
values:
accepted: Glactha
rejected: Diúltaithe
diff --git a/decidim-proposals/config/locales/gl.yml b/decidim-proposals/config/locales/gl.yml
index 5668149ef1f19..b0458a413d7e8 100644
--- a/decidim-proposals/config/locales/gl.yml
+++ b/decidim-proposals/config/locales/gl.yml
@@ -34,10 +34,6 @@ gl:
models:
proposal:
attributes:
- add_documents:
- needs_to_be_reattached: É preciso anexar de novo o ficheiro
- add_photos:
- needs_to_be_reattached: É preciso anexar de novo o ficheiro
body:
cant_be_equal_to_template: non pode ser igual ao modelo
identical: E o título non pode ser idéntico
@@ -76,7 +72,6 @@ gl:
values:
'false': Propostas
state_eq:
- label: Estado
values:
accepted: Aceptada
evaluating: En avaliación
@@ -135,22 +130,16 @@ gl:
accept: Aceptar
collaborative_draft_access_accepted:
email_subject: "%{requester_name} foi aceptado para acceder como colaborador do %{resource_title}."
- notification_title: %{requester_name} %{requester_nickname} foi aceptado para acceder como contribuínte do borrador colaborativo de %{resource_title}.
collaborative_draft_access_rejected:
email_subject: "%{requester_name} foi rexeitado para acceder como colaborador do %{resource_title} borrador colaborativo."
- notification_title: %{requester_name} %{requester_nickname} foi rexeitado para acceder como contribuínte do borrador colaborativo de %{resource_title}.
collaborative_draft_access_requested:
email_subject: "%{requester_name} solicitou acceso para contribuír a %{resource_title}."
- notification_title: %{requester_name} %{requester_nickname} solicitou acceso para contribuír ao proxecto colaborativo de %{resource_title} . acepta ou rexeita a solicitude.
collaborative_draft_access_requester_accepted:
email_subject: Recibiches como colaborador de %{resource_title}.
notification_title: Recibiches para acceder como colaborador do borrador colaborativo %{resource_title}.
collaborative_draft_access_requester_rejected:
email_subject: Foi rexeitado como colaborador de %{resource_title}.
notification_title: Quedaches rexeitado a acceder como colaborador do borrador colaborativo %{resource_title}.
- collaborative_draft_withdrawn:
- email_subject: "%{author_name} %{author_nickname} retirouse o %{resource_title} borrador colaborativo."
- notification_title: %{author_name} %{author_nickname}retirado o %{resource_title} borrador de colaboración.
creation_enabled:
email_intro: 'Agora podes crear novas propostas en %{participatory_space_title}. Comezar a participar nesta páxina:'
email_outro: Recibiches esta notificación porque estás seguindo %{participatory_space_title}. Podes deixar de recibir notificacións seguindo a ligazón anterior.
@@ -159,11 +148,6 @@ gl:
email_outro: Recibiches esta notificación porque es un autor de "%{resource_title}".
email_subject: Enviouse a súa proposta "%{mentioned_proposal_title}"
notification_title: A túa proposta "%{mentioned_proposal_title}" foi mencionada neste espazo nos comentarios.
- proposal_published:
- email_intro: '%{author_name} %{author_nickname}, quen está seguindo, publicou unha nova proposta chamada "%{resource_title}". Consulte e contribúa:'
- email_outro: Recibiches esta notificación porque estás seguindo %{author_nickname}. Podes deixar de recibir notificacións seguindo a ligazón anterior.
- email_subject: Nova proposta "%{resource_title}" por %{author_nickname}
- notification_title: A %{resource_title} proposta foi publicada por %{author_name} %{author_nickname}.
proposal_published_for_space:
email_intro: A proposta "%{resource_title}" engadiuse a "%{participatory_space_title}" que estás seguindo.
email_outro: Recibiches esta notificación porque estás seguindo "%{participatory_space_title}". Podes deixar de seguir desde a ligazón anterior.
diff --git a/decidim-proposals/config/locales/hu.yml b/decidim-proposals/config/locales/hu.yml
index 3c47f19ae3001..609006ce34678 100644
--- a/decidim-proposals/config/locales/hu.yml
+++ b/decidim-proposals/config/locales/hu.yml
@@ -31,10 +31,6 @@ hu:
models:
proposal:
attributes:
- add_documents:
- needs_to_be_reattached: Újra kell csatolni
- add_photos:
- needs_to_be_reattached: Újra kell csatolni
body:
cant_be_equal_to_template: nem lehet egyenlő a sablonnal
identical: A cím nem lehet azonos
@@ -69,7 +65,6 @@ hu:
'false': Javaslatok
'true': Módosítások
state_eq:
- label: Állapot
values:
accepted: Elfogadva
evaluating: Értékelés
@@ -151,22 +146,16 @@ hu:
accept: Elfogad
collaborative_draft_access_accepted:
email_subject: "%{requester_name} jóváhagyva, mint közreműködő ebben: %{resource_title}."
- notification_title: '%{requester_name} %{requester_nickname} jóváhagyva, mint a közreműködő ebben a közös vázlatban: %{resource_title}.'
collaborative_draft_access_rejected:
email_subject: "%{requester_name} elutasítva, mint közreműködő ebben a közösen szerkesztett vázlatban: %{resource_title}."
- notification_title: '%{requester_name} %{requester_nickname} elutasítva, mint a közreműködő ebben a közös vázlatban: %{resource_title}.'
collaborative_draft_access_requested:
email_subject: "%{requester_name} közreműködési hozzáférést kért ehhez: %{resource_title}."
- notification_title: '%{requester_name} %{requester_nickname} közreműködése hozzáférést kért a következő közös vázlathoz: %{resource_title}. Kérlek, fogadd el vagy utasítsd el a kérelmet.'
collaborative_draft_access_requester_accepted:
email_subject: 'Jóváhagyták közreműködési kérelmedet itt: %{resource_title}.'
notification_title: 'Közreműködési kérelmedet jóváhagyták ebben a közös vázlatban: %{resource_title}.'
collaborative_draft_access_requester_rejected:
email_subject: 'Közreműködési kérelmedet elutasították itt: %{resource_title}.'
notification_title: 'Közreműködési kérelmedet elutasították ebben a közös vázlatban: %{resource_title}.'
- collaborative_draft_withdrawn:
- email_subject: "%{author_name} %{author_nickname} visszavonta a(z) %{resource_title} közös vázlatot."
- notification_title: %{author_name} %{author_nickname}visszavonta a(z) %{resource_title} közös vázlatot.
creation_enabled:
email_intro: 'Mostantól új javaslatokat készíthetsz itt: %{participatory_space_title}! Láss munkának ezen az oldalon:'
email_outro: 'Ezt az értesítést azért kaptad, mert ezt követed: "%{participatory_space_title}". Az értesítéseket a következő linkre kattintva kapcsolhatod ki.'
@@ -177,11 +166,6 @@ hu:
email_outro: Ezt az értesítést megkapta, mert a "%{resource_title}" szerzője.
email_subject: '"%{mentioned_proposal_title}" című javaslatod említésre került'
notification_title: '"%{mentioned_proposal_title}" című javaslatodat említette valaki egy megjegyzésben.'
- proposal_published:
- email_intro: '%{author_name} %{author_nickname}, aki követi, egy új javaslatot tett közzé a "%{resource_title}" -nek. Nézze meg és járuljon hozzá:'
- email_outro: 'Ezt az értesítést azért kaptad, mert őt követed: "%{author_nickname}". Az értesítéseket a következő linkre kattintva kapcsolhatod ki.'
- email_subject: Új javaslat "%{resource_title}" szerint %{author_nickname}
- notification_title: 'A(z) %{resource_title} című javaslat közzétéve általa: %{author_name} %{author_nickname}.'
proposal_published_for_space:
email_intro: 'A(z) "%{resource_title}" című javaslatot hozzáadtuk ehhez: "%{participatory_space_title}" (követed).'
email_outro: 'Ezt az értesítést azért kaptad, mert ezt követed: "%{participatory_space_title}". Leiratkozás az előző link segítségével.'
diff --git a/decidim-proposals/config/locales/id-ID.yml b/decidim-proposals/config/locales/id-ID.yml
index 8d4db995455e4..867182e8d45f4 100644
--- a/decidim-proposals/config/locales/id-ID.yml
+++ b/decidim-proposals/config/locales/id-ID.yml
@@ -28,10 +28,6 @@ id:
models:
proposal:
attributes:
- add_documents:
- needs_to_be_reattached: Perlu disambungkan kembali
- add_photos:
- needs_to_be_reattached: Perlu disambungkan kembali
body:
identical: DAN judul tidak bisa sama
title:
@@ -82,22 +78,16 @@ id:
accept: Menerima
collaborative_draft_access_accepted:
email_subject: "%{requester_name} telah diterima untuk diakses sebagai kontributor dari %{resource_title}."
- notification_title: %{requester_name} %{requester_nickname} telah diterima untuk mengakses sebagai kontributor dari %{resource_title} draf kolaboratif.
collaborative_draft_access_rejected:
email_subject: "%{requester_name} telah ditolak untuk diakses sebagai kontributor dari %{resource_title} draf kolaboratif."
- notification_title: %{requester_name} %{requester_nickname} telah ditolak sebagai kontributor dari %{resource_title} draf kolaboratif.
collaborative_draft_access_requested:
email_subject: "%{requester_name} akses yang diminta untuk berkontribusi ke %{resource_title}."
- notification_title: %{requester_name} %{requester_nickname} meminta akses untuk berkontribusi draf kolaboratif %{resource_title} . Harap menerima atau menolak permintaan.
collaborative_draft_access_requester_accepted:
email_subject: Anda telah diterima sebagai kontributor %{resource_title}.
notification_title: Anda telah diterima untuk mengakses sebagai kontributor dari draf kolaboratif %{resource_title}.
collaborative_draft_access_requester_rejected:
email_subject: Anda telah ditolak sebagai kontributor %{resource_title}.
notification_title: Anda telah ditolak untuk mengakses sebagai kontributor dari draf kolaboratif %{resource_title}.
- collaborative_draft_withdrawn:
- email_subject: "%{author_name} %{author_nickname} menarik %{resource_title} draf kolaboratif."
- notification_title: %{author_name} %{author_nickname}menarik dari %{resource_title} draft kolaboratif.
creation_enabled:
email_intro: 'Anda sekarang dapat membuat proposal baru di %{participatory_space_title}! Mulai berpartisipasi di halaman ini:'
email_outro: Anda telah menerima pemberitahuan ini karena Anda mengikuti %{participatory_space_title}. Anda dapat berhenti menerima notifikasi mengikuti tautan sebelumnya.
@@ -106,11 +96,6 @@ id:
email_outro: Anda telah menerima pemberitahuan ini karena Anda adalah pengarang "%{resource_title}".
email_subject: Proposal Anda "%{mentioned_proposal_title}" telah disebutkan
notification_title: Proposal Anda "%{mentioned_proposal_title}" telah disebutkan dalam ruang di komentar.
- proposal_published:
- email_intro: '%{author_name} %{author_nickname}, siapa yang Anda ikuti, telah menerbitkan proposal baru yang disebut "%{resource_title}". Lihat dan sumbangkan:'
- email_outro: Anda telah menerima pemberitahuan ini karena Anda mengikuti %{author_nickname}. Anda dapat berhenti menerima notifikasi mengikuti tautan sebelumnya.
- email_subject: Proposal baru "%{resource_title}" oleh %{author_nickname}
- notification_title: Proposal %{resource_title} diterbitkan oleh %{author_name} %{author_nickname}.
proposal_published_for_space:
email_intro: Proposal "%{resource_title}" telah ditambahkan ke "%{participatory_space_title}" yang Anda ikuti.
email_outro: Anda telah menerima pemberitahuan ini karena Anda mengikuti "%{participatory_space_title}". Anda dapat berhenti mengikutinya dari tautan sebelumnya.
diff --git a/decidim-proposals/config/locales/is-IS.yml b/decidim-proposals/config/locales/is-IS.yml
index d36c77714a084..02000350711a4 100644
--- a/decidim-proposals/config/locales/is-IS.yml
+++ b/decidim-proposals/config/locales/is-IS.yml
@@ -43,9 +43,6 @@ is:
proposal_mentioned:
email_subject: Tillagan þín "%{mentioned_proposal_title}" hefur verið minnst
notification_title: Tillaga þín "%{mentioned_proposal_title}" hefur verið nefnd í þessu rými í athugasemdunum.
- proposal_published:
- email_outro: Þú hefur fengið þessa tilkynningu vegna þess að þú fylgist með %{author_nickname}. Þú getur hætt við að fá tilkynningar eftir fyrri tengilinn.
- notification_title: %{resource_title} tillöguna var gefin út af %{author_name} %{author_nickname}.
proposal_published_for_space:
email_intro: Tillagan "%{resource_title}" hefur verið bætt við "%{participatory_space_title}" sem þú fylgist með.
voting_enabled:
diff --git a/decidim-proposals/config/locales/it.yml b/decidim-proposals/config/locales/it.yml
index 3f27b9db225dc..bbe3df92708f2 100644
--- a/decidim-proposals/config/locales/it.yml
+++ b/decidim-proposals/config/locales/it.yml
@@ -34,10 +34,6 @@ it:
models:
proposal:
attributes:
- add_documents:
- needs_to_be_reattached: Necessita di essere riallegato
- add_photos:
- needs_to_be_reattached: Necessita di essere riallegato
body:
cant_be_equal_to_template: non può essere uguale al modello
identical: Il titolo AND non può essere identico
@@ -77,7 +73,6 @@ it:
'false': Proposte
'true': Emendamenti
state_eq:
- label: Stato
values:
accepted: Accettato
evaluating: Valutato
@@ -102,7 +97,6 @@ it:
attachments_allowed: Consenti allegati
collaborative_drafts_enabled: Bozze collaborative abilitate
comments_enabled: Commenti abilitati
- comments_max_length: Lunghezza massima dei commenti (Lasciare 0 per il valore predefinito)
default_sort_order_options:
random: Casuale
recent: Recenti
@@ -152,22 +146,16 @@ it:
accept: Accettare
collaborative_draft_access_accepted:
email_subject: "%{requester_name} è stato accettato per accedere come contributore del %{resource_title}."
- notification_title: %{requester_name} %{requester_nickname} è stato accettato come contributore del progetto collaborativo %{resource_title}.
collaborative_draft_access_rejected:
email_subject: "%{requester_name} è stato rifiutato per accedere come contributore della %{resource_title} bozza collaborativa."
- notification_title: %{requester_name} %{requester_nickname} è stato rifiutato per accedere come contributore del progetto collaborativo %{resource_title}.
collaborative_draft_access_requested:
email_subject: "%{requester_name} accesso richiesto per contribuire a %{resource_title}."
- notification_title: %{requester_name} %{requester_nickname} richiesto accesso per contribuire alla stesura di collaborazione %{resource_title} . Si prega di accettare o rifiutare la richiesta.
collaborative_draft_access_requester_accepted:
email_subject: Sei stato accettato come contributore di %{resource_title}.
notification_title: Sei stato accettato a come collaboratore del progetto collaborativo %{resource_title}.
collaborative_draft_access_requester_rejected:
email_subject: Sei stato rifiutato come contributore di %{resource_title}.
notification_title: Sei stato respinto per accedere come contributore alla bozza collaborativa %{resource_title}.
- collaborative_draft_withdrawn:
- email_subject: "%{author_name} %{author_nickname} ritirato il %{resource_title} progetto di collaborazione."
- notification_title: %{author_name} %{author_nickname}ritirato il %{resource_title} progetto collaborativo.
creation_enabled:
email_intro: 'Ora puoi creare nuove proposte in %{participatory_space_title}! Inizia a partecipare a questa pagina:'
email_outro: Hai ricevuto questa notifica perché stai seguendo %{participatory_space_title}. È possibile interrompere la ricezione di notifiche facendo click su pulsante Smetti di seguire nella pagina del processo che stai seguendo.
@@ -177,11 +165,6 @@ it:
email_outro: Hai ricevuto questa notifica perché sei un autore di "%{resource_title}".
email_subject: La tua proposta "%{mentioned_proposal_title}" è stata menzionata
notification_title: La tua proposta "%{mentioned_proposal_title}" è stata menzionata in questo spazio nei commenti.
- proposal_published:
- email_intro: '%{author_name} %{author_nickname}, chi stai seguendo, ha pubblicato una nuova proposta denominata "%{resource_title}". Dai un''occhiata e dai:'
- email_outro: Hai ricevuto questa notifica perché stai seguendo %{author_nickname}. È possibile interrompere la ricezione di notifiche seguendo il collegamento precedente.
- email_subject: Nuova proposta "%{resource_title}" di %{author_nickname}
- notification_title: La %{resource_title} proposta è stata pubblicata da %{author_name} %{author_nickname}.
proposal_published_for_space:
email_intro: La proposta "%{resource_title}" è stata aggiunta a "%{participatory_space_title}" che stai seguendo.
email_outro: Hai ricevuto questa notifica perché stai seguendo "%{participatory_space_title}". Puoi smettere di seguirlo dal link precedente.
diff --git a/decidim-proposals/config/locales/ja.yml b/decidim-proposals/config/locales/ja.yml
index 5f573510a46d3..299526a2d6272 100644
--- a/decidim-proposals/config/locales/ja.yml
+++ b/decidim-proposals/config/locales/ja.yml
@@ -63,9 +63,7 @@ ja:
allowed_file_content_types: '無効なドキュメントタイプです。次の拡張子を持つファイルのみ許可されています: %{types}'
proposal:
attributes:
- add_documents:
- needs_to_be_reattached: 再接続が必要
- add_photos:
+ add_attachments:
needs_to_be_reattached: 再接続が必要
body:
cant_be_equal_to_template: はテンプレートと等しくすることはできません
@@ -123,10 +121,7 @@ ja:
values:
'false': 提案
'true': 修正
- proposal_state_id_eq:
- label: ステータス
state_eq:
- label: 州(県)
values:
accepted: 受理
evaluating: 評価
@@ -175,7 +170,7 @@ ja:
collaborative_drafts_enabled: 共同草稿を有効にする
collaborative_drafts_enabled_help: 共同草案機能は Decidim v0.32 で廃止されます。この機能を現在使用している組織は、新しい提案共同作成機能に移行することができます。
comments_enabled: コメントを有効にする
- comments_max_length: コメント最大長 (デフォルト値は 0 のまま)
+ comments_max_length: 各コメントの最大文字数 (0はデフォルト値のまま)
default_sort_order: デフォルトの提案の並べ替え
default_sort_order_help: '「自動」にすると、投票が有効になっている間、提案はランダムにソートされます。 投票がブロックされると、最も投票数が多い順に並べられます'
default_sort_order_options:
@@ -274,17 +269,17 @@ ja:
email_intro: '%{author_name} は %{resource_title} でプライベートノートを作成しました。 管理パネル で確認してください。'
email_outro: 提案を評価できるため、この通知を受け取りました。
email_subject: 誰かが提案 %{resource_title} にメモを残しました。
- notification_title: %{author_name} %{author_nickname} が %{resource_title}にプライベートノートを作成しました。 管理者パネル で確認してください。
+ notification_title: %{author_name} が %{resource_title}にプライベートノートを作成しました。 管理者パネル で確認してください。
proposal_note_mentioned:
email_intro: '"%{resource_title}" 内の "%{author_name}" "%{author_nickname}" によるプライベートノートで言及されました。管理パネルで確認してください。'
email_outro: プライベートノートで言及されているため、この通知を受信しました。
email_subject: 誰かが提案 %{resource_title} のメモであなたをメンションしました。
- notification_title: %{resource_title}" 内の%{author_name} %{author_nickname} によるプライベートノートで言及されました。管理パネルで確認してください。
+ notification_title: %{resource_title} において、%{author_name} からの非公開ノートで言及されました。管理者パネルでご確認ください。
proposal_note_replied:
email_intro: '%{author_name} は %{resource_title} のプライベートノートに返信しました。 管理パネル で確認してください。'
email_outro: あなたがノートの作成者であるため、この通知を受信しました。
email_subject: "%{author_name} が %{resource_title} 内のあなたのプライベートノートに返信しました。"
- notification_title: %{author_name} %{author_nickname} が %{resource_title}内のあなたのプライベートノートに返信しました。 管理者パネル で確認してください。
+ notification_title: %{author_name} が %{resource_title} 内のあなたの非公開ノートに返信しました。管理者パネルでご確認ください。
coauthor_accepted_invite:
notification_title: %{coauthor_name} は提案 %{resource_title} の共著者になるための招待を承諾しました。
coauthor_invited:
@@ -301,17 +296,17 @@ ja:
email_intro: '%{requester_name} は、 %{resource_title} の共同草案のコントリビューターとして承認されました。'
email_outro: %{resource_title} のコラボレーターであるため、この通知を受け取りました。
email_subject: "%{requester_name} は %{resource_title} の貢献者としてアクセスできるようになりました。"
- notification_title: %{requester_name} %{requester_nickname} は、 コントリビューターとして%{resource_title} 共同草案のコントリビューターとしてアクセスできるようになりました。
+ notification_title: %{resource_title} の共同ドラフトについて、%{requester_name} が 協力者としてアクセスを承認されました。
collaborative_draft_access_rejected:
email_intro: '%{requester_name} は、 %{resource_title} の共同草案のコントリビューターとしてのアクセスを拒否されました。'
email_outro: %{resource_title} のコラボレーターであるため、この通知を受け取りました。
email_subject: "%{requester_name} は、 %{resource_title} の共同草案の貢献者としてアクセスするために拒否されました。"
- notification_title: %{requester_name} %{requester_nickname} が コントリビューターとしてアクセスを拒否されました %{resource_title} 共同草案のコントリビューター
+ notification_title: %{requester_name} は %{resource_title} の共同ドラフトの 寄稿者としてのアクセスを却下されました。
collaborative_draft_access_requested:
email_intro: '%{requester_name} がコントリビューターとしてアクセスをリクエストしました。 %{resource_title} の共同草案ページからリクエストを承認または拒否できます。'
email_outro: %{resource_title} のコラボレーターであるため、この通知を受け取りました。
email_subject: "%{requester_name} が %{resource_title} に貢献するためにアクセスをリクエストしました。"
- notification_title: %{requester_name} %{requester_nickname} は、 %{resource_title} の共同草案にアクセスをリクエストしました。 リクエストを承認または拒否してください。
+ notification_title: %{requester_name} が %{resource_title} の共同ドラフトに協力するためのアクセスをリクエストしました。このリクエストを承認または拒否してください。
collaborative_draft_access_requester_accepted:
email_intro: %{resource_title} の共同草案のコントリビューターとして承認されました。
email_outro: %{resource_title} のコラボレーターになることをリクエストしたため、この通知を受け取りました。
@@ -323,10 +318,10 @@ ja:
email_subject: '%{resource_title} の貢献者として拒否されました。'
notification_title: 共同草稿%{resource_title}の投稿者としてのアクセスを拒否されました。
collaborative_draft_withdrawn:
- email_intro: %{author_name} %{author_nickname} は、 %{resource_title} の共同草案を撤回しました。
+ email_intro: %{author_name} が %{resource_title} の共同ドラフトを撤回しました。
email_outro: %{resource_title} のコラボレーターであるため、この通知を受け取りました。
- email_subject: "%{author_name} %{author_nickname} は %{resource_title} の共同草案を撤回しました。"
- notification_title: %{author_name} %{author_nickname} が、共同草稿 %{resource_title} を撤回しました。
+ email_subject: "%{author_name} が %{resource_title} の共同ドラフトを撤回しました。"
+ notification_title: %{author_name} が %{resource_title} の共同ドラフトを 取り下げました。
creation_enabled:
email_intro: '%{participatory_space_title}で新しい提案を作成できるようになりました! このページに参加してください:'
email_outro: '%{participatory_space_title}をフォローしているため、この通知を受け取りました。前のリンクに続く通知の受信を停止することができます。'
@@ -348,10 +343,10 @@ ja:
email_subject: 提案 %{resource_title} がマージされました
notification_title: 提案 %{resource_title} は管理者によってマージされました。
proposal_published:
- email_intro: 'あなたがフォローしている%{author_name} %{author_nickname}は、「%{resource_title}」という新しい提案を公開しました。チェックして貢献してください:'
- email_outro: '%{author_nickname}をフォローしているため、この通知を受け取りました。前のリンクに続く通知の受信を停止することができます。'
- email_subject: '%{resource_title}による新しい提案 " %{author_nickname}"'
- notification_title: %{resource_title} の提案は %{author_name} %{author_nickname} によって公表されました。
+ email_intro: 'あなたがフォローしている %{author_name} さんが新しい提案「%{resource_title}」を作成しました。ぜひ内容を確認し、ご意見をお寄せください:'
+ email_outro: '%{author_name} をフォローしているため、この通知が届きました。上記のリンクから通知の受信を停止できます。'
+ email_subject: '" %{author_name}"による新しい提案%{resource_title}'
+ notification_title: %{resource_title} 提案を %{author_name} が公開しました。
proposal_published_for_space:
email_intro: あなたがフォローしている提案「%{resource_title}」が「%{participatory_space_title}」に追加されました。
email_outro: '「%{participatory_space_title}」をフォローしているため、この通知を受け取りました。前のリンクに続く通知の受信を停止できます。'
@@ -654,6 +649,7 @@ ja:
number_of_proposals: '%{number} 件の提案に対する回答が公開されますか?'
select_a_proposal: 提案を選択してください。
show:
+ address: 住所
amendments_count: 修正数
assigned_evaluators: 評価者に割り当てられました
body: 本文
@@ -849,6 +845,7 @@ ja:
errors:
device_not_supported: お使いのデバイスは位置情報サービスをサポートしていません。アドレスを手動で入力してください。
no_device_location: 申し訳ありませんが、場所を検出できませんでした。アドレスを手動で入力してください。
+ locating: 位置情報を取得中…
use_my_location: 現在地を使用
invite_coauthors:
cancel:
diff --git a/decidim-proposals/config/locales/lt.yml b/decidim-proposals/config/locales/lt.yml
index 709e6a1e1ef2e..51827e3b8debe 100644
--- a/decidim-proposals/config/locales/lt.yml
+++ b/decidim-proposals/config/locales/lt.yml
@@ -39,10 +39,6 @@ lt:
allowed_file_content_types: 'Nevalidus turinio tipas. Leidžiamos rinkmenos tik su šiomis galūnėmis: %{types}'
proposal:
attributes:
- add_documents:
- needs_to_be_reattached: Reikia pridėti iš naujo
- add_photos:
- needs_to_be_reattached: Reikia pridėti iš naujo
body:
cant_be_equal_to_template: negali prilygti šablonui
identical: IR pavadinimas negali sutapti
@@ -88,7 +84,6 @@ lt:
'false': Pasiūlymai
'true': Pataisos
state_eq:
- label: Būsena
values:
accepted: Priimta
evaluating: Vertinamas
@@ -119,7 +114,6 @@ lt:
attachments_allowed: Leisti failų prisegimus
collaborative_drafts_enabled: Bendri projektai įjungti
comments_enabled: Komentarai įjungti
- comments_max_length: Maksimalus komentarų ilgis (Palikite 0 kaip numatytą vertę)
default_sort_order: Numatytas pasiūlymų rikiavimas
default_sort_order_options:
most_commented: Labiausiai komentuojamas
@@ -182,17 +176,14 @@ lt:
email_intro: '%{requester_name} buvo priimtas kaip %{resource_title} bendradarbiavimo juodraščio bendradarbis.'
email_outro: Šį pranešimą gavote dėl to, kad esate %{resource_title} bendraautorius.
email_subject: "%{requester_name}, kaip %{resource_title} bendraautoriui, suteikta prieiga."
- notification_title: %{requester_name} %{requester_nickname}, , kaip bendro juodraščio %{resource_title} bendraautoriui, suteikta prieiga.
collaborative_draft_access_rejected:
email_intro: '%{requester_name} buvo atmestas kaip %{resource_title} bendradarbiavimo juodraščio bendradarbis.'
email_outro: Šį pranešimą gavote dėl to, kad esate %{resource_title} bendraautorius.
email_subject: "%{requester_name} nesuteikta prieigos prie bendro juodraščio %{resource_title} kaip bendraautoriui."
- notification_title: %{requester_name} %{requester_nickname} nesuteikta prieigos kaip juodraščio %{resource_title} bendraautoriui.
collaborative_draft_access_requested:
email_intro: '%{requester_name} paprašė prieigos kaip bendraautorius. Galite priimti arba atmesti užklausą iš bendro juodraščio %{resource_title} puslapio.'
email_outro: Šį pranešimą gavote dėl to, kad esate %{resource_title} bendraautorius.
email_subject: "%{requester_name} paprašė prieigos, kad galėtų prisidėti prie %{resource_title}."
- notification_title: %{requester_name} %{requester_nickname} paprašė prieigos, kad galėtų prisidėti prie bendro juodraščio %{resource_title}. Užklausą priimkite arba atmeskite.
collaborative_draft_access_requester_accepted:
email_intro: Jums suteikta prieiga kaip bendro juodraščio %{resource_title} bendraautoriui.
email_outro: Šį pranešimą gavote dėl to, kad pateikėte prašymą tapti %{resource_title} bendraautoriumi.
@@ -204,10 +195,7 @@ lt:
email_subject: Jūs prašymas tapti %{resource_title} bendraautoriumi atmestas.
notification_title: Jums nesuteikta prieiga prie juodraščio %{resource_title}.
collaborative_draft_withdrawn:
- email_intro: %{author_name} %{author_nickname} atsiėmė %{resource_title} juodraštį.
email_outro: Šį pranešimą gavote dėl to, kad esate %{resource_title} bendraautorius.
- email_subject: "%{author_name} %{author_nickname} atsiėmė juodraštį %{resource_title}."
- notification_title: %{author_nickname} atsiėmė%{resource_title} juodraštį.
creation_enabled:
email_intro: 'Dabar galite kurti naujus pasiūlymus %{participatory_space_title}! Pradėti dalyvauti šiame puslapyje:'
email_outro: Šį pranešimą gavote dėl to, kad sekate %{participatory_space_title}. Jeigu nebenorite gauti pranešimų, spustelėkite ankstesnę nuorodą.
@@ -218,11 +206,6 @@ lt:
email_outro: Šį pranešimą gavote dėl to, kad esate „%{resource_title}“ autorius.
email_subject: Jūsų pasiūlymas „%{mentioned_proposal_title}“ buvo paminėtas
notification_title: Jūsų pasiūlymas „%{mentioned_proposal_title}“ buvo paminėtas šioje erdvėje komentaruose.
- proposal_published:
- email_intro: '%{author_name} %{author_nickname}, kurį sekate, paskelbė naują pasiūlymą, pavadintą „%{resource_title}“. Peržiūrėkite ir prisidėkite:'
- email_outro: Šį pranešimą gavote dėl to, kad sekate %{author_nickname}. Jeigu nebenorite gauti pranešimų, spustelėkite aukščiau esančią nuorodą.
- email_subject: '%{author_nickname} pateikė naują pasiūlymą "%{resource_title}"'
- notification_title: %{author_name} %{author_nickname} paskelbė pasiūlymą %{resource_title}.
proposal_published_for_space:
email_intro: Erdvėje „%{participatory_space_title}“, kurią sekate, pridėtas pasiūlymas „%{resource_title}“.
email_outro: Šį pranešimą gavote dėl to, kad sekate „%{participatory_space_title}“. Jeigu nebenorite gauti pranešimų, spustelėkite ankstesnę nuorodą.
diff --git a/decidim-proposals/config/locales/lv.yml b/decidim-proposals/config/locales/lv.yml
index 0fba7ecfa8d54..8e0154ae158ea 100644
--- a/decidim-proposals/config/locales/lv.yml
+++ b/decidim-proposals/config/locales/lv.yml
@@ -29,10 +29,6 @@ lv:
models:
proposal:
attributes:
- add_documents:
- needs_to_be_reattached: Jāpievieno no jauna
- add_photos:
- needs_to_be_reattached: Jāpievieno no jauna
body:
cant_be_equal_to_template: nevar būt vienāds ar veidni
identical: UN nosaukums nevar būt identisks
@@ -112,22 +108,16 @@ lv:
accept: Pieņemt
collaborative_draft_access_accepted:
email_subject: "%{requester_name} ir pieņemts, lai piekļūtu kā līdzautors %{resource_title}."
- notification_title: %{requester_name} %{requester_nickname} ir pieņemts, lai piekļūtu kā līdzautors%{resource_title} sadarbības projektā.
collaborative_draft_access_rejected:
email_subject: "%{requester_name} ir atteikta piekļuve kā līdzautoram %{resource_title} sadarbības projektā."
- notification_title: %{requester_name} %{requester_nickname} ir atteikta piekļuve, kā līdzautoram%{resource_title} sadarbības projektā.
collaborative_draft_access_requested:
email_subject: "%{requester_name} pieprasīja piekļuvi, lai līdzdarbotos %{resource_title}."
- notification_title: %{requester_name} %{requester_nickname} pieprasīja piekļuvi, lai līdzdarbotos %{resource_title} sadarbības projektā. Lūdzu, pieņemiet vai noraidiet pieprasījumu.
collaborative_draft_access_requester_accepted:
email_subject: Jūs pieņēma par %{resource_title} līdzautoru.
notification_title: Jums piešķirta piekļuve kā līdzautoram%{resource_title} sadarbības projektā.
collaborative_draft_access_requester_rejected:
email_subject: Jūsu pieteikums kļūt par %{resource_title} līdzautoru ir atteikts.
notification_title: Jums atteikta iespēja piekļūt kā līdzautoram%{resource_title} sadarbības projektā.
- collaborative_draft_withdrawn:
- email_subject: "%{author_name} %{author_nickname} atsauca %{resource_title} sadarbības projektu."
- notification_title: %{author_name} %{author_nickname} atsauca %{resource_title} sadarbības projektu.
creation_enabled:
email_intro: 'Tagad jūs varat izveidot jaunu priekšlikumu telpā %{participatory_space_title}! Sāciet piedalīties šajā lapā:'
email_outro: Jūs saņēmāt šo paziņojumu, jo sekojat %{participatory_space_title}. Jūs varat atteikties no paziņojumu saņemšanas, sekojot iepriekšējai saitei.
@@ -137,11 +127,6 @@ lv:
email_outro: Jūs saņēmāt šo paziņojumu, jo esat "%{resource_title}" autors.
email_subject: Jūsu priekšlikums "%{mentioned_proposal_title}" ir pieminēts
notification_title: Jūsu priekšlikums "%{mentioned_proposal_title}" ir pieminēts šajā telpā komentāros.
- proposal_published:
- email_intro: '%{author_name} %{author_nickname}, kam jūs sekojat, ir publicējis jaunu priekšlikumu ar nosaukumu "%{resource_title}". Aplūkojiet to un piedalieties:'
- email_outro: Jūs saņēmāt šo paziņojumu, jo sekojat %{author_nickname}. Jūs varat atteikties no paziņojumu saņemšanas, sekojot iepriekšējai saitei.
- email_subject: Jauns %{author_nickname} priekšlikums "%{resource_title}"
- notification_title: %{resource_title} iniciatīvu publicēja%{author_name} %{author_nickname}.
proposal_published_for_space:
email_intro: Priekšlikums "%{resource_title}" ir pievienots "%{participatory_space_title}", kam jūs sekojat.
email_outro: Jūs saņēmāt šo paziņojumu, jo sekojat "%{participatory_space_title}". Jūs varat atteikties no paziņojumu saņemšanas, sekojot iepriekšējai saitei.
diff --git a/decidim-proposals/config/locales/nl.yml b/decidim-proposals/config/locales/nl.yml
index 88e8c0fde4fe7..1079acf60b714 100644
--- a/decidim-proposals/config/locales/nl.yml
+++ b/decidim-proposals/config/locales/nl.yml
@@ -34,10 +34,6 @@ nl:
models:
proposal:
attributes:
- add_documents:
- needs_to_be_reattached: Moet opnieuw worden gekoppeld
- add_photos:
- needs_to_be_reattached: Moet opnieuw worden gekoppeld
body:
cant_be_equal_to_template: mag niet gelijk zijn aan het template
identical: EN titel kan niet identiek zijn
@@ -86,7 +82,6 @@ nl:
attachments_allowed: Bijlagen toestaan
collaborative_drafts_enabled: Samenwerkingsconcepten ingeschakeld
comments_enabled: Reacties ingeschakeld
- comments_max_length: Commentaar maximale lengte (laat 0 voor standaard waarde)
default_sort_order: Standaardsortering
default_sort_order_options:
most_commented: Meeste reacties
@@ -147,22 +142,16 @@ nl:
accept: Aanvaarden
collaborative_draft_access_accepted:
email_subject: "%{requester_name} is geaccepteerd om toegang te krijgen als een bijdrager van de %{resource_title}."
- notification_title: %{requester_name} %{requester_nickname} is aanvaard om als bijdrager van de %{resource_title} gezamenlijk ontwerp toegang te krijgen.
collaborative_draft_access_rejected:
email_subject: "%{requester_name} is afgewezen om toegang te krijgen als bijdrager van de %{resource_title} gezamenlijk ontwerp."
- notification_title: %{requester_name} %{requester_nickname} is afgewezen om toegang te krijgen als bijdrager van de %{resource_title} gezamenlijk ontwerp.
collaborative_draft_access_requested:
email_subject: "%{requester_name} vroeg om toegang om bij te dragen aan %{resource_title}."
- notification_title: %{requester_name} %{requester_nickname} verzocht om toegang om bij te dragen aan de %{resource_title} gezamenlijk ontwerp. Gelieve accepteren of het verzoek af te wijzen.
collaborative_draft_access_requester_accepted:
email_subject: Je bent geaccepteerd als een bijdrager van %{resource_title}.
notification_title: U bent geaccepteerd om als bijdrager van de %{resource_title} gezamenlijk ontwerp toegang te krijgen.
collaborative_draft_access_requester_rejected:
email_subject: Je bent afgewezen als een bijdrager van %{resource_title}.
notification_title: U bent afgewezen om toegang te krijgen als bijdrager van de %{resource_title} gezamenlijke ontwerp.
- collaborative_draft_withdrawn:
- email_subject: "%{author_name} %{author_nickname} de %{resource_title} gezamenlijk ontwerp ingetrokken."
- notification_title: %{author_name} %{author_nickname}teruggetrokken de %{resource_title} gezamenlijk ontwerp.
creation_enabled:
email_intro: 'Je kan nu nieuwe voorstellen maken in %{participatory_space_title}! Neem deel via deze link:'
email_outro: Je hebt deze melding ontvangen omdat je %{participatory_space_title} volgt. Schakel de meldingen uit door te klikken op de voorgaande link.
@@ -172,11 +161,6 @@ nl:
email_outro: U hebt deze melding ontvangen omdat u een auteur bent van "%{resource_title}".
email_subject: Jouw voorstel "%{mentioned_proposal_title}" is vernoemd
notification_title: Je voorstel '%{mentioned_proposal_title}' werd in de reacties van deze vernoemd.
- proposal_published:
- email_intro: '%{author_name} %{author_nickname}, wie u volgt, heeft een nieuw voorstel gepubliceerd met de naam "%{resource_title}". Bekijk het en draag bij:'
- email_outro: Je hebt deze melding ontvangen omdat je %{author_nickname}volgt. Je kan de meldingen uitschakelen door te klikken op de voorgaande link.
- email_subject: Nieuw voorstel "%{resource_title}" door %{author_nickname}
- notification_title: Het %{resource_title} voorstel werd gepubliceerd door %{author_name} %{author_nickname}.
proposal_published_for_space:
email_intro: Het voorstel "%{resource_title}" is toegevoegd aan "%{participatory_space_title}" dat je volgt.
email_outro: Je hebt deze melding ontvangen omdat je "%{participatory_space_title}" volgt. Schakel de meldingen uit door op bovenstaande link te klikken en te stoppen met volgen.
diff --git a/decidim-proposals/config/locales/no.yml b/decidim-proposals/config/locales/no.yml
index 5c9e6247fc11c..7dd8ef27db4a3 100644
--- a/decidim-proposals/config/locales/no.yml
+++ b/decidim-proposals/config/locales/no.yml
@@ -34,10 +34,6 @@
models:
proposal:
attributes:
- add_documents:
- needs_to_be_reattached: Må festes på nytt
- add_photos:
- needs_to_be_reattached: Må festes på nytt
body:
cant_be_equal_to_template: kan ikke være lik malen
identical: OG tittelen kan ikke være identisk
@@ -77,7 +73,6 @@
'false': Forslag
'true': Endringer
state_eq:
- label: Tilstand
values:
accepted: Aksepterte
evaluating: Vurderer
@@ -102,7 +97,6 @@
attachments_allowed: Tillat vedlegg
collaborative_drafts_enabled: Samarbeids utkaster aktivert
comments_enabled: Kommentarer aktivert
- comments_max_length: Maks lengde på kommentarer (Sett 0 for standardverdi)
default_sort_order: Standard sortering av forslag
default_sort_order_options:
most_commented: Mest kommenterte
@@ -158,22 +152,16 @@
accept: Aksepter
collaborative_draft_access_accepted:
email_subject: "%{requester_name} har blitt akseptert tilgang som bidragsyter til %{resource_title}."
- notification_title: %{requester_name} %{requester_nickname} har blitt akseptert tilgang som bidragsyter av %{resource_title} samarbeids utkastet.
collaborative_draft_access_rejected:
email_subject: "%{requester_name} har blitt avslått tilgang som bidragsyter til %{resource_title} samarbeids utkastet."
- notification_title: %{requester_name} %{requester_nickname} har blitt avvist tilgang som bidragsyter av %{resource_title} samarbeids utkastet.
collaborative_draft_access_requested:
email_subject: "%{requester_name} ba om tilgang som bidragsyter til %{resource_title}."
- notification_title: %{requester_name} %{requester_nickname} forespurte om tilgang til å bidra til %{resource_title} samarbeids utkastet. Vennligst godta eller avslå forespørselen.
collaborative_draft_access_requester_accepted:
email_subject: Du er blitt akseptert som en bidragsgiver av %{resource_title}.
notification_title: Du har blitt akseptert tilgang som bidragsgiver av %{resource_title} samarbeids utkastet.
collaborative_draft_access_requester_rejected:
email_subject: Du er blitt avvist som en bidragsgiver av %{resource_title}.
notification_title: Du har blitt avvist tilgang som bidragsgiver av %{resource_title} samarbeids utkastet.
- collaborative_draft_withdrawn:
- email_subject: "%{author_name}%{author_nickname} trukket tilbake %{resource_title} samarbeids utkast."
- notification_title: %{author_name} %{author_nickname}trakk%{resource_title} samarbeids utkastet.
creation_enabled:
email_intro: 'Du kan nå lage nye forslag i %{participatory_space_title}! Begynn å delta på denne siden:'
email_outro: Du har mottatt denne varslingen fordi du følger %{participatory_space_title}. Du kan slutte å motta varsler hvis du følger den forrige lenken.
@@ -182,11 +170,6 @@
email_outro: Du har mottatt denne varslingen fordi du er en forfatter av "%{resource_title}".
email_subject: Forslaget ditt "%{mentioned_proposal_title}" er blitt nevnt
notification_title: Forslaget ditt "%{mentioned_proposal_title}" har blitt nevnt i dette området i kommentarene.
- proposal_published:
- email_intro: '%{author_name}%{author_nickname}, som du følger, har publisert et nytt forslag kalt "%{resource_title}". Sjekk det ut og bidra:'
- email_outro: Du har mottatt denne varslingen fordi du følger %{author_nickname}. Du kan slutte å motta varsler hvis du følger den forrige lenken.
- email_subject: Nytt forslag "%{resource_title}" av %{author_nickname}
- notification_title: %{resource_title} forslaget var publisert av %{author_name} %{author_nickname}.
proposal_published_for_space:
email_intro: Forslaget "%{resource_title}" er blitt lagt til "%{participatory_space_title}" som du følger.
email_outro: Du har mottatt denne varslingen fordi du følger "%{participatory_space_title}". Du kan slutte å motta varsler hvis du følger den forrige lenken.
diff --git a/decidim-proposals/config/locales/pl.yml b/decidim-proposals/config/locales/pl.yml
index 1490f44a3d9cc..59932a06d4c8a 100644
--- a/decidim-proposals/config/locales/pl.yml
+++ b/decidim-proposals/config/locales/pl.yml
@@ -52,10 +52,6 @@ pl:
allowed_file_content_types: 'Nieprawidłowy typ dokumentu. Dozwolone są tylko pliki z następującymi rozszerzeniami: %{types}'
proposal:
attributes:
- add_documents:
- needs_to_be_reattached: Musi zostać ponownie załączony
- add_photos:
- needs_to_be_reattached: Musi zostać ponownie załączony
body:
cant_be_equal_to_template: nie może być taki sam jak szablon
identical: I tytuł nie może być identyczny
@@ -100,10 +96,7 @@ pl:
values:
'false': Propozycje
'true': Poprawki
- proposal_state_id_eq:
- label: Stan
state_eq:
- label: Stan
values:
accepted: Zaakceptowano
evaluating: Ocena
@@ -137,7 +130,6 @@ pl:
can_accumulate_votes_beyond_threshold: Może gromadzić głosy powyżej progu
collaborative_drafts_enabled: Zezwalaj na wspólne szkice
comments_enabled: Komentarze włączone
- comments_max_length: Maksymalna długość komentarzy (Pozostaw 0 dla wartości domyślnej)
default_sort_order: Domyślne sortowanie propozycji
default_sort_order_help: Automatycznie oznacza, że jeśli głosy są włączone, propozycje będą wyświetlane w losowej kolejności i jeśli głosy zostaną zablokowane, zostaną posortowane według tych z największą ilością głosów.
default_sort_order_options:
@@ -212,17 +204,14 @@ pl:
email_intro: '%{requester_name} otrzymał(a) dostęp jako współtwórca wspólnego szkicu %{resource_title}.'
email_outro: Otrzymujesz to powiadomienie, ponieważ współpracujesz przy dokumencie %{resource_title}.
email_subject: "%{requester_name} otrzymał(a) dostęp jako współtwórca %{resource_title}."
- notification_title: %{requester_name} %{requester_nickname} otrzymał(a) dostęp jako współtwórca wspólnego szkicu %{resource_title}.
collaborative_draft_access_rejected:
email_intro: 'Nie przyznano Ci dostępu jako osobie uczestniczącej w tworzeniu wspólnego projektu dokumentu %{resource_title}.'
email_outro: Otrzymujesz to powiadomienie, ponieważ współpracujesz przy dokumencie %{resource_title}.
email_subject: "%{requester_name} nie otrzymał(a) dostępu jako współtwórca wspólnego szkicu %{resource_title}."
- notification_title: %{requester_name} %{requester_nickname}nie otrzymał(a) dostępu jako współtwórca wspólnego szkicu %{resource_title}.
collaborative_draft_access_requested:
email_intro: '%{requester_name} poprosił(a) o dostęp jako współtwórca. Możesz zaakceptować lub odrzucić prośbę na stronie wspólnego szkicu %{resource_title}.'
email_outro: Otrzymujesz to powiadomienie, ponieważ współpracujesz przy dokumencie %{resource_title}.
email_subject: "%{requester_name} prosi o dostęp do współtworzenia %{resource_title}."
- notification_title: %{requester_name} %{requester_nickname} prosi o dostęp do współtworzenia wspólnego szkicu %{resource_title}. Zaakceptuj lub odrzuć prośbę.
collaborative_draft_access_requester_accepted:
email_intro: Zostałeś zaakceptowany(a) jako współtwórca wspólnego szkicu %{resource_title}.
email_outro: Otrzymujesz to powiadomienie, ponieważ chcesz współpracować przy %{resource_title}.
@@ -234,10 +223,7 @@ pl:
email_subject: Zostałeś odrzucony jako współtwórca %{resource_title}.
notification_title: Nie otrzymałeś dostępu jako współtwórca wspólnego szkicu %{resource_title}.
collaborative_draft_withdrawn:
- email_intro: %{author_name} %{author_nickname} wycofał(a) wspólny szkic %{resource_title}.
email_outro: Otrzymujesz to powiadomienie, ponieważ współpracujesz przy dokumencie %{resource_title}.
- email_subject: "%{author_name} %{author_nickname} wycofał(a) wspólny szkic %{resource_title}."
- notification_title: %{author_name} %{author_nickname}wycofał(a) wspólny szkic %{resource_title}.
creation_enabled:
email_intro: 'Możesz teraz tworzyć nowe propozycje w %{participatory_space_title}! Dołącz na tej stronie:'
email_outro: Otrzymałeś to powiadomienie, ponieważ obserwujesz %{participatory_space_title}. Możesz przestać otrzymywać powiadomienia po kliknięciu w poprzedni link.
@@ -248,11 +234,6 @@ pl:
email_outro: Otrzymałeś to powiadomienie, ponieważ jesteś autorem "%{resource_title}".
email_subject: Twoja propozycja "%{mentioned_proposal_title}" została wspomniana
notification_title: Twoja propozycja "%{mentioned_proposal_title}" została wspomniana w tej przestrzeni w komentarzach.
- proposal_published:
- email_intro: 'Użytkownik %{author_name} %{author_nickname}, którego obserwujesz, opublikował nową propozycję o nazwie "%{resource_title}". Sprawdź i poprzyj:'
- email_outro: Otrzymałeś to powiadomienie, ponieważ obserwujesz %{author_nickname}. Możesz przestać otrzymywać powiadomienia po kliknięciu w poprzedni link.
- email_subject: Nowa propozycja "%{resource_title}" autorstwa %{author_nickname}
- notification_title: Propozycja %{resource_title} została opublikowana przez %{author_name} %{author_nickname}.
proposal_published_for_space:
email_intro: Propozycja "%{resource_title}" została dodana do przestrzeni "%{participatory_space_title}", którą obserwujesz.
email_outro: Otrzymałeś to powiadomienie, ponieważ obserwujesz "%{participatory_space_title}". Aby przestać otrzymywać powiadomienia kliknij w powyższy link, a następnie na stronie kliknij w przycisk obserwowania.
diff --git a/decidim-proposals/config/locales/pt-BR.yml b/decidim-proposals/config/locales/pt-BR.yml
index 4fdaf5036edf0..afcf3337a8357 100644
--- a/decidim-proposals/config/locales/pt-BR.yml
+++ b/decidim-proposals/config/locales/pt-BR.yml
@@ -62,10 +62,6 @@ pt-BR:
allowed_file_content_types: 'Tipo de documento inválido. Apenas arquivos com as seguintes extensões são permitidos: %{types}'
proposal:
attributes:
- add_documents:
- needs_to_be_reattached: Precisa ser recolocado
- add_photos:
- needs_to_be_reattached: Precisa ser recolocado
body:
cant_be_equal_to_template: não pode ser igual ao modelo
identical: E o título não pode ser idêntico
@@ -126,10 +122,7 @@ pt-BR:
values:
'false': Propostas
'true': Emendas
- proposal_state_id_eq:
- label: Estado
state_eq:
- label: Estado
values:
accepted: Aceitou
evaluating: Avaliando
@@ -178,7 +171,6 @@ pt-BR:
collaborative_drafts_enabled: Rascunhos colaborativos ativados
collaborative_drafts_enabled_help: O recurso de Rascunhos colaborativos será removido no Decidim v0.32. As organizações que o usam, podem alternar para o novo recurso de co-autoria de proposta.
comments_enabled: Comentários ativados
- comments_max_length: Tamanho máximo de comentários (deixe 0 para o valor padrão)
default_sort_order: Classificação de proposta padrão
default_sort_order_help: Automático significa que, se os votos estiverem habilitados, as propostas serão mostradas por ordem aleatória, e se as votações estiverem bloqueadas, serão ordenadas pela maioria das votações.
default_sort_order_options:
@@ -277,17 +269,13 @@ pt-BR:
email_intro: '%{author_name} criou uma nota privada em %{resource_title}. Confira no painel de administração.'
email_outro: Você recebeu esta notificação porque pode avaliar a proposta.
email_subject: Alguém deixou uma nota na proposta %{resource_title}.
- notification_title: %{author_name} %{author_nickname} criou uma nota privada em %{resource_title}. Confira em o painel de administração.
proposal_note_mentioned:
- email_intro: Você foi mencionado em uma nota privada em"%{resource_title}" por "%{author_name}"%{author_nickname}". Confira a painel de administração.
email_outro: Você recebeu esta notificação porque você foi mencionado em uma nota privada.
email_subject: Alguém mencionou você numa nota sobre a proposta %{resource_title}.
- notification_title: Você foi mencionado em uma nota privada em %{resource_title} por %{author_name} %{author_nickname}. Confira a o painel de administração.
proposal_note_replied:
email_intro: '%{author_name} respondeu sua nota privada em %{resource_title}. Confira a painel de administração.'
email_outro: Você recebeu esta notificação porque você é o autor da nota.
email_subject: "%{author_name} respondeu a sua publicação privada em %{resource_title}."
- notification_title: %{author_name} %{author_nickname} respondeu a sua nota privada em %{resource_title}. Confira a o painel de administração.
coauthor_accepted_invite:
notification_title: %{coauthor_name} aceitou seu convite para se tornar um co-autor da proposta %{resource_title}.
coauthor_invited:
@@ -304,17 +292,14 @@ pt-BR:
email_intro: '%{requester_name} foi aceito para acessar como colaborador do rascunho colaborativo %{resource_title}.'
email_outro: Você recebeu esta notificação porque é colaborador de %{resource_title}.
email_subject: "%{requester_name} foi aceito para acessar como contribuidor %{resource_title}."
- notification_title: %{requester_name} %{requester_nickname} foi aceito para acessar como colaborador do projeto colaborativo %{resource_title}.
collaborative_draft_access_rejected:
email_intro: '%{requester_name} foi rejeitado para acessar como colaborador do projeto colaborativo %{resource_title}.'
email_outro: Você recebeu esta notificação porque é colaborador de %{resource_title}.
email_subject: "%{requester_name} foi rejeitado para acessar como colaborador do %{resource_title} esboço colaborativo."
- notification_title: %{requester_name} %{requester_nickname} foi rejeitado para acessar como colaborador do projeto colaborativo %{resource_title}.
collaborative_draft_access_requested:
email_intro: '%{requester_name} solicitou acesso como colaborador. Você pode aceitar ou rejeitar a solicitação da página do projeto colaborativo %{resource_title}.'
email_outro: Você recebeu esta notificação porque é colaborador de %{resource_title}.
email_subject: "%{requester_name} solicitou acesso para contribuir com %{resource_title}."
- notification_title: %{requester_name} %{requester_nickname} solicitou acesso para contribuir para o projeto de colaboração %{resource_title} . Por favor, aceite ou rejeite o pedido.
collaborative_draft_access_requester_accepted:
email_intro: Você foi aceito para acessar como colaborador do projeto colaborativo %{resource_title}.
email_outro: Você recebeu esta notificação porque pediu para se tornar um colaborador de %{resource_title}.
@@ -326,10 +311,7 @@ pt-BR:
email_subject: Você foi rejeitado como colaborador de %{resource_title}.
notification_title: Você foi rejeitado para acessar como colaborador do projeto colaborativo %{resource_title}.
collaborative_draft_withdrawn:
- email_intro: %{author_name} %{author_nickname} retirou o projeto de colaboração %{resource_title}.
email_outro: Você recebeu esta notificação porque é colaborador de %{resource_title}.
- email_subject: "%{author_name} %{author_nickname} retirou o %{resource_title} rascunho colaborativo."
- notification_title: %{author_name} %{author_nickname}retirado o %{resource_title} rascunho colaborativo.
creation_enabled:
email_intro: 'Agora você pode criar novas propostas em %{participatory_space_title}! Comece a participar nesta página:'
email_outro: Você recebeu esta notificação porque está seguindo %{participatory_space_title}. Você pode parar de receber notificações após o link anterior.
@@ -350,11 +332,6 @@ pt-BR:
email_outro: Você recebeu esta notificação porque você é o autor da proposta.
email_subject: A proposta %{resource_title} foi mesclada
notification_title: A proposta %{resource_title} foi mesclada por um administrador.
- proposal_published:
- email_intro: '%{author_name} %{author_nickname}, que você está seguindo, publicou uma nova proposta chamada "%{resource_title}". Confira e contribua:'
- email_outro: Você recebeu esta notificação porque está seguindo %{author_nickname}. Você pode parar de receber notificações após o link anterior.
- email_subject: Nova proposta "%{resource_title}" por %{author_nickname}
- notification_title: A %{resource_title} proposta foi publicada por %{author_name} %{author_nickname}.
proposal_published_for_space:
email_intro: A proposta "%{resource_title}" foi adicionada a "%{participatory_space_title}" que você está seguindo.
email_outro: Você recebeu esta notificação porque está seguindo "%{participatory_space_title}". Você pode deixar de segui-lo no link anterior.
diff --git a/decidim-proposals/config/locales/pt.yml b/decidim-proposals/config/locales/pt.yml
index a696a78311e64..181495f48af39 100644
--- a/decidim-proposals/config/locales/pt.yml
+++ b/decidim-proposals/config/locales/pt.yml
@@ -34,10 +34,6 @@ pt:
models:
proposal:
attributes:
- add_documents:
- needs_to_be_reattached: Necessita de ser recolocado
- add_photos:
- needs_to_be_reattached: Necessita de ser recolocado
body:
cant_be_equal_to_template: não pode ser igual ao modelo
identical: E o título não pode ser idêntico
@@ -77,7 +73,6 @@ pt:
'false': Propostas
'true': Revisões
state_eq:
- label: Estado
values:
accepted: Aceite
evaluating: Em avaliação
@@ -102,7 +97,6 @@ pt:
attachments_allowed: Permitir anexos
collaborative_drafts_enabled: Rascunhos colaborativos ativados
comments_enabled: Comentários ativados
- comments_max_length: Comprimento máximo dos comentários (Deixar 0 para o valor predefinido)
default_sort_order: Ordenamento por defeitos das propostas
default_sort_order_options:
most_commented: Mais comentada
@@ -162,22 +156,16 @@ pt:
accept: Aceitar
collaborative_draft_access_accepted:
email_subject: "%{requester_name} foi aceite para aceder como contribuidor de %{resource_title}."
- notification_title: %{requester_name} %{requester_nickname} foi aceite para aceder como colaborador do projeto colaborativo %{resource_title}.
collaborative_draft_access_rejected:
email_subject: "%{requester_name} foi rejeitado para aceder como colaborador do rascunho colaborativo %{resource_title}."
- notification_title: %{requester_name} %{requester_nickname} foi rejeitado para aceder como colaborador do rascunho colaborativo %{resource_title}.
collaborative_draft_access_requested:
email_subject: "%{requester_name} solicitou acesso para contribuir em %{resource_title}."
- notification_title: %{requester_name} %{requester_nickname} solicitou acesso para contribuir no rascunho colaborativo %{resource_title}. Por favor, aceite ou rejeite o pedido.
collaborative_draft_access_requester_accepted:
email_subject: Foi aceite como colaborador de %{resource_title}.
notification_title: Foi aceite para aceder como colaborador do rascunho colaborativo %{resource_title}.
collaborative_draft_access_requester_rejected:
email_subject: Foi rejeitado como colaborador de %{resource_title}.
notification_title: Foi rejeitado para aceder como colaborador do rascunho colaborativo %{resource_title}.
- collaborative_draft_withdrawn:
- email_subject: "%{author_name} %{author_nickname} retirou o %{resource_title} rascunho colaborativo."
- notification_title: %{author_name} %{author_nickname}retirou o rascunho colaborativo %{resource_title}.
creation_enabled:
email_intro: 'Agora pode criar novas propostas em %{participatory_space_title}! Comece a participar nesta página:'
email_outro: Recebeu esta notificação porque segue %{participatory_space_title}. Pode parar de receber notificações seguindo a hiperligação anterior.
@@ -187,11 +175,6 @@ pt:
email_outro: Recebeu esta notificação porque é um autor de "%{resource_title}".
email_subject: A sua proposta "%{mentioned_proposal_title}" foi mencionada
notification_title: A sua proposta "%{mentioned_proposal_title}" foi mencionada neste espaço nos comentários.
- proposal_published:
- email_intro: '%{author_name} %{author_nickname}, que você segue, publicou uma nova proposta chamada "%{resource_title}". Verifique e contribua:'
- email_outro: Recebeu esta notificação porque segue %{author_nickname}. Pode parar de receber notificações seguindo a hiperligação anterior.
- email_subject: Nova proposta "%{resource_title}" por %{author_nickname}
- notification_title: A proposta %{resource_title} foi publicada por %{author_name} %{author_nickname}.
proposal_published_for_space:
email_intro: A proposta "%{resource_title}" foi adicionada a "%{participatory_space_title}" que você segue.
email_outro: Recebeu esta notificação porque segue "%{participatory_space_title}". Pode deixar de receber notificações seguindo a hiperligação anterior.
diff --git a/decidim-proposals/config/locales/ro-RO.yml b/decidim-proposals/config/locales/ro-RO.yml
index 47a7f6bd90c6c..b9a406ffaf1fd 100644
--- a/decidim-proposals/config/locales/ro-RO.yml
+++ b/decidim-proposals/config/locales/ro-RO.yml
@@ -38,10 +38,6 @@ ro:
models:
proposal:
attributes:
- add_documents:
- needs_to_be_reattached: Trebuie să fie reatașate
- add_photos:
- needs_to_be_reattached: Trebuie să fie reatașate
body:
cant_be_equal_to_template: nu poate fi egal cu modelul
identical: Nici titlul nu poate fi identic
@@ -91,7 +87,6 @@ ro:
'false': Propuneri
'true': Amendamente
state_eq:
- label: Stadiu
values:
accepted: Acceptat
evaluating: În evaluare
@@ -116,7 +111,6 @@ ro:
attachments_allowed: Permite atașamente
collaborative_drafts_enabled: Ciornele colaborative au fost activate
comments_enabled: Comentariile au fost activate
- comments_max_length: Număr maxim de caractere a comentariilor (păstrează 0 pentru valoarea implicită)
default_sort_order: Mod implicit de sortare a propunerilor
default_sort_order_options:
most_commented: Cele mai comentate
@@ -182,22 +176,16 @@ ro:
accept: Acceptă
collaborative_draft_access_accepted:
email_subject: "Utilizatorul %{requester_name} a fost acceptat drept colaborator pentru %{resource_title}."
- notification_title: %{requester_name} %{requester_nickname} a fost acceptat drept colaborator pentru ciorna colaborativă %{resource_title}.
collaborative_draft_access_rejected:
email_subject: "%{requester_name} a fost respins drept colaborator pentru ciorna colaborativă %{resource_title}."
- notification_title: %{requester_name} %{requester_nickname} a fost respins drept colaborator pentru ciorna colaborativă %{resource_title}.
collaborative_draft_access_requested:
email_subject: "%{requester_name} a solicitat acces pentru a contribui la %{resource_title}."
- notification_title: %{requester_name} %{requester_nickname} a solicitat acces pentru a contribui la ciorna colaborativă %{resource_title}. Te rugăm acceptă sau respinge cererea.
collaborative_draft_access_requester_accepted:
email_subject: Ai fost acceptat drept colaborator pentru %{resource_title}.
notification_title: Ai fost acceptat drept colaborator pentru ciorna colaborativă %{resource_title}.
collaborative_draft_access_requester_rejected:
email_subject: Ai fost respins drept colaborator pentru %{resource_title}.
notification_title: Ai fost respins drept colaborator pentru ciorna colaborativă %{resource_title}.
- collaborative_draft_withdrawn:
- email_subject: "%{author_name} %{author_nickname} a retras ciorna colaborativă %{resource_title}."
- notification_title: %{author_name} %{author_nickname}a retras ciorna colaborativă %{resource_title}.
creation_enabled:
email_intro: 'Acum poți crea propuneri noi pentru %{participatory_space_title}! Participă acum la această pagină:'
email_outro: Ai primit această notificare deoarece urmărești %{participatory_space_title}. Poți anula aceste notificări de la link-ul anterior.
@@ -212,11 +200,6 @@ ro:
email_outro: Ați primit această notificare deoarece sunteți autorul propunerii.
email_subject: Propunerea %{resource_title} a fost fuzionată
notification_title: Propunerea %{resource_title} a fost fuzionată de un administrator.
- proposal_published:
- email_intro: '%{author_name} %{author_nickname}, pe care îl urmărești, a publicat o nouă propunere denumită "%{resource_title}". Verifică propunerea și colaborează:'
- email_outro: Ai primit această notificare deoarece urmărești %{author_nickname}. Poți înceta să primești notificări urmând linkul anterior.
- email_subject: O nouă propunere "%{resource_title}" de la %{author_nickname}
- notification_title: Propunerea %{resource_title} a fost publicată de %{author_name} %{author_nickname}.
proposal_published_for_space:
email_intro: Propunerea "%{resource_title}" a fost adăugată la "%{participatory_space_title}", spațiu participativ pe care îl urmărești.
email_outro: Ai primit această notificare deoarece urmărești „%{participatory_space_title}”. Poți anula aceste notificări de la link-ul anterior.
diff --git a/decidim-proposals/config/locales/ru.yml b/decidim-proposals/config/locales/ru.yml
index b31f9e20f9f08..d49d4249fb2b9 100644
--- a/decidim-proposals/config/locales/ru.yml
+++ b/decidim-proposals/config/locales/ru.yml
@@ -14,14 +14,6 @@ ru:
answer: Ответить
proposals_copy:
origin_component_id: Составляющая, откуда нужно скопировать предложения
- errors:
- models:
- proposal:
- attributes:
- add_documents:
- needs_to_be_reattached: Необходимо заново прикрепить
- add_photos:
- needs_to_be_reattached: Необходимо заново прикрепить
models:
decidim/proposals/creation_enabled_event: Включена возможность создания предложений
decidim/proposals/proposal_mentioned_event: Предложение упомянуто
@@ -84,9 +76,6 @@ ru:
proposal_mentioned:
email_subject: Ваше предложение "%{mentioned_proposal_title}"было упомянуто
notification_title: Ваше предложение «%{mentioned_proposal_title}» было упомянуто в комментариях в этом пространстве.
- proposal_published:
- email_outro: Вы получили это уведомление, потому что вы следите за «%{author_nickname}». Вы можете отписаться от уведомлений, перейдя по приведенной выше ссылке.
- notification_title: %{author_name} %{author_nickname} обнародовал предложение %{resource_title}.
proposal_published_for_space:
email_intro: В "%{participatory_space_title}", за которым вы следите, добавлено предложение "%{resource_title}".
email_outro: Вы получили это уведомление, потому что вы следите за «%{participatory_space_title}». Вы можете перестать за ним следить, перейдя по приведенной выше ссылке.
diff --git a/decidim-proposals/config/locales/sk.yml b/decidim-proposals/config/locales/sk.yml
index 5168d3b91ede5..7aa161e10f9ab 100644
--- a/decidim-proposals/config/locales/sk.yml
+++ b/decidim-proposals/config/locales/sk.yml
@@ -63,10 +63,6 @@ sk:
allowed_file_content_types: 'Neplatný typ dokumentu. Povolené sú iba súbory s nasledujúcimi príponami: %{types}'
proposal:
attributes:
- add_documents:
- needs_to_be_reattached: Je potrebné priložiť znovu
- add_photos:
- needs_to_be_reattached: Je potrebné priložiť znovu
body:
cant_be_equal_to_template: nemôže byť rovnaké, ako šablóna
identical: A názov nemôže byť totožný
@@ -135,10 +131,7 @@ sk:
values:
'false': Návrhy
'true': Pozmeňujúce návrhy
- proposal_state_id_eq:
- label: Stav
state_eq:
- label: Stav
values:
accepted: Prijaté
evaluating: Hodnotí sa
@@ -187,7 +180,6 @@ sk:
collaborative_drafts_enabled: Spoločné návrhy sú povolené
collaborative_drafts_enabled_help: Funkcia kolaboratívnych konceptov bude odstránená vo verzii Decidim v0.32. Organizácie, ktoré ju používajú, môžu prejsť na novú funkciu spoluautorstva návrhov.
comments_enabled: Komentáre povolené
- comments_max_length: Maximálna dĺžka komentárov (Pre predvolenú hodnotu ponechajte 0)
default_sort_order: Predvolené zoradenie návrhov
default_sort_order_help: Automaticky znamená, že ak sú hlasy povolené, návrhy sa zobrazia náhodne zoradené, a ak sú hlasy zablokované, zoradia sa podľa najvyššieho počtu hlasov.
default_sort_order_options:
@@ -286,17 +278,13 @@ sk:
email_intro: '%{author_name} vytvoril/a súkromnú poznámku v %{resource_title}. Pozrite si to v paneli administrátora.'
email_outro: Toto upozornenie ste dostali, pretože môžete hodnotiť návrh.
email_subject: Niekto zanechal poznámku k návrhu %{resource_title}.
- notification_title: %{author_name} %{author_nickname} vytvoril/a súkromnú poznámku v %{resource_title}. Pozrite si to v paneli administrátora.
proposal_note_mentioned:
- email_intro: Boli ste spomenutý/á v súkromnej poznámke v „%{resource_title}“ používateľom „%{author_name}“ „%{author_nickname}“. Pozrite si to v paneli administrátora.
email_outro: Toto upozornenie ste dostali, pretože ste boli spomenutý/á v súkromnej poznámke.
email_subject: Niekto vás spomenul v poznámke k návrhu %{resource_title}.
- notification_title: Boli ste spomenutý/á v súkromnej poznámke v %{resource_title} používateľom %{author_name} %{author_nickname}. Pozrite si to v paneli administrátora.
proposal_note_replied:
email_intro: '%{author_name} odpovedal/a na vašu súkromnú poznámku v %{resource_title}. Pozrite si to v paneli administrátora.'
email_outro: Toto upozornenie ste dostali, pretože ste autorom poznámky.
email_subject: "%{author_name} odpovedal/a na vašu súkromnú poznámku v %{resource_title}."
- notification_title: %{author_name} %{author_nickname} odpovedal/a na vašu súkromnú poznámku v %{resource_title}. Pozrite si to v paneli administrátora.
coauthor_accepted_invite:
notification_title: %{coauthor_name} prijal/a vašu pozvánku stať sa spoluautorom návrhu %{resource_title}.
coauthor_invited:
@@ -313,17 +301,14 @@ sk:
email_intro: '%{requester_name} bol/a prijatý/á ako prispievateľ do spoločného konceptu %{resource_title}.'
email_outro: Toto upozornenie ste dostali, pretože ste spolupracovníkom %{resource_title}.
email_subject: "%{requester_name} bol prijatý k prístupu ako prispievateľ %{resource_title}."
- notification_title: %{requester_name} %{requester_nickname} je má prístup ako prispievateľ v spoločnom návrhu %{resource_title} .
collaborative_draft_access_rejected:
email_intro: '%{requester_name} bol/a odmietnutý/á ako prispievateľ do spoločného konceptu %{resource_title}.'
email_outro: Toto upozornenie ste dostali, pretože ste spolupracovníkom %{resource_title}.
email_subject: "%{requester_name} mal odmietnutý pre prístup ako prispievateľ ku %{resource_title} kolektívnemu návrhu."
- notification_title: %{requester_name}%{requester_nickname} mal odmietnutý prístup ako prispievateľ ku spoločnému návrhu %{resource_title} .
collaborative_draft_access_requested:
email_intro: '%{requester_name} požiadal/a o prístup ako prispievateľ. Žiadosť môžete prijať alebo odmietnuť na stránke spoločného konceptu %{resource_title}.'
email_outro: Toto upozornenie ste dostali, pretože ste spolupracovníkom %{resource_title}.
email_subject: "%{requester_name} požiadal o prístup ku spolupráci na %{resource_title}."
- notification_title: %{requester_name}%{requester_nickname} požiadal o prístup ku spolupráci na %{resource_title} . Prosíme prijmite alebo odmietnite žiadosť .
collaborative_draft_access_requester_accepted:
email_intro: Boli ste prijatý/á ako prispievateľ do spoločného konceptu %{resource_title}.
email_outro: Toto upozornenie ste dostali, pretože ste požiadali o to, aby ste sa stali spolupracovníkom %{resource_title}.
@@ -335,10 +320,7 @@ sk:
email_subject: Bol ste odmietnutý ako prispievateľ ku %{resource_title}.
notification_title: Boli ste odmietnutý ako prispievateľ ku spoločnému návrhu %{resource_title} .
collaborative_draft_withdrawn:
- email_intro: %{author_name} %{author_nickname} stiahol/stiahla spoločný koncept %{resource_title}.
email_outro: Toto upozornenie ste dostali, pretože ste spolupracovníkom %{resource_title}.
- email_subject: "% {AUTHOR_NAME}% {author_nickname} stiahol% {resource_title} návrh spolupráce."
- notification_title: % {AUTHOR_NAME}% {author_nickname} stiahnuté strong> % {resource_title} a> návrh spolupráce.
creation_enabled:
email_intro: 'Teraz môžete vytvoriť nové návrhy v %{participatory_space_title}! Zúčastnite sa na tejto stránke: '
email_outro: Toto oznámenie ste dostali, pretože sledujete %{participatory_space_title}. Notifikácie môžete zrušiť po kliknutí na predchádzajúci odkaz.
@@ -359,11 +341,6 @@ sk:
email_outro: Toto upozornenie ste dostali, pretože ste autorom návrhu.
email_subject: Návrh %{resource_title} bol zlúčený
notification_title: Návrh %{resource_title} bol zlúčený administrátorom.
- proposal_published:
- email_intro: '% {AUTHOR_NAME}% {author_nickname}, ktorý sledujete, zverejnil nový návrh nazvaný "% {resource_title}". Vyskúšajte to a prispejte: '
- email_outro: Toto oznámenie ste dostali, pretože sledujete %{author_nickname}. Notifikácie môžete zrušiť po kliknutí na predchádzajúci odkaz.
- email_subject: Nový návrh "%{resource_title}" o%{author_nickname}
- notification_title: Návrh % {resource_title} bol zverejnený % {AUTHOR_NAME}% {author_nickname} .
proposal_published_for_space:
email_intro: Návrh "%{resource_title}" bol pridaný k "%{participatory_space_title}", ktorý sledujete.
email_outro: Toto oznámenie ste dostali, pretože sledujete "%{participatory_space_title}". Môžete ho odhlásiť od predchádzajúceho odkazu.
diff --git a/decidim-proposals/config/locales/sv.yml b/decidim-proposals/config/locales/sv.yml
index 8cd582b8663aa..a72373b76f87a 100644
--- a/decidim-proposals/config/locales/sv.yml
+++ b/decidim-proposals/config/locales/sv.yml
@@ -63,10 +63,6 @@ sv:
allowed_file_content_types: 'Ogiltig dokumenttyp. Endast filer med följande tillägg är tillåtna: %{types}'
proposal:
attributes:
- add_documents:
- needs_to_be_reattached: Måste bifogas igen
- add_photos:
- needs_to_be_reattached: Måste bifogas igen
body:
cant_be_equal_to_template: kan inte vara detsamma som mallen
identical: OCH titeln kan inte vara identisk
@@ -127,10 +123,7 @@ sv:
values:
'false': Förslag
'true': Ändringsförslag
- proposal_state_id_eq:
- label: Status
state_eq:
- label: Status
values:
accepted: Accepterat
evaluating: Utvärderas
@@ -179,7 +172,6 @@ sv:
collaborative_drafts_enabled: Aktivera gemensamma utkast
collaborative_drafts_enabled_help: Funktionen gemensamma utkast kommer att tas bort i Decidim v0.32. Organisationer som använder det kan växla till den nya funktionen för medförfattare.
comments_enabled: Aktivera kommentarer
- comments_max_length: Maximal kommentarslängd (ange 0 för att använda standardvärdet)
default_sort_order: Förvald sortering
default_sort_order_help: Automatiskt betyder att om röstning är aktiverat kommer förslagen sorteras slumpmässigt, och om röstning är avstängt kommer de att sorteras efter mest valda.
default_sort_order_options:
@@ -201,7 +193,7 @@ sv:
minimum_votes_per_user: Minsta antal röster per deltagare
new_proposal_body_template: Innehållsmall för nytt förslag
new_proposal_body_template_help: Du kan ange den förifyllda texten för nya förslag
- new_proposal_help_text: Hjälptext om nya förslag
+ new_proposal_help_text: Hjälptext till nya förslag
no_taxonomy_filters_found: Inga filter för kategorier hittades.
official_proposals_enabled: Aktivera officiella förslag
participatory_texts_enabled: Aktivera kollaborativa texter
@@ -278,17 +270,13 @@ sv:
email_intro: '%{author_name} har skapat en privat anteckning till %{resource_title}. Kolla in den i adminpanelen.'
email_outro: Du har fått det här meddelandet eftersom du kan utvärdera förslaget.
email_subject: Någon skrev en anteckning till förslaget %{resource_title}.
- notification_title: %{author_name} %{author_nickname} har gjort en privat anteckning till %{resource_title}. Kolla in den i adminpanelen.
proposal_note_mentioned:
- email_intro: Du har nämnts i en privat anteckning till "%{resource_title}" av "%{author_name}" "%{author_nickname}". Kolla in det i adminpanelen.
email_outro: Du har fått den här meddelandet eftersom du har nämnts i en privat anteckning.
email_subject: Någon nämnde dig i en anteckning till förslaget %{resource_title}.
- notification_title: Du har nämnts i en privat anteckning i %{resource_title} av %{author_name} %{author_nickname}. Kolla in det i adminpanelen.
proposal_note_replied:
email_intro: '%{author_name} har svarat på din privata anteckning i %{resource_title}. Kolla in den i adminpanelen.'
email_outro: Du har fått det här meddelandet eftersom du är skrivit anteckningen.
email_subject: "%{author_name} har svarat på din privata anteckning i %{resource_title}."
- notification_title: %{author_name} %{author_nickname} har svarat din privata anteckning i %{resource_title}. Kolla in den i adminpanelen.
coauthor_accepted_invite:
notification_title: %{coauthor_name} har accepterat din inbjudan att bli medförfattare till förslaget %{resource_title}.
coauthor_invited:
@@ -305,17 +293,14 @@ sv:
email_intro: '%{requester_name} har blivit godkänd som medförfattare till det gemensamma utkastet %{resource_title}.'
email_outro: Du har fått det här meddelandet eftersom du är författare till %{resource_title}.
email_subject: "%{requester_name} har fått tillgång till och är accepterad som medskapare till %{resource_title}."
- notification_title: %{requester_name} %{requester_nickname} har fått tillgång till och accepterats som medskapare till det gemensamma utkastet %{resource_title}.
collaborative_draft_access_rejected:
email_intro: '%{requester_name} har avvisats som medförfattare till %{resource_title}.'
email_outro: Du har fått det här meddelandet eftersom du är en medskapare av %{resource_title}.
email_subject: "%{requester_name} har avvisats från att få tillgång till det gemensamma utkastet %{resource_title} som medskapare."
- notification_title: %{requester_name} %{requester_nickname} har avvisats från att få tillgång till det gemensamma utkastet %{resource_title} som medskapare.
collaborative_draft_access_requested:
email_intro: '%{requester_name} har begärt att bli medförfattare. Du kan acceptera eller avvisa begäran från sidan för det gemensamma utkastet, %{resource_title}.'
email_outro: Du har fått det här meddelandet eftersom du är en medskapare av %{resource_title}.
email_subject: "%{requester_name} begärde tillgång att bidra till %{resource_title}."
- notification_title: %{requester_name} %{requester_nickname} begärde tillgång för att få bidra till det gemensamma utkastet %{resource_title}. Godkänn eller avvisa begäran.
collaborative_draft_access_requester_accepted:
email_intro: Du har godkänts som medskapare av det gemensamma utkastet %{resource_title}.
email_outro: Du har fått det här meddelandet eftersom du bad om att bli medskapare av %{resource_title}.
@@ -327,10 +312,7 @@ sv:
email_subject: Du har blivit avvisad som medskapare till %{resource_title}.
notification_title: Du har blivit avvisad tillgång till det gemensamma utkastet %{resource_title} som medskapare.
collaborative_draft_withdrawn:
- email_intro: %{author_name} %{author_nickname} drog tillbaka det gemensamma utkastet %{resource_title}.
email_outro: Du har fått det här meddelandet eftersom du är en medskapare av %{resource_title}.
- email_subject: "%{author_name} %{author_nickname} drog tillbaka det gemensamma utkastet %{resource_title}."
- notification_title: %{author_name} %{author_nickname}drog tillbaka det gemensamma utkastet %{resource_title}.
creation_enabled:
email_intro: 'Nu kan du skapa nya förslag på %{participatory_space_title}! Börja delta på den här sidan:'
email_outro: Du har fått det här meddelandet eftersom du följer %{participatory_space_title}. Du kan sluta att ta emot meddelanden via föregående länk.
@@ -351,11 +333,6 @@ sv:
email_outro: Du har fått det här meddelandet eftersom du har skrivit förslaget.
email_subject: Förslaget %{resource_title} har slagits samman
notification_title: Förslaget %{resource_title} har slagits samman av en administratör.
- proposal_published:
- email_intro: '%{author_name} %{author_nickname}, som du följer, har publicerat ett nytt förslag som heter "%{resource_title}". Ta en titt och bidra:'
- email_outro: Du har fått den här notifikationen eftersom du följer %{author_nickname}. Du kan sluta ta emot notifikationer från föregående länken.
- email_subject: Nytt förslag "%{resource_title}" av %{author_nickname}
- notification_title: Förslaget %{resource_title} publicerades av %{author_name} %{author_nickname}.
proposal_published_for_space:
email_intro: Förslaget "%{resource_title}" har lagts till i "%{participatory_space_title}" som du följer.
email_outro: Du har fått det här meddelandet eftersom du följer "%{participatory_space_title}". Du kan sluta att ta emot meddelanden genom att följa föregående länk.
@@ -859,6 +836,7 @@ sv:
errors:
device_not_supported: Din enhet stöder inte platstjänster. Ange adressen manuellt.
no_device_location: Tyvärr, vi kunde inte upptäcka din plats. Ange adressen manuellt.
+ locating: Lokaliserar...
use_my_location: Använd min nuvarande plats
invite_coauthors:
cancel:
@@ -1017,13 +995,13 @@ sv:
can_accumulate_votes_beyond_threshold:
description: Förslag kan få fler än gränsen på %{limit} röster
minimum_votes_per_user:
- description: Du behöver rösta på %{votes} till förslag för att din röst ska räknas.
+ description: Du behöver rösta på %{votes} förslag för att din röst ska räknas.
proposal_limit:
description: Du kan skapa upp till %{limit} förslag.
success: Din röst har tagits emot
threshold_per_proposal:
description: Förslag behöver få minst %{limit} röster för att gå vidare.
- title: Regler för omröstning
+ title: Rösta så här
vote_limit:
description: Du kan stödja upp till %{limit} förslag.
votes: Saknar %{number} röster
diff --git a/decidim-proposals/config/locales/tr-TR.yml b/decidim-proposals/config/locales/tr-TR.yml
index d3fa4a9333229..6d1cd51be768a 100644
--- a/decidim-proposals/config/locales/tr-TR.yml
+++ b/decidim-proposals/config/locales/tr-TR.yml
@@ -26,7 +26,7 @@ tr:
cost_report: Maliyet raporu
execution_period: Yürütme süresi
proposal_state:
- announcement_title: Yanıt Başlığı
+ announcement_title: Yanıt Başlığı
bg_color: Arka plan rengi
colors:
blue: Mavi
@@ -47,10 +47,6 @@ tr:
models:
proposal:
attributes:
- add_documents:
- needs_to_be_reattached: Yeniden eklenmesi gerekiyor
- add_photos:
- needs_to_be_reattached: Yeniden eklenmesi gerekiyor
body:
cant_be_equal_to_template: şablona eşit olamaz
identical: VE başlık aynı olamaz
@@ -81,10 +77,7 @@ tr:
values:
'false': Teklifler
'true': Değişiklikler
- proposal_state_id_eq:
- label: Durum
state_eq:
- label: Durum
values:
accepted: Kabul Edildi
evaluating: Değerlendiriliyor
@@ -108,7 +101,6 @@ tr:
attachments_allowed: Eklere izin ver
collaborative_drafts_enabled: Ortak çalışma taslakları etkin
comments_enabled: Yorumlar etkin
- comments_max_length: Maksimum yorum uzunluğu (Varsayılan değer için 0 bırakın)
new_proposal_body_template: Yeni teklif gövdesi şablonu
new_proposal_body_template_help: Yeni Tekliflerin sahip olacağı önceden doldurulmuş metni tanımlayabilirsiniz
new_proposal_help_text: Yeni teklif yardım metni
@@ -149,22 +141,16 @@ tr:
accept: Kabul Et
collaborative_draft_access_accepted:
email_subject: "%{requester_name}, %{resource_title} katkı sağlayıcısı olarak erişim için kabul edildi."
- notification_title: %{requester_name} %{requester_nickname} için katkıda bulunan olarak erişim için kabul edildi %{resource_title} ortak çalışma taslağı.
collaborative_draft_access_rejected:
email_subject: "%{requester_name}, %{resource_title} ortak çalışma taslağına katkıda bulunan kişi olarak erişimi reddedildi."
- notification_title: %{requester_name} %{requester_nickname} , %{resource_title} işbirlikçi taslağın bir katkıcısı olarak erişmek için reddedilmiştir.
collaborative_draft_access_requested:
email_subject: "%{requester_name}, %{resource_title} kaynağına katkıda bulunmak için erişim istedi."
- notification_title: %{requester_name} %{requester_nickname} , %{resource_title} ortak çalışma taslağına katkıda bulunmak için erişim istedi. Lütfen isteği kabul edin veya reddedin .
collaborative_draft_access_requester_accepted:
email_subject: '%{resource_title} katılımcısı olarak kabul edildiniz.'
notification_title: %{resource_title} ortak çalışma taslağına katkıda bulunan kişi olarak erişmeniz kabul edildi .
collaborative_draft_access_requester_rejected:
email_subject: '%{resource_title} katılımcısı olarak reddedildiniz.'
notification_title: %{resource_title} ortak çalışma taslağına katkıda bulunan olarak erişiminiz reddedildi .
- collaborative_draft_withdrawn:
- email_subject: "%{author_name} %{author_nickname}, %{resource_title} ortak çalışma taslağını geri çekti."
- notification_title: %{author_name} %{author_nickname} %{resource_title} işbirlikçi taslak öğesini geri çekti .
creation_enabled:
email_intro: 'Artık %{participatory_space_title} içinde yeni teklifler oluşturabilirsiniz! Bu sayfaya katılmaya başlayın:'
email_outro: Bu bildirimi, %{participatory_space_title} adlı kişiyi takip ettiğiniz için aldınız. Önceki bağlantıyı izleyerek bildirim almayı durdurabilirsiniz.
@@ -174,11 +160,6 @@ tr:
email_outro: Bu bildirimi, "%{resource_title}" ın bir yazarı olduğunuz için aldınız.
email_subject: '"%{mentioned_proposal_title}" adlı teklifinizden bahsedildi'
notification_title: Bu alanda yorumlarda "%{mentioned_proposal_title}" önerinizden bahsedildi.
- proposal_published:
- email_intro: 'Takip ettiğiniz %{author_name} %{author_nickname}, "%{resource_title}" adlı yeni bir teklif yayınladı. Kontrol edin ve katkıda bulunun:'
- email_outro: Bu bildirimi %{author_nickname} adlı kişiyi takip ettiğiniz için aldınız. Önceki bağlantıyı izleyerek bildirim almayı durdurabilirsiniz.
- email_subject: Yeni teklif "%{resource_title}" %{author_nickname}
- notification_title: %{resource_title} teklif %{author_name} %{author_nickname}tarafından yayınlandı.
proposal_published_for_space:
email_intro: '"%{resource_title}" teklifi takip ettiğiniz "%{participatory_space_title}" listesine eklendi.'
email_outro: Bu bildirimi, "%{participatory_space_title}" takip ettiğiniz için aldınız. Bir önceki bağlantıdan takip etmeyi bırakabilirsiniz.
@@ -476,7 +457,7 @@ tr:
title: Başlık
votes: Oylar
proposal_state:
- css_class: CSS Sınıfı
+ css_class: CSS Sınıfı
title: Durum
participatory_text_proposal:
alternative_title: Şu anda katılımcı metin yok
diff --git a/decidim-proposals/config/locales/uk.yml b/decidim-proposals/config/locales/uk.yml
index ce746e9d0411f..f0a586837efd5 100644
--- a/decidim-proposals/config/locales/uk.yml
+++ b/decidim-proposals/config/locales/uk.yml
@@ -14,14 +14,6 @@ uk:
answer: Відповісти
proposals_copy:
origin_component_id: Складова, звідки потрібно скопіювати пропозиції
- errors:
- models:
- proposal:
- attributes:
- add_documents:
- needs_to_be_reattached: Необхідно повторно вкласти
- add_photos:
- needs_to_be_reattached: Необхідно повторно вкласти
models:
decidim/proposals/creation_enabled_event: Внесення пропозицій увімкнено
decidim/proposals/proposal_mentioned_event: Пропозицію було згадано
@@ -80,9 +72,6 @@ uk:
proposal_mentioned:
email_subject: Вашу пропозицію "%{mentioned_proposal_title}" було згадано
notification_title: Вашу пропозицію "%{mentioned_proposal_title}" було згадано в коментарях в цьому просторі.
- proposal_published:
- email_outro: Ви отримали це сповіщення, тому що ви стежите за %{author_nickname}. Ви можете відписатися від цих сповіщень, перейшовши за наведеним вище посиланням.
- notification_title: %{author_name} %{author_nickname} оприлюднив пропозицію %{resource_title}.
proposal_published_for_space:
email_intro: До "%{participatory_space_title}", за яким ви стежите, була додана пропозиція "%{resource_title}".
email_outro: Ви отримали це сповіщення, тому що ви стежите за "%{participatory_space_title}". Ви можете припинити стежити за ним, перейшовши за наведеним вище посиланням.
diff --git a/decidim-proposals/config/locales/zh-CN.yml b/decidim-proposals/config/locales/zh-CN.yml
index 87671524f1449..e3fdfe1e4de68 100644
--- a/decidim-proposals/config/locales/zh-CN.yml
+++ b/decidim-proposals/config/locales/zh-CN.yml
@@ -31,10 +31,6 @@ zh-CN:
models:
proposal:
attributes:
- add_documents:
- needs_to_be_reattached: 需要重新连接
- add_photos:
- needs_to_be_reattached: 需要重新连接
body:
cant_be_equal_to_template: 不能等于模板
identical: 和标题不能相同
@@ -63,7 +59,6 @@ zh-CN:
'false': 建议
'true': 修 正 案
state_eq:
- label: 状态
values:
accepted: 已接受
evaluating: 评价
@@ -86,7 +81,6 @@ zh-CN:
attachments_allowed: 允许附件
collaborative_drafts_enabled: 协作草稿已启用
comments_enabled: 评论已启用
- comments_max_length: 评论最大长度 (默认值留0)
new_proposal_body_template: 新的提案正文模板
new_proposal_body_template_help: 您可以定义新建议将包含的预填文本
new_proposal_help_text: 新建议帮助文本
@@ -128,18 +122,13 @@ zh-CN:
email_subject: "%{requester_name} 已被接受作为贡献者访问 %{resource_title}。"
collaborative_draft_access_rejected:
email_subject: "%{requester_name} 在 %{resource_title} 协作草稿中的贡献者被拒绝访问。"
- notification_title: %{requester_name} %{requester_nickname} 已被 拒绝以贡献者身份访问%{resource_title} 合作草稿。
collaborative_draft_access_requested:
email_subject: "%{requester_name} 请求访问权限为 %{resource_title} 捐款。"
- notification_title: %{requester_name} %{requester_nickname} 请求访问权限以便为 %{resource_title} 协作草稿。请 接受或拒绝请求
collaborative_draft_access_requester_accepted:
email_subject: 您已被接受为 %{resource_title} 的贡献者。
collaborative_draft_access_requester_rejected:
email_subject: 您已被拒绝为 %{resource_title} 的贡献者。
notification_title: 您在 %{resource_title} 协作草稿中的 被拒绝作为贡献者 访问。
- collaborative_draft_withdrawn:
- email_subject: "%{author_name} %{author_nickname} 撤销了 %{resource_title} 协作草稿。"
- notification_title: %{author_name} %{author_nickname}撤回%{resource_title} 协作草稿。
creation_enabled:
email_intro: '您现在可以在 %{participatory_space_title}中创建新的建议 !开始参与这个页面:'
email_outro: 您收到此通知是因为您正在关注 %{participatory_space_title}。您可以停止收到跟随上一个链接的通知。
@@ -147,11 +136,6 @@ zh-CN:
proposal_mentioned:
email_outro: 您收到此通知是因为您是"%{resource_title} "的作者。
email_subject: 您的提议 "%{mentioned_proposal_title}" 已被提到了
- proposal_published:
- email_intro: '%{author_name} %{author_nickname}, 你关注的人已经发布了一个叫做"%{resource_title}"的新建议。查看它并做出贡献:'
- email_outro: 您收到此通知是因为您正在关注 %{author_nickname}。您可以停止收到跟随上一个链接的通知。
- email_subject: '%{resource_title}的 %{author_nickname} 新提案'
- notification_title: %{resource_title} 提议由 %{author_name} %{author_nickname} 发布。
proposal_published_for_space:
email_intro: 提议 "%{resource_title}" 已被添加到"%{participatory_space_title}",您正在关注它。
email_outro: 您收到此通知是因为您正在关注 "%{participatory_space_title}"。您可以停止收到跟随上一个链接的通知。
diff --git a/decidim-proposals/config/locales/zh-TW.yml b/decidim-proposals/config/locales/zh-TW.yml
index b816fa90c11a2..d5ae3ea5cff78 100644
--- a/decidim-proposals/config/locales/zh-TW.yml
+++ b/decidim-proposals/config/locales/zh-TW.yml
@@ -39,10 +39,6 @@ zh-TW:
allowed_file_content_types: '無效文件類型。只允許使用以下副檔名的文件:%{types}'
proposal:
attributes:
- add_documents:
- needs_to_be_reattached: 需要重新附加
- add_photos:
- needs_to_be_reattached: 需要重新附加
body:
cant_be_equal_to_template: 不能與模板相同
identical: 並且標題不能相同
@@ -79,7 +75,6 @@ zh-TW:
'false': 提案
'true': 修正案
state_eq:
- label: 狀態
values:
accepted: 已接受
evaluating: 評估
@@ -104,7 +99,6 @@ zh-TW:
attachments_allowed: 允許附檔
collaborative_drafts_enabled: ' 啟用協作草稿'
comments_enabled: 已啟用留言
- comments_max_length: 評論字數最大長度(若要使用預設值請輸入0)
default_sort_order: 預設提案排序
default_sort_order_options:
most_commented: 最多評論
@@ -167,17 +161,14 @@ zh-TW:
email_intro: '%{requester_name} 已經被接受成為 %{resource_title} 協作草稿的貢獻者。'
email_outro: 您收到此通知,是因為您是 %{resource_title} 的協作者。
email_subject: "%{requester_name} 已被接受為 %{resource_title} 的貢獻者。"
- notification_title: %{requester_name} %{requester_nickname} 已被接受為共同編輯者,可存取%{resource_title}的共同協作草稿。
collaborative_draft_access_rejected:
email_intro: '%{requester_name} 已被拒絕加入%{resource_title}協作草稿的貢獻者名單。'
email_outro: 您收到此通知,是因為您是 %{resource_title} 的協作者。
email_subject: "%{requester_name} 已被拒絕加入 %{resource_title} 協作草稿的貢獻者名單。"
- notification_title: %{requester_name} %{requester_nickname} 被拒絕成為%{resource_title}協作草稿的貢獻者。
collaborative_draft_access_requested:
email_intro: '%{requester_name} 提出了成為貢獻者的請求。您可以在 %{resource_title} 協作草稿頁面中接受或拒絕該請求。'
email_outro: 您收到此通知,是因為您是 %{resource_title} 的協作者。
email_subject: "%{requester_name} 要求加入以貢獻至 %{resource_title}。"
- notification_title: %{requester_name} %{requester_nickname} 要求加入以貢獻協作草稿 %{resource_title},請 接受或拒絕該請求。
collaborative_draft_access_requester_accepted:
email_intro: 您已被允許訪問%{resource_title}協作草稿,以作為貢獻者。
email_outro: 您收到此通知是因為您請求成為%{resource_title}的協作者。
@@ -189,10 +180,7 @@ zh-TW:
email_subject: 你的協作者申請已被拒絕,無法成為 %{resource_title} 的貢獻者。
notification_title: 你的%{resource_title}協作草稿的貢獻者申請已被拒絕。
collaborative_draft_withdrawn:
- email_intro: %{author_name} %{author_nickname}已撤回%{resource_title}協作草稿。
email_outro: 您收到此通知,是因為您是 %{resource_title} 的協作者。
- email_subject: "%{author_name} %{author_nickname} 撤回了 %{resource_title} 的協作草稿。"
- notification_title: %{author_name} %{author_nickname}撤回了%{resource_title} 的協作草稿。
creation_enabled:
email_intro: '你現在可以在 %{participatory_space_title} 中建立新的提案了!開始參與此頁面:'
email_outro: 你收到此通知是因為你正在追蹤 %{participatory_space_title}。你可以透過前面的連結停止接收通知。
@@ -203,11 +191,6 @@ zh-TW:
email_outro: 你收到此通知,是因為你是「%{resource_title}」的作者。
email_subject: 你的提案「%{mentioned_proposal_title}」已被提及。
notification_title: 你的提案「%{mentioned_proposal_title}」在評論中被提及,請至此空間查看。
- proposal_published:
- email_intro: '%{author_name} %{author_nickname},你正在關注的用戶,已經發布了一個名為“%{resource_title}”的新提案。快去看看並參與:'
- email_outro: 您收到此通知,是因為您正在關注 %{author_nickname}。您可以使用上面的連結停止接收通知。
- email_subject: 新提案「%{resource_title}」由 %{author_nickname} 提交
- notification_title: 提案 %{resource_title} 由 %{author_name} %{author_nickname} 提出。
proposal_published_for_space:
email_intro: 您正在追蹤的「%{participatory_space_title}」中新增了提案「%{resource_title}」。
email_outro: 收到這個提醒是因為訂閱了 "%{participatory_space_title}" ,透過上面連結可以停止訂閱。
diff --git a/decidim-proposals/lib/decidim/proposals/import/proposal_creator.rb b/decidim-proposals/lib/decidim/proposals/import/proposal_creator.rb
index 7a581a41e8327..2e81b2a8f4c79 100644
--- a/decidim-proposals/lib/decidim/proposals/import/proposal_creator.rb
+++ b/decidim-proposals/lib/decidim/proposals/import/proposal_creator.rb
@@ -26,7 +26,7 @@ def initialize(data, context = nil)
#
# Returns a proposal
def produce
- resource.add_coauthor(context[:current_user])
+ resource.add_coauthor(component.organization)
resource
end
@@ -101,8 +101,7 @@ def notify(proposal)
Decidim::EventsManager.publish(
event: "decidim.events.proposals.proposal_published",
event_class: Decidim::Proposals::PublishProposalEvent,
- resource: proposal,
- followers: coauthors_followers(proposal)
+ resource: proposal
)
end
@@ -111,16 +110,12 @@ def publish(proposal)
event: "decidim.events.proposals.proposal_published",
event_class: Decidim::Proposals::PublishProposalEvent,
resource: proposal,
- followers: proposal.participatory_space.followers - coauthors_followers(proposal),
+ followers: proposal.participatory_space.followers,
extra: {
participatory_space: true
}
)
end
-
- def coauthors_followers(proposal)
- @coauthors_followers ||= proposal.authors.flat_map(&:followers)
- end
end
end
end
diff --git a/decidim-proposals/lib/decidim/proposals/seeds.rb b/decidim-proposals/lib/decidim/proposals/seeds.rb
index 7254c3892d281..714ee38d61b6a 100644
--- a/decidim-proposals/lib/decidim/proposals/seeds.rb
+++ b/decidim-proposals/lib/decidim/proposals/seeds.rb
@@ -161,11 +161,13 @@ def random_coauthor
case n
when 0
- Decidim::User.where(organization:).sample
+ Decidim::User.where(organization:).sample || organization
when 1
meeting_component = participatory_space.components.find_by(manifest_name: "meetings")
- Decidim::Meetings::Meeting.where(component: meeting_component).sample
+ Decidim::Meetings::Meeting.where(component: meeting_component).sample ||
+ Decidim::User.where(organization:).sample ||
+ organization
else
organization
end
diff --git a/decidim-proposals/lib/decidim/proposals/version.rb b/decidim-proposals/lib/decidim/proposals/version.rb
index 8fe8c371eac1c..af288d2c93c2b 100644
--- a/decidim-proposals/lib/decidim/proposals/version.rb
+++ b/decidim-proposals/lib/decidim/proposals/version.rb
@@ -4,7 +4,7 @@ module Decidim
# This holds decidim-proposals version.
module Proposals
def self.version
- "0.31.4"
+ "0.31.7"
end
end
end
diff --git a/decidim-proposals/spec/cells/decidim/proposals/proposal_votes_count_cell_spec.rb b/decidim-proposals/spec/cells/decidim/proposals/proposal_votes_count_cell_spec.rb
new file mode 100644
index 0000000000000..40327d705f314
--- /dev/null
+++ b/decidim-proposals/spec/cells/decidim/proposals/proposal_votes_count_cell_spec.rb
@@ -0,0 +1,95 @@
+# frozen_string_literal: true
+
+require "spec_helper"
+
+module Decidim::Proposals
+ describe ProposalVotesCountCell, type: :cell do
+ controller Decidim::Proposals::ProposalsController
+
+ subject(:cell_html) { my_cell.call }
+
+ let(:my_cell) { cell("decidim/proposals/proposal_votes_count", proposal, from_proposals_list:) }
+ let(:from_proposals_list) { false }
+ let(:organization) { create(:organization) }
+ let(:participatory_space) { create(:assembly, :public, organization:) }
+ let(:component) { create(:proposal_component, participatory_space:) }
+ let!(:proposal) { create(:proposal, component:) }
+ let(:user) { create(:user, organization:) }
+
+ before do
+ allow(controller).to receive(:current_user).and_return(user)
+ end
+
+ describe "show" do
+ let(:votes_count_selector) { "#proposal-#{proposal.id}-votes-count" }
+
+ context "when votes are hidden" do
+ before do
+ component.update!(default_step_settings: { votes_hidden: true, votes_enabled: true })
+ end
+
+ it "renders nothing" do
+ expect(subject).to have_no_css(votes_count_selector)
+ end
+ end
+
+ context "when the user can participate in the space" do
+ it "renders the progress bar" do
+ expect(subject).to have_css(votes_count_selector)
+ end
+ end
+
+ context "when the user is an admin" do
+ let(:user) { create(:user, :admin, :confirmed, organization:) }
+ let(:participatory_space) { create(:assembly, :private, organization:) }
+
+ it "renders the progress bar" do
+ expect(subject).to have_css(votes_count_selector)
+ end
+ end
+
+ context "when the space is a transparent assembly" do
+ let(:participatory_space) { create(:assembly, :transparent, organization:) }
+
+ it "renders the progress bar" do
+ expect(subject).to have_css(votes_count_selector)
+ end
+ end
+
+ context "when the space is private and the user is not a member" do
+ let(:participatory_space) { create(:assembly, :private, :opaque, organization:) }
+
+ it "renders nothing" do
+ expect(subject).to have_no_css(votes_count_selector)
+ end
+ end
+
+ context "when there is no current user" do
+ let(:user) { nil }
+ let(:participatory_space) { create(:assembly, :private, :opaque, organization:) }
+
+ it "renders nothing" do
+ expect(subject).to have_no_css(votes_count_selector)
+ end
+
+ context "and the space is transparent" do
+ let(:participatory_space) { create(:assembly, :transparent, organization:) }
+
+ it "renders the progress bar" do
+ expect(subject).to have_css(votes_count_selector)
+ end
+ end
+ end
+
+ context "when participatory texts are enabled and rendered from the proposals list" do
+ let(:from_proposals_list) { true }
+ let(:component) { create(:proposal_component, :with_participatory_texts_enabled, participatory_space:) }
+
+ it "renders the participatory texts variant" do
+ expect(subject).to have_css(votes_count_selector)
+ expect(subject).to have_no_css(".card__proposals-votes-limited, .card__proposals-votes-unlimited")
+ end
+ end
+ end
+ end
+end
diff --git a/decidim-proposals/spec/commands/decidim/proposals/admin/create_proposal_spec.rb b/decidim-proposals/spec/commands/decidim/proposals/admin/create_proposal_spec.rb
index f596535fdcff9..70066cce5fb55 100644
--- a/decidim-proposals/spec/commands/decidim/proposals/admin/create_proposal_spec.rb
+++ b/decidim-proposals/spec/commands/decidim/proposals/admin/create_proposal_spec.rb
@@ -41,8 +41,8 @@ module Admin
address:,
has_address:,
attachment: attachment_params,
- documents: current_files,
- add_documents: uploaded_files,
+ attachments: current_files,
+ add_attachments: uploaded_files,
created_in_meeting:,
meeting_id:
}
diff --git a/decidim-proposals/spec/commands/decidim/proposals/admin/import_proposals_spec.rb b/decidim-proposals/spec/commands/decidim/proposals/admin/import_proposals_spec.rb
index 6b25eaaafc344..46235fef490e2 100644
--- a/decidim-proposals/spec/commands/decidim/proposals/admin/import_proposals_spec.rb
+++ b/decidim-proposals/spec/commands/decidim/proposals/admin/import_proposals_spec.rb
@@ -122,7 +122,7 @@ module Admin
expect(new_proposal.title).to eq(proposal.title)
expect(new_proposal.body).to eq(proposal.body)
expect(new_proposal.creator_author).to eq(organization)
- expect(new_proposal.taxonomies).to eq(proposal.taxonomies)
+ expect(new_proposal.taxonomies).to match_array(proposal.taxonomies)
expect(new_proposal.state).to be_nil
expect(new_proposal.state_published_at).to be_nil
diff --git a/decidim-proposals/spec/commands/decidim/proposals/admin/merge_proposals_spec.rb b/decidim-proposals/spec/commands/decidim/proposals/admin/merge_proposals_spec.rb
index 2dc507679cfb2..230e0206a0883 100644
--- a/decidim-proposals/spec/commands/decidim/proposals/admin/merge_proposals_spec.rb
+++ b/decidim-proposals/spec/commands/decidim/proposals/admin/merge_proposals_spec.rb
@@ -25,7 +25,7 @@ module Admin
same_component?: same_component,
current_user: create(:user, :admin, organization: current_component.organization),
add_photos: [],
- add_documents: [],
+ add_attachments: [],
title: { "en" => "Valid Long Proposal Title" },
body: { "en" => "Valid body text" },
address: "",
@@ -34,7 +34,7 @@ module Admin
created_in_meeting: false,
created_in_meeting?: false,
author:,
- documents: []
+ attachments: []
)
end
let(:command) { described_class.new(form) }
@@ -100,7 +100,7 @@ module Admin
same_component?: same_component,
current_user: create(:user, :admin, organization: current_component.organization),
add_photos: [valid_photo],
- add_documents: [valid_document],
+ add_attachments: [valid_document],
title: { "en" => "Valid very Long Proposal Title" },
body: { "en" => "Valid body text" },
address: "",
@@ -171,7 +171,7 @@ module Admin
expect(new_proposal.title).to eq({ "en" => "Valid Long Proposal Title" })
expect(new_proposal.body).to eq({ "en" => "Valid body text" })
expect(new_proposal.creator_author).to eq(current_component.organization)
- expect(new_proposal.taxonomies).to eq(proposal.taxonomies)
+ expect(new_proposal.taxonomies).to match_array(proposal.taxonomies)
expect(new_proposal.state).to be_nil
expect(new_proposal.answer).to be_nil
diff --git a/decidim-proposals/spec/commands/decidim/proposals/admin/split_proposals_spec.rb b/decidim-proposals/spec/commands/decidim/proposals/admin/split_proposals_spec.rb
index 0b3469ac5a90f..363908c5ec3b8 100644
--- a/decidim-proposals/spec/commands/decidim/proposals/admin/split_proposals_spec.rb
+++ b/decidim-proposals/spec/commands/decidim/proposals/admin/split_proposals_spec.rb
@@ -70,7 +70,7 @@ module Admin
expect(new_proposal.title).to eq(proposal.title)
expect(new_proposal.body).to eq(proposal.body)
expect(new_proposal.creator_author).to eq(current_component.organization)
- expect(new_proposal.taxonomies).to eq(proposal.taxonomies)
+ expect(new_proposal.taxonomies).to match_array(proposal.taxonomies)
expect(new_proposal.state).to be_nil
expect(new_proposal.answer).to be_nil
diff --git a/decidim-proposals/spec/commands/decidim/proposals/admin/update_proposal_spec.rb b/decidim-proposals/spec/commands/decidim/proposals/admin/update_proposal_spec.rb
index ee6bbcddcbe7b..cd3cc1c38be9f 100644
--- a/decidim-proposals/spec/commands/decidim/proposals/admin/update_proposal_spec.rb
+++ b/decidim-proposals/spec/commands/decidim/proposals/admin/update_proposal_spec.rb
@@ -39,8 +39,8 @@
address:,
has_address:,
attachment: attachment_params,
- documents: current_files,
- add_documents: uploaded_files
+ attachments: current_files,
+ add_attachments: uploaded_files
}
end
diff --git a/decidim-proposals/spec/commands/decidim/proposals/create_collaborative_draft_spec.rb b/decidim-proposals/spec/commands/decidim/proposals/create_collaborative_draft_spec.rb
index 2c674bcafd0cc..cb6bc7a09e531 100644
--- a/decidim-proposals/spec/commands/decidim/proposals/create_collaborative_draft_spec.rb
+++ b/decidim-proposals/spec/commands/decidim/proposals/create_collaborative_draft_spec.rb
@@ -37,7 +37,7 @@ module Proposals
has_address:,
latitude:,
longitude:,
- add_documents: attachment_params
+ add_attachments: attachment_params
}
end
diff --git a/decidim-proposals/spec/commands/decidim/proposals/update_proposal_spec.rb b/decidim-proposals/spec/commands/decidim/proposals/update_proposal_spec.rb
index 1a0f380f525b2..d04cc6f76e1b4 100644
--- a/decidim-proposals/spec/commands/decidim/proposals/update_proposal_spec.rb
+++ b/decidim-proposals/spec/commands/decidim/proposals/update_proposal_spec.rb
@@ -41,8 +41,8 @@ module Proposals
address:,
has_address:,
attachment: attachment_params,
- documents: current_files,
- add_documents: uploaded_files,
+ attachments: current_files,
+ add_attachments: uploaded_files,
errors:
}
end
diff --git a/decidim-proposals/spec/events/decidim/proposals/admin/proposal_note_created_event_spec.rb b/decidim-proposals/spec/events/decidim/proposals/admin/proposal_note_created_event_spec.rb
index 9d7e644ebb137..c3529e88e4753 100644
--- a/decidim-proposals/spec/events/decidim/proposals/admin/proposal_note_created_event_spec.rb
+++ b/decidim-proposals/spec/events/decidim/proposals/admin/proposal_note_created_event_spec.rb
@@ -16,7 +16,7 @@
let(:email_subject) { "#{author.name} has replied your private note in #{resource_title}." }
let(:email_intro) { %(#{author.name} has replied your private note in #{resource_title}. Check it out at the admin panel.) }
let(:email_outro) { "You have received this notification because you are the author of the note." }
- let(:notification_title) { %(#{author.name} @#{author.nickname} has replied your private note in #{resource_title}. Check it out at the admin panel.) }
+ let(:notification_title) { %(#{author.name} has replied your private note in #{resource_title}. Check it out at the admin panel.) }
it_behaves_like "a simple event"
it_behaves_like "a simple event email"
@@ -29,7 +29,7 @@
let(:admin_proposal_info_path) { "/admin/assemblies/#{participatory_space.slug}/components/#{component.id}/manage/proposals/#{resource.id}" }
let(:admin_proposal_info_url) { "http://#{organization.host}/admin/assemblies/#{participatory_space.slug}/components/#{component.id}/manage/proposals/#{resource.id}" }
let(:email_intro) { %(#{author.name} has replied your private note in #{resource_title}. Check it out at the admin panel.) }
- let(:notification_title) { %(#{author.name} @#{author.nickname} has replied your private note in #{resource_title}. Check it out at the admin panel.) }
+ let(:notification_title) { %(#{author.name} has replied your private note in #{resource_title}. Check it out at the admin panel.) }
it_behaves_like "a simple event email"
it_behaves_like "a simple event notification"
diff --git a/decidim-proposals/spec/events/decidim/proposals/amendable/amendment_accepted_event_spec.rb b/decidim-proposals/spec/events/decidim/proposals/amendable/amendment_accepted_event_spec.rb
index 21c22ba2b0fa5..177aa2191dfc7 100644
--- a/decidim-proposals/spec/events/decidim/proposals/amendable/amendment_accepted_event_spec.rb
+++ b/decidim-proposals/spec/events/decidim/proposals/amendable/amendment_accepted_event_spec.rb
@@ -11,9 +11,10 @@ module Amendable
let!(:amendment) { create(:amendment, amendable:, emendation:) }
let(:amendable_title) { "My super proposal" }
+ let(:emendation_author_name) { emendation.creator_author.name }
let(:event_name) { "decidim.events.amendments.amendment_accepted" }
let(:amendment_type) { "accepted" }
- let(:email_subject) { "Accepted amendment for #{amendable_title} from #{emendation_author_nickname}" }
+ let(:email_subject) { "Accepted amendment for #{amendable_title} from #{emendation_author_name}" }
include_examples "amendment event"
end
diff --git a/decidim-proposals/spec/events/decidim/proposals/amendable/amendment_rejected_event_spec.rb b/decidim-proposals/spec/events/decidim/proposals/amendable/amendment_rejected_event_spec.rb
index 33dd20cb8e4fd..1633fc62b4c69 100644
--- a/decidim-proposals/spec/events/decidim/proposals/amendable/amendment_rejected_event_spec.rb
+++ b/decidim-proposals/spec/events/decidim/proposals/amendable/amendment_rejected_event_spec.rb
@@ -13,7 +13,7 @@ module Amendable
let(:event_name) { "decidim.events.amendments.amendment_rejected" }
let(:amendment_type) { "rejected" }
- let(:email_subject) { "Amendment rejected for #{amendable_title} from #{emendation_author_nickname}" }
+ let(:email_subject) { "Amendment rejected for #{amendable_title} from #{emendation_author_name}" }
include_examples "amendment event"
end
diff --git a/decidim-proposals/spec/events/decidim/proposals/collaborative_draft_access_accepted_event_spec.rb b/decidim-proposals/spec/events/decidim/proposals/collaborative_draft_access_accepted_event_spec.rb
index a830af6ebc858..41c0239939807 100644
--- a/decidim-proposals/spec/events/decidim/proposals/collaborative_draft_access_accepted_event_spec.rb
+++ b/decidim-proposals/spec/events/decidim/proposals/collaborative_draft_access_accepted_event_spec.rb
@@ -14,12 +14,10 @@
let(:author_presenter) { Decidim::UserPresenter.new(author) }
let(:author_path) { author_presenter.profile_path }
let(:author_name) { author_presenter.name }
- let(:author_nickname) { author_presenter.nickname }
let(:requester) { create(:user, :confirmed, organization: resource.organization) }
let(:requester_presenter) { Decidim::UserPresenter.new(requester) }
let(:requester_id) { requester.id }
let(:requester_name) { requester.name }
- let(:requester_nickname) { requester_presenter.nickname }
let(:requester_path) { requester_presenter.profile_path }
let(:extra) { { requester_id: } }
@@ -27,7 +25,7 @@
let(:email_subject) { "#{requester_name} has been accepted to access as a contributor of the #{resource_title}." }
let(:email_intro) { %(#{requester_name} has been accepted to access as a contributor of the #{decidim_html_escape(resource_title)} collaborative draft.) }
let(:email_outro) { %(You have received this notification because you are a collaborator of #{decidim_html_escape(resource_title)}.) }
- let(:notification_title) { %(#{requester_name} #{requester_nickname} has been accepted to access as a contributor of the #{decidim_html_escape(resource_title)} collaborative draft.) }
+ let(:notification_title) { %(#{requester_name} has been accepted to access as a contributor of the #{decidim_html_escape(resource_title)} collaborative draft.) }
it_behaves_like "a simple event"
it_behaves_like "a simple event email"
diff --git a/decidim-proposals/spec/events/decidim/proposals/collaborative_draft_access_rejected_event_spec.rb b/decidim-proposals/spec/events/decidim/proposals/collaborative_draft_access_rejected_event_spec.rb
index 125bb7a2f379e..1d290e6187472 100644
--- a/decidim-proposals/spec/events/decidim/proposals/collaborative_draft_access_rejected_event_spec.rb
+++ b/decidim-proposals/spec/events/decidim/proposals/collaborative_draft_access_rejected_event_spec.rb
@@ -14,12 +14,10 @@
let(:author_presenter) { Decidim::UserPresenter.new(author) }
let(:author_path) { author_presenter.profile_path }
let(:author_name) { author_presenter.name }
- let(:author_nickname) { author_presenter.nickname }
let(:requester) { create(:user, :confirmed, organization: resource.organization) }
let(:requester_presenter) { Decidim::UserPresenter.new(requester) }
let(:requester_id) { requester.id }
let(:requester_name) { requester.name }
- let(:requester_nickname) { requester_presenter.nickname }
let(:requester_path) { requester_presenter.profile_path }
let(:extra) { { requester_id: } }
@@ -27,7 +25,7 @@
let(:email_subject) { "#{requester_name} has been rejected to access as a contributor of the #{translated(resource.title)} collaborative draft." }
let(:email_intro) { %(#{requester_name} has been rejected to access as a contributor of the #{resource_title} collaborative draft.) }
let(:email_outro) { %(You have received this notification because you are a collaborator of #{resource_title}.) }
- let(:notification_title) { %(#{requester_name} #{requester_nickname} has been rejected to access as a contributor of the #{resource_title} collaborative draft.) }
+ let(:notification_title) { %(#{requester_name} has been rejected to access as a contributor of the #{resource_title} collaborative draft.) }
it_behaves_like "a simple event"
it_behaves_like "a simple event email"
diff --git a/decidim-proposals/spec/events/decidim/proposals/collaborative_draft_access_requested_event_spec.rb b/decidim-proposals/spec/events/decidim/proposals/collaborative_draft_access_requested_event_spec.rb
index faa8e33bc3511..0ac37cb05f441 100644
--- a/decidim-proposals/spec/events/decidim/proposals/collaborative_draft_access_requested_event_spec.rb
+++ b/decidim-proposals/spec/events/decidim/proposals/collaborative_draft_access_requested_event_spec.rb
@@ -14,17 +14,15 @@
let(:author_presenter) { Decidim::UserPresenter.new(author) }
let(:author_path) { author_presenter.profile_path }
let(:author_name) { author_presenter.name }
- let(:author_nickname) { author_presenter.nickname }
let(:requester) { create(:user, :confirmed, organization: resource.organization) }
let(:requester_name) { requester.name }
let(:requester_id) { requester.id }
let(:requester_presenter) { Decidim::UserPresenter.new(requester) }
let(:requester_path) { requester_presenter.profile_path }
- let(:requester_nickname) { requester_presenter.nickname }
let(:extra) { { requester_id: } }
context "when the notification is for coauthor users" do
- let(:notification_title) { %(#{requester_name} #{requester_nickname} requested access to contribute to the #{decidim_html_escape(resource_title)} collaborative draft. Please accept or reject the request.) }
+ let(:notification_title) { %(#{requester_name} requested access to contribute to the #{decidim_html_escape(resource_title)} collaborative draft. Please accept or reject the request.) }
let(:email_outro) { %(You have received this notification because you are a collaborator of #{decidim_html_escape(resource_title)}.) }
let(:email_intro) { %(#{requester_name} requested access as a contributor. You can accept or reject the request from the #{decidim_html_escape(resource_title)} collaborative draft page.) }
let(:email_subject) { "#{requester_name} requested access to contribute to #{resource_title}." }
diff --git a/decidim-proposals/spec/events/decidim/proposals/collaborative_draft_withdrawn_event_spec.rb b/decidim-proposals/spec/events/decidim/proposals/collaborative_draft_withdrawn_event_spec.rb
index fbfb06b153ff5..c397d01d028bf 100644
--- a/decidim-proposals/spec/events/decidim/proposals/collaborative_draft_withdrawn_event_spec.rb
+++ b/decidim-proposals/spec/events/decidim/proposals/collaborative_draft_withdrawn_event_spec.rb
@@ -15,14 +15,13 @@
let(:author_path) { author_presenter.profile_path }
let(:author_url) { author_presenter.profile_url }
let(:author_name) { author_presenter.name }
- let(:author_nickname) { author_presenter.nickname }
let(:extra) { { author_id: } }
context "when the notification is for coauthor users" do
- let(:notification_title) { %(#{author_name} #{author_nickname}withdrawn the #{resource_title} collaborative draft.) }
+ let(:notification_title) { %(#{author_name} has withdrawn the #{resource_title} collaborative draft.) }
let(:email_outro) { %(You have received this notification because you are a collaborator of #{resource_title}.) }
- let(:email_intro) { %(#{author_name} #{author_nickname} withdrawn the #{resource_title} collaborative draft.) }
- let(:email_subject) { "#{author_name} #{author_nickname} withdrawn the #{decidim_sanitize(resource_title)} collaborative draft." }
+ let(:email_intro) { %(#{author_name} has withdrawn the #{resource_title} collaborative draft.) }
+ let(:email_subject) { "#{author_name} has withdrawn the #{decidim_sanitize(resource_title)} collaborative draft." }
it_behaves_like "a simple event"
it_behaves_like "a simple event email"
diff --git a/decidim-proposals/spec/events/decidim/proposals/publish_proposal_event_spec.rb b/decidim-proposals/spec/events/decidim/proposals/publish_proposal_event_spec.rb
index 0a3ab35eb50e3..eeb434e9aac2d 100644
--- a/decidim-proposals/spec/events/decidim/proposals/publish_proposal_event_spec.rb
+++ b/decidim-proposals/spec/events/decidim/proposals/publish_proposal_event_spec.rb
@@ -26,26 +26,26 @@ module Proposals
let(:resource) { create(:proposal) }
it "is generated correctly" do
- expect(subject.email_subject).to eq("New proposal \"#{resource_title}\" by @#{author.nickname}")
+ expect(subject.email_subject).to eq("New proposal \"#{resource_title}\" by #{author.name}")
end
end
it "is generated correctly" do
- expect(subject.email_subject).to eq("New proposal \"#{resource_title}\" by @#{author.nickname}")
+ expect(subject.email_subject).to eq("New proposal \"#{resource_title}\" by #{author.name}")
end
end
describe "email_intro" do
it "is generated correctly" do
expect(subject.email_intro)
- .to eq("#{author.name} @#{author.nickname}, who you are following, has published a new proposal called \"#{resource_title}\". Check it out and contribute:")
+ .to eq("#{author.name}, who you are following, has published a new proposal called \"#{resource_title}\". Check it out and contribute:")
end
end
describe "email_outro" do
it "is generated correctly" do
expect(subject.email_outro)
- .to eq("You have received this notification because you are following @#{author.nickname}. You can stop receiving notifications following the previous link.")
+ .to eq("You have received this notification because you are following #{author.name}. You can stop receiving notifications following the previous link.")
end
end
@@ -55,7 +55,7 @@ module Proposals
.to include("The #{resource_title} proposal was published by ")
expect(subject.notification_title)
- .to include("#{author.name} @#{author.nickname}.")
+ .to include("#{author.name}.")
end
end
diff --git a/decidim-proposals/spec/forms/decidim/proposals/admin/proposals_import_form_spec.rb b/decidim-proposals/spec/forms/decidim/proposals/admin/proposals_import_form_spec.rb
index d26f8dd19bfdb..a48193e7a0cdd 100644
--- a/decidim-proposals/spec/forms/decidim/proposals/admin/proposals_import_form_spec.rb
+++ b/decidim-proposals/spec/forms/decidim/proposals/admin/proposals_import_form_spec.rb
@@ -40,7 +40,7 @@ module Admin
context "when there are no states" do
let(:states) { [] }
- it { is_expected.to be_invalid }
+ it { is_expected.to be_valid }
end
context "when there is no target component" do
@@ -81,6 +81,50 @@ module Admin
expect(form.origin_components.length).to eq(1)
end
end
+
+ describe "valid_states validation" do
+ context "when all selected states are valid" do
+ let(:states) { %w(accepted rejected) }
+
+ it { is_expected.to be_valid }
+ end
+
+ context "when including the special not_answered state" do
+ let(:states) { %w(accepted not_answered) }
+
+ it { is_expected.to be_valid }
+ end
+
+ context "when only not_answered is selected" do
+ let(:states) { %w(not_answered) }
+
+ it { is_expected.to be_valid }
+ end
+
+ context "when some states are invalid" do
+ let(:states) { %w(accepted invalid_state) }
+
+ it { is_expected.to be_invalid }
+
+ it "adds an error to the states attribute" do
+ form.valid?
+ expect(form.errors[:states]).to be_present
+ end
+ end
+
+ context "when all states are invalid" do
+ let(:states) { %w(nonexistent_state another_invalid) }
+
+ it { is_expected.to be_invalid }
+ end
+
+ context "when there is no origin component" do
+ let(:origin_component) { nil }
+ let(:states) { %w(invalid_state) }
+
+ it { is_expected.to be_invalid }
+ end
+ end
end
end
end
diff --git a/decidim-proposals/spec/lib/decidim/proposals/import/proposal_creator_spec.rb b/decidim-proposals/spec/lib/decidim/proposals/import/proposal_creator_spec.rb
index c5b849dbd7e2f..8c8315f1d0b6f 100644
--- a/decidim-proposals/spec/lib/decidim/proposals/import/proposal_creator_spec.rb
+++ b/decidim-proposals/spec/lib/decidim/proposals/import/proposal_creator_spec.rb
@@ -80,17 +80,26 @@
expect(record.longitude).to eq(data[:longitude])
expect(record.published_at).to be >= (moment)
end
+
+ it "sets the organization as author (official proposal)" do
+ record = subject.produce
+
+ expect(record.authors).to contain_exactly(organization)
+ expect(record.official?).to be true
+ end
end
describe "#finish!" do
it "saves the proposal" do
record = subject.produce
subject.finish!
+
expect(record.new_record?).to be(false)
end
it "creates admin log" do
record = subject.produce
+
expect { subject.finish! }.to change(Decidim::ActionLog, :count).by(1)
expect(Decidim::ActionLog.last.user).to eq(user)
expect(Decidim::ActionLog.last.resource).to eq(record)
diff --git a/decidim-proposals/spec/models/decidim/proposals/proposal_spec.rb b/decidim-proposals/spec/models/decidim/proposals/proposal_spec.rb
index d4e22f129a70e..a2337cd04bb49 100644
--- a/decidim-proposals/spec/models/decidim/proposals/proposal_spec.rb
+++ b/decidim-proposals/spec/models/decidim/proposals/proposal_spec.rb
@@ -347,6 +347,20 @@ module Proposals
end
end
end
+
+ describe ".ransackable_attributes" do
+ it "allows sorting by state_published" do
+ expect(described_class.ransackable_attributes).to include("state_published")
+ end
+
+ it "allows sorting by evaluation_assignments_count" do
+ expect(described_class.ransackable_attributes).to include("evaluation_assignments_count")
+ end
+
+ it "allows sorting by translated_title" do
+ expect(described_class.ransackable_attributes).to include("translated_title")
+ end
+ end
end
end
end
diff --git a/decidim-proposals/spec/presenters/decidim/proposals/admin_log/value_types/evaluator_role_user_presenter_spec.rb b/decidim-proposals/spec/presenters/decidim/proposals/admin_log/value_types/evaluator_role_user_presenter_spec.rb
new file mode 100644
index 0000000000000..af5df10ae661d
--- /dev/null
+++ b/decidim-proposals/spec/presenters/decidim/proposals/admin_log/value_types/evaluator_role_user_presenter_spec.rb
@@ -0,0 +1,39 @@
+# frozen_string_literal: true
+
+require "spec_helper"
+
+describe Decidim::Proposals::AdminLog::ValueTypes::EvaluatorRoleUserPresenter, type: :helper do
+ subject { described_class.new(value, helper) }
+
+ let(:organization) { create(:organization) }
+ let(:participatory_space) { create(:participatory_process, organization:) }
+ let(:component) { create(:proposal_component, participatory_space:) }
+ let(:proposal) { create(:proposal, component:) }
+
+ describe "#present" do
+ context "when value is nil" do
+ let(:value) { nil }
+
+ it "returns nil" do
+ expect(subject.present).to be_nil
+ end
+ end
+
+ context "when the evaluation assignment exists" do
+ let(:evaluation_assignment) { create(:evaluation_assignment, proposal:) }
+ let(:value) { evaluation_assignment.evaluator_role_id }
+
+ it "returns the evaluator's name" do
+ expect(subject.present).to eq(evaluation_assignment.evaluator.name)
+ end
+ end
+
+ context "when the evaluation assignment has been deleted" do
+ let(:value) { 999_999 }
+
+ it "returns nil" do
+ expect(subject.present).to be_nil
+ end
+ end
+ end
+end
diff --git a/decidim-proposals/spec/shared/manage_proposals_examples.rb b/decidim-proposals/spec/shared/manage_proposals_examples.rb
index ded0053bde75e..e958ac9536ec4 100644
--- a/decidim-proposals/spec/shared/manage_proposals_examples.rb
+++ b/decidim-proposals/spec/shared/manage_proposals_examples.rb
@@ -195,7 +195,7 @@
fill_in_i18n_editor :proposal_body, "#proposal-body-tabs", en: "This is my proposal and I want to upload attachments."
end
- dynamically_attach_file(:proposal_documents, image_path)
+ dynamically_attach_file(:proposal_attachments, image_path)
within ".new_proposal" do
find("*[type=submit]").click
diff --git a/decidim-proposals/spec/shared/merge_proposals_examples.rb b/decidim-proposals/spec/shared/merge_proposals_examples.rb
index 05fc84afeb94f..3a6e909679598 100644
--- a/decidim-proposals/spec/shared/merge_proposals_examples.rb
+++ b/decidim-proposals/spec/shared/merge_proposals_examples.rb
@@ -80,10 +80,6 @@
context "when merging to another component" do
before do
click_on "My result merge proposal"
- wait = Selenium::WebDriver::Wait.new(timeout: 10)
- wait.until { page.driver.browser.switch_to.alert }
- alert = page.driver.browser.switch_to.alert
- alert.accept
new_proposal_url = find("a", text: "See proposal")[:href]
visit new_proposal_url
end
diff --git a/decidim-proposals/spec/shared/proposals_wizards_examples.rb b/decidim-proposals/spec/shared/proposals_wizards_examples.rb
index 077a73be01240..5dbd897aae70b 100644
--- a/decidim-proposals/spec/shared/proposals_wizards_examples.rb
+++ b/decidim-proposals/spec/shared/proposals_wizards_examples.rb
@@ -219,6 +219,7 @@
it "shows the activity logs" do
click_on "Publish"
+ expect(page).to have_content("Proposal successfully published.")
visit decidim.last_activities_path
expect(page).to have_content("New proposal: #{translated(proposal_draft.title)}")
@@ -274,6 +275,7 @@
login_as user, scope: :user
visit_component
click_on "New proposal"
+ expect(page).to have_css("h1", text: "Create new proposal")
end
it_behaves_like "with address" if options[:with_address]
diff --git a/decidim-proposals/spec/system/admin/admin_answers_proposal_spec.rb b/decidim-proposals/spec/system/admin/admin_answers_proposal_spec.rb
index 001775408d281..2060316e61108 100644
--- a/decidim-proposals/spec/system/admin/admin_answers_proposal_spec.rb
+++ b/decidim-proposals/spec/system/admin/admin_answers_proposal_spec.rb
@@ -117,5 +117,31 @@
expect(page).to have_css(".flash", text: "Proposal successfully answered.")
end
end
+
+ context "when geocoding is enabled" do
+ let!(:component) { create(:proposal_component, :with_geocoding_enabled, participatory_space:) }
+ let!(:proposals) { create_list(:proposal, 3, component:, cost_report: {}) }
+
+ before do
+ component.update!(
+ settings: { proposal_answering_enabled: true, geocoding_enabled: true },
+ step_settings: {
+ component.participatory_space.active_step.id => {
+ proposal_answering_enabled: true
+ }
+ }
+ )
+ visit_component_admin
+ end
+
+ it "shows the address on the proposal show page" do
+ within "tr", text: translated(proposals.first.title) do
+ find("button[data-controller='dropdown']").click
+ click_on "Answer proposal"
+ end
+ expect(page).to have_css(".component__show-title", text: "Address")
+ expect(page).to have_text(proposals.first.address)
+ end
+ end
end
end
diff --git a/decidim-proposals/spec/system/admin/admin_creates_proposal_spec.rb b/decidim-proposals/spec/system/admin/admin_creates_proposal_spec.rb
index 56c26b261b9c2..83008ccc92cb4 100644
--- a/decidim-proposals/spec/system/admin/admin_creates_proposal_spec.rb
+++ b/decidim-proposals/spec/system/admin/admin_creates_proposal_spec.rb
@@ -33,8 +33,8 @@
fill_in_i18n :proposal_title, "#proposal-title-tabs", en: new_title
fill_in_i18n_editor :proposal_body, "#proposal-body-tabs", en: new_body
- dynamically_attach_file(:proposal_documents, image_path)
- dynamically_attach_file(:proposal_documents, document_path)
+ dynamically_attach_file(:proposal_attachments, image_path)
+ dynamically_attach_file(:proposal_attachments, document_path)
click_on("Create")
within "tr", text: translated_attribute(new_title) do
diff --git a/decidim-proposals/spec/system/admin/admin_edits_proposal_spec.rb b/decidim-proposals/spec/system/admin/admin_edits_proposal_spec.rb
index 7a3f7a2a10d9c..0c9c267da23de 100644
--- a/decidim-proposals/spec/system/admin/admin_edits_proposal_spec.rb
+++ b/decidim-proposals/spec/system/admin/admin_edits_proposal_spec.rb
@@ -93,7 +93,7 @@
end
end
- context "when the proposal has attachment" do
+ context "when the proposal has an attachment" do
let!(:component) do
create(:proposal_component,
:with_creation_enabled,
@@ -112,7 +112,7 @@
let!(:document) { create(:attachment, :with_pdf, attached_to: proposal) }
- it "can remove attachment" do
+ it "can remove an attachment" do
visit_component_admin
within "tr", text: translated_attribute(proposal.title) do
find("button[data-controller='dropdown']").click
@@ -132,10 +132,12 @@
expect(page).to have_content("Proposal successfully updated.")
visit_component_admin
+
within "tr", text: translated_attribute(proposal.title) do
find("button[data-controller='dropdown']").click
click_on "Edit proposal"
end
+
expect(page).to have_no_content(document.file.blob.filename)
end
@@ -145,22 +147,32 @@
find("button[data-controller='dropdown']").click
click_on "Edit proposal"
end
- dynamically_attach_file(:proposal_documents, image_path)
click_on("Edit attachments")
- within "li[data-filename='#{image_filename}']" do
- click_on("Remove")
+
+ filename = "Exampledocument.pdf"
+ within ".upload-modal" do
+ find("input[type='file']", visible: :all).attach_file(Decidim::Dev.asset(filename))
+ within "li[data-filename='#{filename}']:not([data-attachment-id])" do
+ expect(page).to have_css("progress[value='100']")
+ end
+ expect(page).to have_css("button[data-dropzone-save]:not([disabled])")
+ click_on("Save")
end
- click_on("Save")
+
+ expect(page).to have_no_css(".upload-modal")
click_on("Update")
+ expect(page).to have_text("Proposal successfully updated.")
+
within "tr", text: translated_attribute(proposal.title) do
find("button[data-controller='dropdown']").click
click_on "Edit proposal"
end
- expect(page).to have_no_content("city.jpeg")
+ click_on "Edit attachments"
+ expect(page).to have_content(filename)
end
it "can edit a proposal with an attachment" do
diff --git a/decidim-proposals/spec/system/admin/filter_proposals_spec.rb b/decidim-proposals/spec/system/admin/filter_proposals_spec.rb
index 2f8769208f937..7414ba1f92b60 100644
--- a/decidim-proposals/spec/system/admin/filter_proposals_spec.rb
+++ b/decidim-proposals/spec/system/admin/filter_proposals_spec.rb
@@ -59,7 +59,7 @@ def proposal_without_state(token)
i18n_state = I18n.t(state, scope: "decidim.admin.filters.proposals.state_eq.values")
context "when filtering proposals by state: #{i18n_state}" do
- it_behaves_like "a filtered collection", options: "State", filter: i18n_state do
+ it_behaves_like "a filtered collection", options: "Status", filter: i18n_state do
let(:in_filter) { translated(proposal_with_state(state).title) }
let(:not_in_filter) { translated(proposal_without_state(state).title) }
end
@@ -67,7 +67,7 @@ def proposal_without_state(token)
end
context "when filtering proposals by state: Withdrawn" do
- it_behaves_like "a filtered collection", options: "State", filter: "Withdrawn" do
+ it_behaves_like "a filtered collection", options: "Status", filter: "Withdrawn" do
let(:in_filter) { translated(withdrawn_proposal.title) }
let(:not_in_filter) { translated(proposals.sample.title) }
end
@@ -233,6 +233,35 @@ def proposal_without_state(token)
end
end
+ context "when sorting by title" do
+ let!(:beta_proposal) { create(:proposal, component:, title: { en: "Beta proposal" }) }
+ let!(:alpha_proposal) { create(:proposal, component:, title: { en: "Alpha proposal" }) }
+ let!(:gamma_proposal) { create(:proposal, component:, title: { en: "Gamma proposal" }) }
+
+ before { visit_component_admin }
+
+ it "sorts by title ascending when 'Title' is clicked" do
+ within "table thead" do
+ click_on "Title"
+ end
+
+ titles = page.all("table tbody tr td:nth-child(2)").map(&:text)
+ expect(titles.find_index { |t| t.include?("Alpha proposal") }).to be < titles.find_index { |t| t.include?("Beta proposal") }
+ expect(titles.find_index { |t| t.include?("Beta proposal") }).to be < titles.find_index { |t| t.include?("Gamma proposal") }
+ end
+
+ it "sorts by title descending when 'Title' is clicked twice" do
+ within "table thead" do
+ click_on "Title"
+ click_on "Title"
+ end
+
+ titles = page.all("table tbody tr td:nth-child(2)").map(&:text)
+ expect(titles.find_index { |t| t.include?("Gamma proposal") }).to be < titles.find_index { |t| t.include?("Beta proposal") }
+ expect(titles.find_index { |t| t.include?("Beta proposal") }).to be < titles.find_index { |t| t.include?("Alpha proposal") }
+ end
+ end
+
it_behaves_like "paginating a collection" do
let!(:collection) { create_list(:proposal, 50, component:) }
end
diff --git a/decidim-proposals/spec/system/admin/import_proposals_from_another_component_spec.rb b/decidim-proposals/spec/system/admin/import_proposals_from_another_component_spec.rb
new file mode 100644
index 0000000000000..df38ae69b2fe3
--- /dev/null
+++ b/decidim-proposals/spec/system/admin/import_proposals_from_another_component_spec.rb
@@ -0,0 +1,133 @@
+# frozen_string_literal: true
+
+require "spec_helper"
+
+describe "Import proposals from another component" do
+ let(:component) { create(:proposal_component) }
+ let(:participatory_space) { component.participatory_space }
+ let!(:origin_component) { create(:proposal_component, participatory_space:) }
+ let(:organization) { component.organization }
+
+ let(:manifest_name) { "proposals" }
+ let(:user) { create(:user, organization:) }
+
+ include_context "when managing a component as an admin" do
+ let!(:component) { create(:proposal_component, participatory_space:) }
+ end
+
+ before do
+ click_on "Import"
+ click_on "Import proposals from another component"
+ end
+
+ it "does not show state checkboxes before a component is selected" do
+ expect(page).to have_no_css("#states-container input[type='checkbox']")
+ end
+
+ it "dynamically loads state checkboxes after selecting an origin component" do
+ within ".import_proposals" do
+ select origin_component.name["en"], from: "Origin component"
+ end
+
+ within "#states-container" do
+ expect(page).to have_unchecked_field("Accepted")
+ expect(page).to have_unchecked_field("Rejected")
+ expect(page).to have_unchecked_field("Evaluating")
+ expect(page).to have_unchecked_field("Not answered")
+ end
+ end
+
+ it "hides state checkboxes when the component selection is cleared" do
+ within ".import_proposals" do
+ select origin_component.name["en"], from: "Origin component"
+ end
+
+ expect(page).to have_css("#states-container input[type='checkbox']")
+
+ within ".import_proposals" do
+ select "Please select a component", from: "Origin component"
+ end
+
+ expect(page).to have_no_css("#states-container input[type='checkbox']")
+ end
+
+ context "when importing proposals filtered by state" do
+ let!(:accepted_proposals) { create_list(:proposal, 2, :accepted, component: origin_component) }
+ let!(:rejected_proposals) { create_list(:proposal, 1, :rejected, component: origin_component) }
+
+ it "only imports proposals matching the selected state" do
+ within ".import_proposals" do
+ select origin_component.name["en"], from: "Origin component"
+ check "Accepted"
+ end
+
+ click_on "Import proposals"
+
+ expect(page).to have_content("The import process has started. We will let you know once it has finished.")
+ perform_enqueued_jobs
+ visit current_path
+
+ expect(Decidim::Proposals::Proposal.where(component:).count).to eq(2)
+ end
+ end
+
+ context "with a custom state on the origin component" do
+ let(:custom_title) { { "en" => "Under review" } }
+ let!(:custom_state) do
+ create(:proposal_state, component: origin_component, token: "under_review", title: custom_title)
+ end
+
+ it "shows the custom state alongside the default ones" do
+ within ".import_proposals" do
+ select origin_component.name["en"], from: "Origin component"
+ end
+
+ within "#states-container" do
+ expect(page).to have_unchecked_field("Under review")
+ expect(page).to have_unchecked_field("Accepted")
+ expect(page).to have_unchecked_field("Not answered")
+ end
+ end
+
+ context "when importing proposals with the custom state" do
+ let!(:custom_state_on_target) do
+ create(:proposal_state, component:, token: "under_review", title: custom_title)
+ end
+ let!(:custom_proposals) { create_list(:proposal, 2, component: origin_component, state: "under_review") }
+ let!(:accepted_proposals) { create_list(:proposal, 1, :accepted, component: origin_component) }
+
+ it "only imports proposals in the custom state" do
+ within ".import_proposals" do
+ select origin_component.name["en"], from: "Origin component"
+ check "Under review"
+ end
+
+ click_on "Import proposals"
+
+ expect(page).to have_content("The import process has started. We will let you know once it has finished.")
+ perform_enqueued_jobs
+ visit current_path
+
+ expect(Decidim::Proposals::Proposal.where(component:).count).to eq(2)
+ end
+ end
+
+ context "when no states are selected" do
+ let!(:proposals) { create_list(:proposal, 3, component: origin_component) }
+
+ it "imports all proposals" do
+ within ".import_proposals" do
+ select origin_component.name["en"], from: "Origin component"
+ end
+
+ click_on "Import proposals"
+
+ expect(page).to have_content("The import process has started. We will let you know once it has finished.")
+ perform_enqueued_jobs
+ visit current_path
+
+ expect(Decidim::Proposals::Proposal.where(component:).count).to eq(3)
+ end
+ end
+ end
+end
diff --git a/decidim-proposals/spec/system/admin/view_proposal_details_from_admin_spec.rb b/decidim-proposals/spec/system/admin/view_proposal_details_from_admin_spec.rb
index 86aee3735d8b3..7ca36e1270410 100644
--- a/decidim-proposals/spec/system/admin/view_proposal_details_from_admin_spec.rb
+++ b/decidim-proposals/spec/system/admin/view_proposal_details_from_admin_spec.rb
@@ -82,6 +82,52 @@
expect(page).to have_content(strip_tags(translated(proposal.body)).strip)
end
+ describe "with rich text proposal body" do
+ include_context "with rich text editor content"
+
+ context "when it is an official proposal" do
+ let!(:proposal) { create(:proposal, :official, body: content, component: current_component) }
+
+ before do
+ go_to_admin_proposal_page(proposal)
+ end
+
+ it_behaves_like "rendering safe content", ".editor-content"
+ end
+
+ context "when it is an official meeting proposal" do
+ let!(:proposal) { create(:proposal, :official_meeting, body: content, component: current_component) }
+
+ before do
+ go_to_admin_proposal_page(proposal)
+ end
+
+ it_behaves_like "rendering safe content", ".editor-content"
+ end
+
+ context "when rich text editor is enabled for participants" do
+ let!(:proposal) { create(:proposal, body: content, component: current_component) }
+
+ before do
+ current_component.organization.update(rich_text_editor_in_public_views: true)
+ go_to_admin_proposal_page(proposal)
+ end
+
+ it_behaves_like "rendering safe content", ".editor-content"
+ end
+
+ context "when rich text editor is NOT enabled for participants" do
+ let!(:proposal) { create(:proposal, body: content, component: current_component) }
+
+ before do
+ current_component.organization.update(rich_text_editor_in_public_views: false)
+ go_to_admin_proposal_page(proposal)
+ end
+
+ it_behaves_like "rendering unsafe content", ".editor-content"
+ end
+ end
+
describe "with an specific creation date" do
let!(:proposal) { create(:proposal, component: current_component, created_at: Time.zone.parse("2020-01-29 15:00")) }
diff --git a/decidim-proposals/spec/system/collaborative_drafts_fields_spec.rb b/decidim-proposals/spec/system/collaborative_drafts_fields_spec.rb
index f4fbf44c3a9e2..f54ad3d040c0e 100644
--- a/decidim-proposals/spec/system/collaborative_drafts_fields_spec.rb
+++ b/decidim-proposals/spec/system/collaborative_drafts_fields_spec.rb
@@ -232,7 +232,7 @@
fill_in :collaborative_draft_body, with: "This is my collaborative draft and I want to upload attachments."
end
- dynamically_attach_file(:collaborative_draft_documents, Decidim::Dev.asset("city.jpeg"))
+ dynamically_attach_file(:collaborative_draft_attachments, Decidim::Dev.asset("city.jpeg"))
within ".new_collaborative_draft" do
find("*[type=submit]").click
diff --git a/decidim-proposals/spec/system/edit_collaborative_draft_spec.rb b/decidim-proposals/spec/system/edit_collaborative_draft_spec.rb
index 04cf4ed7d6cd8..1fa921f5e4ab3 100644
--- a/decidim-proposals/spec/system/edit_collaborative_draft_spec.rb
+++ b/decidim-proposals/spec/system/edit_collaborative_draft_spec.rb
@@ -60,7 +60,7 @@
find("#dropdown-trigger-resource-#{collaborative_draft.id}").click
click_on "Edit"
- dynamically_attach_file(:collaborative_draft_documents, Decidim::Dev.asset("city.jpeg"))
+ dynamically_attach_file(:collaborative_draft_attachments, Decidim::Dev.asset("city.jpeg"))
within "form.edit_collaborative_draft" do
find("*[type=submit]").click
diff --git a/decidim-proposals/spec/system/edit_proposal_spec.rb b/decidim-proposals/spec/system/edit_proposal_spec.rb
index 1c8f9805f00fd..bad51c52dd4c3 100644
--- a/decidim-proposals/spec/system/edit_proposal_spec.rb
+++ b/decidim-proposals/spec/system/edit_proposal_spec.rb
@@ -81,7 +81,7 @@
it "shows validation error when format is not accepted" do
find("#dropdown-trigger-resource-#{proposal.id}").click
click_on "Edit"
- dynamically_attach_file(:proposal_documents, Decidim::Dev.asset("dummy-dummies-example.xlsx"), keep_modal_open: true) do
+ dynamically_attach_file(:proposal_attachments, Decidim::Dev.asset("dummy-dummies-example.xlsx"), keep_modal_open: true) do
expect(page).to have_content("Accepted formats: #{Decidim::OrganizationSettings.for(organization).upload_allowed_file_extensions_image.join(", ")}")
end
expect(page).to have_content("Validation error!")
@@ -195,18 +195,18 @@
find("#dropdown-trigger-resource-#{proposal.id}").click
click_on "Edit proposal"
- dynamically_attach_file(:proposal_documents, Decidim::Dev.asset("city.jpeg"))
- dynamically_attach_file(:proposal_documents, Decidim::Dev.asset("icon.png"))
- dynamically_attach_file(:proposal_documents, Decidim::Dev.asset("avatar.jpg"))
+ dynamically_attach_file(:proposal_attachments, Decidim::Dev.asset("city.jpeg"))
+ dynamically_attach_file(:proposal_attachments, Decidim::Dev.asset("icon.png"))
+ dynamically_attach_file(:proposal_attachments, Decidim::Dev.asset("avatar.jpg"))
click_on "Send"
click_on "Edit proposal"
expect(page).to have_content("city.jpeg")
expect(page).to have_content("icon.png")
expect(page).to have_content("avatar.jpg")
- dynamically_attach_file(:proposal_documents, Decidim::Dev.asset("city2.jpeg"))
+ dynamically_attach_file(:proposal_attachments, Decidim::Dev.asset("city2.jpeg"))
expect(page).to have_content("city2.jpeg")
expect(page).to have_no_content("city3.jpeg")
- dynamically_attach_file(:proposal_documents, Decidim::Dev.asset("city3.jpeg"))
+ dynamically_attach_file(:proposal_attachments, Decidim::Dev.asset("city3.jpeg"))
expect(page).to have_content("city2.jpeg")
expect(page).to have_content("city3.jpeg")
click_on "Send"
@@ -409,4 +409,61 @@
expect(page).to have_content("not authorized")
end
end
+
+ context "when the proposal has an attachment" do
+ let(:component) { create(:proposal_component, :with_attachments_allowed, participatory_space: participatory_process) }
+ let!(:proposal) { create(:proposal, users: [user], component:) }
+ let!(:document) { create(:attachment, :with_pdf, attached_to: proposal) }
+ let(:document_filename) { document.file.blob.filename.to_s }
+
+ before do
+ login_as user, scope: :user
+ visit_component
+ click_on proposal_title
+ find("#dropdown-trigger-resource-#{proposal.id}").click
+ click_on "Edit"
+ expect(page).to have_text "Edit proposal"
+ end
+
+ it "can remove an attachment" do
+ click_on("Edit attachments")
+ within ".upload-modal" do
+ within "li[data-filename='#{document.file.blob.filename}']" do
+ click_on("Remove")
+ end
+ click_on "Save"
+ end
+ click_on("Send")
+ expect(page).to have_text("Proposal successfully updated.")
+ expect(page).to have_no_text("Documents")
+ end
+
+ it "can attach a file" do
+ page.execute_script("document.getElementById('proposal_attachments_button').click()")
+ within ".upload-modal" do
+ within "li[data-filename='#{document.file.blob.filename}']" do
+ click_on("Remove")
+ end
+ find("input[type='file']", visible: :all).attach_file(Decidim::Dev.asset("Exampledocument.pdf"))
+ within "li[data-filename='Exampledocument.pdf']:not([data-attachment-id])" do
+ expect(page).to have_css("progress[value='100']")
+ end
+ expect(page).to have_css("button[data-dropzone-save]:not([disabled])")
+ click_on "Save"
+ end
+ click_on("Send")
+ expect(page).to have_text("Proposal successfully updated.")
+ expect(page).to have_text("Exampledocument.pdf")
+ end
+
+ it "can edit a proposal with attachments" do
+ expect(page.html).to include(document_filename)
+ within "form.edit_proposal" do
+ fill_in :proposal_title, with: "Updated proposal title with attachments"
+ click_on "Send"
+ end
+ expect(page).to have_text("Proposal successfully updated.")
+ expect(page).to have_text("Updated proposal title with attachments")
+ end
+ end
end
diff --git a/decidim-proposals/spec/system/private_space_proposal_spec.rb b/decidim-proposals/spec/system/private_space_proposal_spec.rb
index 7391c759fc311..fd46e50dcf45e 100644
--- a/decidim-proposals/spec/system/private_space_proposal_spec.rb
+++ b/decidim-proposals/spec/system/private_space_proposal_spec.rb
@@ -33,28 +33,6 @@ def visit_component
expect(page).to have_no_link("New proposal")
end
end
-
- context "when the component has votes enabled and the proposal has votes" do
- let!(:proposal) { create(:proposal, :official, :with_votes, component:) }
-
- before do
- component.default_step_settings = component.default_step_settings.to_h.merge({ votes_enabled: true })
- component.save!
- end
-
- context "when accessing the proposal page" do
- let(:target_path) { Decidim::ResourceLocatorPresenter.new(proposal).path }
-
- before do
- visit target_path
- end
-
- it "can access the page but cannot see the votes" do
- expect(page).to have_content(proposal.title["en"])
- expect(page).to have_no_content("Votes")
- end
- end
- end
end
context "when the user is logged in" do
diff --git a/decidim-proposals/spec/system/proposals_fields_spec.rb b/decidim-proposals/spec/system/proposals_fields_spec.rb
index fd00c94b32ce8..752a929a48590 100644
--- a/decidim-proposals/spec/system/proposals_fields_spec.rb
+++ b/decidim-proposals/spec/system/proposals_fields_spec.rb
@@ -223,7 +223,7 @@
fill_in :proposal_body, with: "This is my proposal and I want to upload attachments."
end
- dynamically_attach_file(:proposal_documents, Decidim::Dev.asset("city.jpeg"))
+ dynamically_attach_file(:proposal_attachments, Decidim::Dev.asset("city.jpeg"))
within ".edit_proposal" do
find("*[type=submit]").click
@@ -253,12 +253,12 @@
skip "REDESIGN_PENDING - Flaky test: upload modal fails on GitHub with multiple files https://github.com/decidim/decidim/issues/10961"
# Attach one card image and two document images and go to preview
- dynamically_attach_file(:proposal_documents, Decidim::Dev.asset("city.jpeg"))
+ dynamically_attach_file(:proposal_attachments, Decidim::Dev.asset("city.jpeg"))
expect(page).to have_content("city.jpeg")
- dynamically_attach_file(:proposal_documents, Decidim::Dev.asset("city2.jpeg"))
+ dynamically_attach_file(:proposal_attachments, Decidim::Dev.asset("city2.jpeg"))
expect(page).to have_content("city.jpeg")
expect(page).to have_content("city2.jpeg")
- dynamically_attach_file(:proposal_documents, Decidim::Dev.asset("city3.jpeg"))
+ dynamically_attach_file(:proposal_attachments, Decidim::Dev.asset("city3.jpeg"))
expect(page).to have_content("city.jpeg")
expect(page).to have_content("city2.jpeg")
expect(page).to have_content("city3.jpeg")
diff --git a/decidim-proposals/spec/system/transparent_space_proposal_spec.rb b/decidim-proposals/spec/system/transparent_space_proposal_spec.rb
new file mode 100644
index 0000000000000..2b8de3562826d
--- /dev/null
+++ b/decidim-proposals/spec/system/transparent_space_proposal_spec.rb
@@ -0,0 +1,94 @@
+# frozen_string_literal: true
+
+require "spec_helper"
+
+describe "Transparent Space Proposal" do
+ let!(:organization) { create(:organization) }
+ let(:user) { create(:user, :confirmed, organization:) }
+ let!(:other_user) { create(:user, :confirmed, organization:) }
+ let!(:member) { create(:assembly_private_user, user: other_user, privatable_to: participatory_space) }
+
+ let!(:participatory_space) { create(:assembly, :published, :private, :transparent, organization:) }
+ let!(:component) { create(:proposal_component, participatory_space:) }
+
+ before do
+ switch_to_host(organization.host)
+ component.update!(default_step_settings: { creation_enabled: true })
+ end
+
+ def visit_component
+ page.visit main_component_path(component)
+ end
+
+ context "when the user is not logged in" do
+ it "allows creating a proposal" do
+ visit_component
+
+ within "aside" do
+ expect(page).to have_no_link("New proposal")
+ end
+ end
+
+ context "when the component has votes enabled and the proposal has votes" do
+ let!(:proposal) { create(:proposal, :official, :with_votes, component:) }
+
+ before do
+ component.default_step_settings = component.default_step_settings.to_h.merge({ votes_enabled: true })
+ component.save!
+ end
+
+ context "when accessing the proposal page" do
+ let(:target_path) { Decidim::ResourceLocatorPresenter.new(proposal).path }
+
+ before do
+ visit target_path
+ end
+
+ it "can access the page and see the votes" do
+ expect(page).to have_content(proposal.title["en"])
+ expect(page).to have_content("Votes")
+ end
+ end
+
+ context "when accessing the proposal list page" do
+ before do
+ visit_component
+ end
+
+ it "can see the votes" do
+ expect(page).to have_content("Votes")
+ end
+ end
+ end
+ end
+
+ context "when the user is logged in" do
+ context "and is member space" do
+ before do
+ login_as other_user, scope: :user
+ end
+
+ it "allows creating a proposal" do
+ visit_component
+
+ within "aside" do
+ expect(page).to have_link("New proposal")
+ end
+ end
+ end
+
+ context "and is not member space" do
+ before do
+ login_as user, scope: :user
+ end
+
+ it "does not allow creating a proposal" do
+ visit_component
+
+ within "aside" do
+ expect(page).to have_no_link("New proposal")
+ end
+ end
+ end
+ end
+end
diff --git a/decidim-proposals/spec/types/integration_schema_spec.rb b/decidim-proposals/spec/types/integration_schema_spec.rb
index b8d078deb43c0..2a15f2b6fd0a9 100644
--- a/decidim-proposals/spec/types/integration_schema_spec.rb
+++ b/decidim-proposals/spec/types/integration_schema_spec.rb
@@ -224,7 +224,7 @@
]
},
"url" => Decidim::EngineRouter.main_proxy(current_component).root_url,
- "weight" => 0
+ "weight" => current_component.weight
}
end
diff --git a/decidim-sortitions/config/locales/eu.yml b/decidim-sortitions/config/locales/eu.yml
index 84de4e8833d10..ab2304c0e41fa 100644
--- a/decidim-sortitions/config/locales/eu.yml
+++ b/decidim-sortitions/config/locales/eu.yml
@@ -36,21 +36,21 @@ eu:
sortition_created:
email_intro: '"%{resource_title}" zozketa jarraitzen ari zaren "%{participatory_space_title}" espazioan gehitu da.'
email_outro: Jakinarazpen hau jaso duzu "%{participatory_space_title}" jarraitzen ari zarelako. Aurreko estekan sartu jarraitzeari uzteko.
- email_subject: Zozketa berria gehitu da %{participatory_space_title} espaziora
+ email_subject: Beste zozketa bat gehitu da %{participatory_space_title} espaziora
notification_title: %{resource_title} zozketa %{participatory_space_title} espaziora gehitu da
sortitions:
admin:
actions:
destroy: Zozketa bertan behera utzi
edit: Editatu
- new_sortition: Zozketa berria
+ new_sortition: Beste zozketa bat
show: Zozketaren xehetasunak
title: Ekintzak
- deprecation_warning_html: "⚠️ Deprezazioaren Oharra. Zozketen modulua ezabatuko da Decidim v0.32an. Mesedez, planifikatu eta pentsatu irtenbide alternatiboak parte-hartzailearentzat edo proposamenak hautatzeko."
+ deprecation_warning_html: "⚠️ Zaharkitze-oharra. Zozketen modulua Decidim v0.32 bertsioan kenduko da. Planifikatu horren arabera, eta kontuan hartu parte-hartzaileak edo proposamenak hautatzeko bestelako irtenbideak."
models:
sortition:
fields:
- created_at: Sortze data
+ created_at: Sortze-data
decidim_proposals_component: Proposamenen osagaia
dice: Dadoa
reference: Erreferentzia
@@ -80,7 +80,7 @@ eu:
index:
title: Zozketak
new:
- confirm: Botoia sakatzean plataformak egun eta ordua (segundu gutxi batzuk gora behera) eta dadoak botatzean ateratako zenbakia gorde egingo ditu ausazko hautaketa bat egiteko. Botoia sakatu ondoren ez dago atzera egiterik eta zozketaren emaitzak zein txantiloi honetan sartutako datuak argitaratuko dira eta ezin izango dira aldatu. Beraz, mesedez, arretaz jarraitu.
+ confirm: Hurrengo botoia sakatzean, plataformak data eta ordua erregistratuko ditu (segundoko zehaztasunez), eta informazio hori, dado-jaurtiketarekin batera, ausazko hautaketa bat sortzeko erabiliko da. Ekintza atzeraezina izango da; botoia sakatu ondoren, zozketa honen emaitza argitaratuko da, formulario honetan sartutako datuekin batera, eta ezin izango da aldatu. Mesedez, berrikusi edukia arretaz.
create: Sortu
title: Beste zozketa bat
show:
@@ -120,10 +120,10 @@ eu:
algorithm: Zozketaren algoritmoaren kodea
any_taxonomy: taxonomia guztietatik
cancelled: Zozketa beran behera utzita
- candidate_proposal_ids: Zozketako proposamenen hurrenkera eta IDak
+ candidate_proposal_ids: Zozketako proposamenen ordena eta IDak
candidate_proposals_info: 'Zozketa honako proposamenen artean egin zen (%{taxonomy_labels}), honako identifikazio-agiri hauekin (letra lodiz hautatutako proposamenak) '
dice_result: Dadoen emaitza
- introduction: 'Orrialde honek %{reference} zozketaren emaitzak ditu. Zozketa honen bidez, %{target_items} emaitza kopurua ausaz eta banaketa probabilistiko berdinarekin aukeratu dira proposamen multzotik. Orri honek, emaitzak ezezik, berme guztiak izateko behar den informazioa ere jaso du. Zozketa honen kalitateak bi gako ditu. Alde batetik, dadoa hainbat lekukoren aurrean bota dela. Bestetik, zozketaren une zehatzean sortu den algoritmoak eman duen ausazko hautaketa. Sailkapenerako hazi-denbora hain da zehatza (segunduak) gizakiak ezin baitu hori kontrolatu. Honi esker, bidezko emaitza bermatzen duen sarrera bikoitz "kontrolaezina" sortzen da. '
+ introduction: 'Orrialde honek %{reference} zozketaren emaitzak jasotzen ditu. Zozketa honen bidez, %{target_items} emaitza ausaz eta probabilitate-banaketa berdinarekin hautatu dira behean bistaratzen diren proposamenen multzotik. Emaitzekin batera, orri honetan bistaratzen den informazioak bermeak ahalik eta gehien handitzeko eta emaitzak erreproduzitzeko behar den informazio guztia eskaintzen du. Zozketa honen kalitatearen gakoa dado bat jaurtitzeak (lekukoek egiaztatuta) ematen duen ausazkotasun bikoitza eta zozketaren une zehatza dira; une horrek ausazko hautaketa sortzen duen algoritmo baterako sarrera ematen du. Zozketaren denbora-hazia hain zehatza da (segundotan), ezen gizakiek ezin baitute kontrolatu; horrela, emaitza bidezkoa bermatzeko "kontrolaezina" den sarrera bikoitza ematen da '
mathematical_result: Emaitza (Dadoa x Hazia)
proposals_selected_by_sortition: Zozketa bidez aukeratutako proposamenak
sortition_reproducibility_details: Zozketaren errepikagarritasuna
@@ -136,7 +136,7 @@ eu:
one: aukeratutako proposamena
other: aukeratutako proposamenak
sortition_author:
- deleted: Ezabatutako parte-hartailea
+ deleted: Parte-hartzailea ezabatua
sortition_cancel_author:
deleted: Ezabatutako parte-hartzailea
sortitions_count:
diff --git a/decidim-sortitions/config/locales/fr.yml b/decidim-sortitions/config/locales/fr.yml
index ac226ecca2dc0..5049199d24a17 100644
--- a/decidim-sortitions/config/locales/fr.yml
+++ b/decidim-sortitions/config/locales/fr.yml
@@ -27,6 +27,7 @@ fr:
clear_all: Effacer tout
comments_enabled: Commentaires activés
comments_max_length: Longueur max des commentaires (laisser 0 pour la valeur par défaut)
+ define_taxonomy_filters: Veuillez définir des filtres pour cet espace participatif avant d'utiliser ce paramètre.
no_taxonomy_filters_found: Aucun filtre de taxonomie trouvé.
taxonomy_filters: Sélectionner les filtres pour le composant
taxonomy_filters_add: Ajouter un filtre
diff --git a/decidim-sortitions/lib/decidim/sortitions/version.rb b/decidim-sortitions/lib/decidim/sortitions/version.rb
index 8a43b333ea8c8..1e4457e05db10 100644
--- a/decidim-sortitions/lib/decidim/sortitions/version.rb
+++ b/decidim-sortitions/lib/decidim/sortitions/version.rb
@@ -3,7 +3,7 @@
module Decidim
module Sortitions
def self.version
- "0.31.4"
+ "0.31.7"
end
end
end
diff --git a/decidim-sortitions/spec/types/integration_schema_spec.rb b/decidim-sortitions/spec/types/integration_schema_spec.rb
index 9806240409abf..da80d26d6ab66 100644
--- a/decidim-sortitions/spec/types/integration_schema_spec.rb
+++ b/decidim-sortitions/spec/types/integration_schema_spec.rb
@@ -96,7 +96,7 @@
]
},
"url" => Decidim::EngineRouter.main_proxy(current_component).root_url,
- "weight" => 0
+ "weight" => current_component.weight
}
end
diff --git a/decidim-surveys/app/controllers/decidim/surveys/surveys_controller.rb b/decidim-surveys/app/controllers/decidim/surveys/surveys_controller.rb
index 0b1a83ad175e6..cece5d6284ea9 100644
--- a/decidim-surveys/app/controllers/decidim/surveys/surveys_controller.rb
+++ b/decidim-surveys/app/controllers/decidim/surveys/surveys_controller.rb
@@ -30,7 +30,7 @@ def edit
end
def check_permissions
- render :no_permission unless action_authorized_to(:response, resource: survey).ok?
+ render :no_permission unless action_authorized_to(:respond, resource: survey).ok?
end
def questionnaire_for
diff --git a/decidim-surveys/app/helpers/decidim/surveys/publish_responses_helper.rb b/decidim-surveys/app/helpers/decidim/surveys/publish_responses_helper.rb
index 373eacb37e8d5..5a78040f2a8f6 100644
--- a/decidim-surveys/app/helpers/decidim/surveys/publish_responses_helper.rb
+++ b/decidim-surveys/app/helpers/decidim/surveys/publish_responses_helper.rb
@@ -80,7 +80,7 @@ def matrix_stack_chart_wrapper(question)
end
def options_column_chart_wrapper(question)
- tally = question.responses.map { |response| response.choices.map { |choice| translated_attribute(choice.response_option.body) } }.tally
+ tally = question.responses.flat_map { |response| response.choices.map { |choice| translated_attribute(choice.response_option.body) } }.tally
column_chart(tally, download: true)
end
diff --git a/decidim-surveys/app/helpers/decidim/surveys/survey_helper.rb b/decidim-surveys/app/helpers/decidim/surveys/survey_helper.rb
index ea2943718c498..88494775df336 100644
--- a/decidim-surveys/app/helpers/decidim/surveys/survey_helper.rb
+++ b/decidim-surveys/app/helpers/decidim/surveys/survey_helper.rb
@@ -24,7 +24,7 @@ def authorize_action_path(handler_name)
end
def authorizations
- @authorizations ||= action_authorized_to(:response, resource: questionnaire_for)
+ @authorizations ||= action_authorized_to(:respond, resource: questionnaire_for)
end
def filter_date_values
diff --git a/decidim-surveys/app/views/decidim/surveys/admin/responses/show.html.erb b/decidim-surveys/app/views/decidim/surveys/admin/responses/show.html.erb
index 8ae094744e3ac..6af4c5b036da3 100644
--- a/decidim-surveys/app/views/decidim/surveys/admin/responses/show.html.erb
+++ b/decidim-surveys/app/views/decidim/surveys/admin/responses/show.html.erb
@@ -3,10 +3,10 @@
"
- data-hide-password="<%= t "api_user.hide_secret", scope: "decidim.system.actions" %>"
- data-hidden-password="<%= t "api_user.hidden_secret", scope: "decidim.system.actions" %>"
- data-shown-password="<%= t "api_user.shown_secret", scope: "decidim.system.actions" %>">
+
"
+ data-hide-password="<%= t "api_user.hide_secret", scope: "decidim.system.actions" %>"
+ data-hidden-password="<%= t "api_user.hidden_secret", scope: "decidim.system.actions" %>"
+ data-shown-password="<%= t "api_user.shown_secret", scope: "decidim.system.actions" %>">
+ " value="<%= @secret_user[:secret] %>" class="w-full" autocomplete="off">
+
-
+
<%= icon "menu-line", class: "w-6 h-6 text-white fill-current" %>
diff --git a/decidim-system/config/locales/ca-IT.yml b/decidim-system/config/locales/ca-IT.yml
index 0b2729e523ad1..9c0cae5d987cc 100644
--- a/decidim-system/config/locales/ca-IT.yml
+++ b/decidim-system/config/locales/ca-IT.yml
@@ -3,7 +3,7 @@ ca-IT:
activemodel:
attributes:
oauth_application:
- name: Nom de l'aplicació OAuth
+ name: Nom de l'aplicació
organization_logo: Logo de l'organització (quadrat)
organization_name: Organització
organization_url: URL de l'organització
@@ -299,7 +299,7 @@ ca-IT:
organization_admin_email_hint: T'enviarem un correu electrònic a aquesta adreça perquè puguis confirmar-la i configurar la teva contrasenya.
reference_prefix_hint: El prefix de la referència s'utilitza per identificar de forma única els recursos del conjunt de l'organització.
secondary_hosts_hint: Introdueix cada un d'ells en una nova línia.
- short_name_hint: Nom curt que es farà servir per a l'Aplicació Web Progressiva (PWA). Ha de tenir un màxim de 12 caràcters.
+ short_name_hint: Nom curt que es farà servir per a l'Aplicació Web Progressiva. Ha de tenir un màxim de 12 caràcters.
title: Nova organització
omniauth_settings:
decidim:
diff --git a/decidim-system/config/locales/cs.yml b/decidim-system/config/locales/cs.yml
index 83cc81e5379ec..db8e601be503a 100644
--- a/decidim-system/config/locales/cs.yml
+++ b/decidim-system/config/locales/cs.yml
@@ -47,6 +47,7 @@ cs:
system:
actions:
api_user:
+ hidden_secret: Tajný klíč je skrytý
hide_secret: Skrýt tajný klíč
secret_can_not_be_shown: API secret může být zobrazeno nebo zkopírováno pouze po vytvoření
show_secret: Zobrazit tajný klíč
@@ -187,6 +188,7 @@ cs:
explanation: Aplikace, které nemohou používat registrované zákaznické tajemství, jako jsou aplikace běžící v prohlížeči nebo na mobilním zařízení.
name: Veřejné
application_type_help_html: 'Typ OAuth klienta definovaný RFC 6749 Oddíl 2.1. Veřejní klienti musí realizovat tok PKCE definovaný RFC 7636. '
+ refresh_tokens_help_html: 'Aktualizovat tokeny je užitečné v případě, že token potřebuje delší životnost, než je přiděleno pro přístupový token. Všimněte si, že obnovovací tokeny by měly být používány pečlivě, protože mohou oslabit bezpečnost vašich uživatelů. '
select_organization: Vybrat organizaci
index:
confirm_delete: Jste si jisti, že chcete odstranit tuto žádost?
diff --git a/decidim-system/config/locales/de.yml b/decidim-system/config/locales/de.yml
index b971a4bcb6496..19752fe04db7a 100644
--- a/decidim-system/config/locales/de.yml
+++ b/decidim-system/config/locales/de.yml
@@ -9,6 +9,8 @@ de:
organization_url: URL der Organisation
redirect_uri: Weiterleitungs-URI
refresh_tokens: Token aktualisieren
+ refresh_tokens_enabled: Refresh-Tokens aktiviert
+ scopes: Verfügbare Scopes
organization:
address: SMTP Hostname
from_email: E-Mail-Adresse
@@ -35,14 +37,28 @@ de:
must_be_ssl: Der Umleitungs-URI muss ein SSL-URI sein
organization:
attributes:
+ host:
+ invalid: ist ungültig
password:
secret_key: Sie müssen die SECRET_KEY_BASE Umgebungsvariable definieren, um dieses Feld speichern zu können
+ secondary_hosts:
+ invalid: ist ungültig
decidim:
system:
actions:
+ api_user:
+ hidden_secret: Secret ist ausgeblendet
+ hide_secret: Secret ausblenden
+ secret_can_not_be_shown: das API-Secret kann nur unmittelbar nach der Erstellung angezeigt oder kopiert werden
+ show_secret: Secret anzeigen
+ shown_secret: Secret wird angezeigt
api_users:
create: Erstellen
+ new: Neues API-Konto
+ remove: Konto entfernen
confirm_destroy: Möchtest du das wirklich löschen?
+ confirm_refresh_api_secret: Sind Sie sicher, dass Sie das Secret für dieses API-Konto erneuern möchten? Nach der Erneuerung ist das alte Secret ungültig und kann nicht mehr verwendet werden.
+ confirm_remove_api_user: Sind Sie sicher, dass Sie dieses API-Konto entfernen möchten?
copied: Kopiert
copy_secret: Geheimnis kopieren
copy_secret_clarification: Geheimnis in die Zwischenablage kopieren
@@ -74,6 +90,22 @@ de:
api_user:
create:
error: API-Benutzer konnte nicht erstellt werden.
+ success: API-Konto erfolgreich erstellt. Das Secret ist nur unmittelbar nach der Erstellung sichtbar. Bitte kopieren Sie es und bewahren Sie es sicher auf, bevor Sie diese Seite verlassen!
+ destroy:
+ success: API-Konto erfolgreich gelöscht.
+ refresh:
+ error: Etwas ist schiefgelaufen! Bitte versuchen Sie es später erneut.
+ success: Secret erfolgreich erneuert. Das Secret ist nur unmittelbar nach der Erstellung sichtbar. Bitte kopieren Sie es und bewahren Sie es sicher auf, bevor Sie diese Seite verlassen!
+ api_users:
+ index:
+ explanation_html: |
+
Mit API-Konten können Integrationsentwickler:innen administrative Maschinenkonten zum System hinzufügen. Diese Maschinenkonten können auf der Plattform als Admin agieren, um Aktualisierungen vorzunehmen, die normale Admins sonst über den Administrationsbereich durchführen würden. Ein typischer Anwendungsfall ist eine externe Verwaltungsplattform, bei der ein automatisiertes Skript administrative Aufgaben auf der Plattform ausführt, ohne dass sich eine reale Person am System authentifizieren muss. Ein Automatisierungssystem möchte beispielsweise Antworten auf Vorschläge senden; in diesem Fall benötigen wir ein Integrationskonto, das diese Aufgabe innerhalb der Plattform übernimmt.
+
Der Hauptunterschied zwischen diesen Konten und normalen Admin-Konten besteht darin, dass diese Konten für die Nutzung durch Maschinen bestimmt sind und daher andere Anforderungen an das Passwort gelten. Diese Konten müssen ihr Passwort nicht regelmässig aktualisieren, und das Kontopasswort kann bei Bedarf kontrolliert geändert werden.
+
Diese Zugangsdaten sind für die Nutzung durch Maschinen bestimmt. Anwendungen mit direktem Kontakt zu Teilnehmenden sollten stattdessen über OAuth-Anwendungen eingebunden werden.
+ manage: API-Konten verwalten
+ new:
+ select_organization: Wählen Sie Ihre Organisation aus
+ title: Neues API-Konto erstellen
dashboard:
show:
admins: Admins
@@ -102,6 +134,7 @@ de:
sign_up: Konto erstellen
menu:
admins: Admins
+ api_credentials: API-Zugangsdaten
dashboard: Instrumententafel
oauth_applications: OAuth-Anwendungen
organizations: Organisationen
@@ -112,6 +145,15 @@ de:
email: Email
validations:
email_uniqueness: ein anderer Administrator mit der gleichen E-Mail existiert bereits
+ api_user:
+ fields:
+ created_at: Erstellt am
+ key: Schlüssel
+ name: Name
+ organization: Organisation
+ secret: Secret
+ validations:
+ name_uniqueness: Es existiert bereits ein API-Konto mit diesem Namen.
oauth_application:
fields:
created_at: Erstellt am
@@ -138,6 +180,26 @@ de:
save: Speichern
title: Anwendung bearbeiten
form:
+ application_type:
+ confidential:
+ explanation: Anwendungen, die sich sicher gegenüber dem Autorisierungsserver authentifizieren können, zum Beispiel indem sie ihr registriertes Client-Secret sicher aufbewahren können. Typischerweise eine Anwendung, die auf einem Server läuft, auf dem das Client-Secret gespeichert ist.
+ name: Vertraulich
+ public:
+ explanation: Anwendungen, die kein registriertes Client-Secret verwenden können, etwa Anwendungen, die in einem Browser oder auf einem Mobilgerät laufen.
+ name: Öffentlich
+ application_type_help_html: 'Der OAuth-Client-Typ gemäss RFC 6749, Abschnitt 2.1. Öffentliche Clients müssen den PKCE-Ablauf gemäss RFC 7636 implementieren. '
+ refresh_tokens_help_html: 'Refresh-Tokens sind nützlich, wenn ein Token eine längere Lebensdauer benötigt, als für das Access-Token vorgesehen ist. Beachten Sie, dass Refresh-Tokens mit Vorsicht verwendet werden sollten, da sie die Sicherheit Ihrer Nutzenden beeinträchtigen können. '
+ scopes_explanation:
+ "api:read": Ermöglicht es, über die GraphQL-API Abfragen (Query-Operationen) durchzuführen.
+ "api:write": Ermöglicht es, über die GraphQL-API Änderungsoperationen (Mutation-Operationen) durchzuführen.
+ profile: Gewährt Zugriff auf die eigenen Profildetails. Dieser Scope genügt, wenn die OAuth-Anwendung nur als Identitätsanbieter oder Authentifizierungsdienst genutzt wird.
+ user: Ermöglicht es, bei Aufrufen der GraphQL-API mit dem angegebenen Token als die angemeldete Person zu agieren. Dies ist für alle api:write-Operationen sowie für api:read-Operationen erforderlich, die Informationen über die aktuell angemeldete Person benötigen.
+ scopes_help_html: |
+ Die ausgewählten Scopes stehen den verbundenen Anwendungen zur Verfügung, um sie während des Autorisierungsprozesses anzufordern. Beim Anmelden über OAuth werden der jeweiligen Person Details zur Autorisierungsanfrage angezeigt.
+
+ Unterschiedliche Scopes bieten unterschiedliche Funktionen für die angemeldete Person über die gewährten Access-Tokens.
+
+ Hinweis: Wenn Sie Ihre Nutzenden nur gegenüber Ihren externen Anwendungen authentifizieren müssen, benötigen Sie lediglich den Scope profile. Anwendungen, die mit der Decidim-API interagieren, benötigen zusätzliche Scopes.
select_organization: Organisation wählen
index:
confirm_delete: Möchten Sie diese Anwendung wirklich löschen?
@@ -200,6 +262,7 @@ de:
confirm_resend_invitation: Sind Sie sicher, das Sie die Einladung erneut senden möchten?
resend_invitation: Einladung erneut senden
secondary_hosts_hint: Geben Sie jede von ihnen in einer neuen Zeile ein
+ short_name_hint: Kurzname für die Progressive Web App. Er darf maximal 12 Zeichen umfassen.
title: Organisation bearbeiten
file_upload_settings:
content_types:
@@ -219,6 +282,7 @@ de:
intro: |
Bitte seien Sie besonders vorsichtig, wenn Sie überlegen, diese Einstellungen zu ändern. Je weniger Sie erlauben, desto besser.
Wenn bestimmte Dateierweiterungen oder MIME-Typen zugelassen werden, können Benutzer Sicherheitsrisiken ausgesetzt werden und es kann auch die Zugänglichkeit der Website beeinträchtigen.
+ header_snippets_help_html: Verwenden Sie dieses Feld, um Inhalte im HTML-Head-Bereich zu ergänzen. Der häufigste Anwendungsfall ist die Einbindung von Drittanbieterdiensten, die zusätzliches JavaScript oder CSS benötigen. Sie können es auch verwenden, um zusätzliche Meta-Tags ins HTML einzufügen. Beachten Sie, dass dies nur auf öffentlichen Seiten dargestellt wird, nicht im Admin-Bereich. Wenn der Code mit externen APIs interagiert oder nicht den Sicherheitsrichtlinien der Anwendung entspricht, muss die Content Security Policy angepasst werden. Weitere Informationen finden Sie auf der Dokumentationsseite .
index:
title: Organisationen
new:
@@ -228,6 +292,7 @@ de:
organization_admin_email_hint: Wir senden Ihnen eine E-Mail an diese Adresse, die Sie bestätigen müssen um Ihr Passwort einrichten zu können.
reference_prefix_hint: Das Referenzpräfix wird zur eindeutigen Identifizierung von Ressourcen in allen Organisationen verwendet.
secondary_hosts_hint: Geben Sie jede von ihnen in einer neuen Zeile ein.
+ short_name_hint: Kurzname für die Progressive Web App. Er darf maximal 12 Zeichen umfassen.
title: Neue Organisation
omniauth_settings:
decidim:
diff --git a/decidim-system/config/locales/eu.yml b/decidim-system/config/locales/eu.yml
index 9272b687696e6..439d96fd94733 100644
--- a/decidim-system/config/locales/eu.yml
+++ b/decidim-system/config/locales/eu.yml
@@ -3,16 +3,16 @@ eu:
activemodel:
attributes:
oauth_application:
- name: OAuth Aplikazioaren izena
+ name: OAuth aplikazioaren izena
organization_logo: Antolatzailearen logoa (karratua)
organization_name: Antolatzailea
organization_url: Antolatzailearen URLa
- redirect_uri: Berbideratu URI
+ redirect_uri: Birbideratze-URIa
refresh_tokens: Freskatu fitxak
refresh_tokens_enabled: Freskatu fitxa eguneratuak
scopes: Esparru erabilgarriak
organization:
- address: SMTP host-aren izena
+ address: SMTP ostalariaren izena
from_email: Helbide elektronikoa
from_label: Etiketa
password: Pasahitza
@@ -27,14 +27,14 @@ eu:
default: Fitxategi-luzapenak, erantsita
image: Irudien artxibo-luzapenak
maximum_file_size:
- avatar: Abatar-fitxategiaren tamaina
+ avatar: Avatar-fitxategiaren tamaina
default: Fitxategi-tamaina, lehenetsita
errors:
models:
oauth_application:
attributes:
redirect_uri:
- must_be_ssl: Berbideratzeko URIa URI SSL izan behar da
+ must_be_ssl: Birbideratze-URIak SSL URI bat izan behar du
organization:
attributes:
host:
@@ -49,12 +49,12 @@ eu:
api_user:
hidden_secret: Sekretua ezkutuan dago
hide_secret: Ezkutatu sekretua
- secret_can_not_be_shown: API sekretua sortu ondoren soilik ikus edo kopiatu daiteke
+ secret_can_not_be_shown: API pasahitza sekretua sortu ondoren bakarrik ikusi edo kopiatu daiteke
show_secret: Erakutsi sekretua
shown_secret: Sekretua ikusgai dago
api_users:
create: Sortu
- new: APIren beste erabiltzaile bat
+ new: API erabiltzaile berria
remove: Kendu erabiltzailea
confirm_destroy: Ziur zaude hau ezabatu nahi duzula?
confirm_refresh_api_secret: Ziur zaude API erabiltzaile honen sekretua freskatu nahi duzula? Freskatu ondoren, sekretu zaharra ez da baliozkoa izango eta ezin izango da gehiago erabili.
@@ -89,7 +89,7 @@ eu:
success: Administratzailea zuzen eguneratua.
api_user:
create:
- error: APIren erabiltzaileen sorkuntzak porrot egin du.
+ error: Ezin izan da API erabiltzailea sortu.
success: API erabiltzailea zuzen sortu da. Erabiltzailearentzako sekretua sortu ondoren baino ez da ikusten. Mesedez, kopiatu eta gorde segurtasunez orri hau utzi aurretik!
destroy:
success: API erabiltzailea zuzen ezabatu da.
@@ -99,13 +99,13 @@ eu:
api_users:
index:
explanation_html: |
-
APIren erabiltzaileek integrazio-garatzaileei aukera ematen diete makina administratzaileen erabiltzaile-kontuak sistemara gehitzeko. Makina-erabiltzaile horiek administratzaile gisa jardun dezakete plataforman, administratzaile normalek administrazio-panelaren bidez egingo lituzketen eguneraketak egiteko. Ohiko erabilera-kasu bat kanpoko kudeaketa-plataforma bat da, non gidoi automatizatu batek plataformarekin administrazio-lanak egingo lituzkeen, benetako erabiltzaile batek sistemara autentifikatu beharrik izan gabe. Adibidez, automatizazio-sistema batek proposamenei erantzunak bidali nahiko lizkioke, eta, kasu horretan, integrazio-erabiltzaile bat beharko litzateke plataforma horren barruan lan hori egiteko.
-
Kontu horien eta administrari arrunten arteko desberdintasun nagusia da erabiltzaile horiek makinek erabili behar dituztela eta, beraz, pasahitzaren eskakizunak desberdinak direla. Erabiltzaile horiek ez dute beren pasahitza aldian-aldian eguneratu beharrik, eta kontuaren pasahitza aldatzea modu kudeatuan gerta daiteke behar denean.
-
Kredentzial horiek makinek erabili behar dituzte.
- manage: Kudeatu APIren erabiltzaileak
+
API erabiltzaileek integrazio-garatzaileei administraziorako makina-erabiltzaileen kontuak sistemara gehitzeko aukera ematen diete. Makina-erabiltzaile horiek plataforman administratzaile gisa jardun dezakete administratzaile arruntek administrazio-panelaren bidez egingo lituzketen eguneraketak egiteko. Ohiko erabilera-kasu bat kanpoko kudeaketa-plataforma bat da eta bertan script automatizatu batek plataformarekin administrazio-lanak egiten ditu benetako parte-hartzaile batek sisteman autentifikatu beharrik izan gabe. Adibidez, automatizazio-sistema batek proposamenei erantzunak bidali nahi badizkie integrazio-erabiltzaile bat behar dugu zeregin hori plataforma honetan egiteko.
+
Kontu hauen eta administratzaile arrunten arteko desberdintasun nagusia da erabiltzaile hauek makinek erabiltzeko direla eta horregatik pasahitzaren eskakizunak desberdinak direla. Erabiltzaile hauek ez dute pasahitza aldian-aldian eguneratu beharrik eta kontuaren pasahitza modu kudeatuan alda daiteke behar denean.
+
Kredentzial hauek makinek erabiltzeko dira. Parte-hartzaileei zuzendutako aplikazioak OAuth aplikazioekin integratu behar dira.
+ manage: Kudeatu API erabiltzaileak
new:
select_organization: Aukeratu zure erakundea
- title: Sortu APIren beste erabiltzaile bat
+ title: Sortu API erabiltzaile berria
dashboard:
show:
admins: Administratzaileak
@@ -113,7 +113,7 @@ eu:
system_checks: Sistemaren egiaztapenak
default_pages:
placeholders:
- content: Mesedez, gehitu eduki adierazgarria %{page} (a) ren orri estatikoaren administrazio-panelean.
+ content: Mesedez, gehitu eduki esanguratsua %{page} orri estatikoan administrazio-paneletik.
summary: Gehitu laburpen adierazgarri %{page} orri estatikoari administrazio-panelean.
title: 'Orri honetarako izenburu lehenetsia: %{page}'
terms-of-service: Zerbitzu-baldintzak
@@ -134,9 +134,9 @@ eu:
sign_up: Sortu kontu bat
menu:
admins: Administratzaileak
- api_credentials: APIren kredentzialak
+ api_credentials: API kredentzialak
dashboard: Kontrol-panela
- oauth_applications: OAuth Aplikazioak
+ oauth_applications: OAuth aplikazioak
organizations: Erakundeak
models:
admin:
@@ -157,17 +157,17 @@ eu:
oauth_application:
fields:
created_at: Sortze-data
- name: OAuth Aplikazioaren izena
+ name: OAuth aplikazioaren izena
organization_name: Antolatzailea
organization:
actions:
save_and_invite: Sortu antolatzailea eta gonbidatu administratzailea
fields:
content_security_policy: Edukien segurtasun-politika
- created_at: Tan sortua
+ created_at: Noiz sortua
file_upload_settings: Fitxategiak igotzearen doikuntzak
name: Izena
- omniauth_settings: Omniauth doikuntzak
+ omniauth_settings: Omniauth ezarpenak
smtp_settings: SMTP konfigurazioa
oauth_applications:
create:
@@ -182,24 +182,24 @@ eu:
form:
application_type:
confidential:
- explanation: Baimen-zerbitzariarekin modu seguruan autentifikatzeko gai diren aplikazioak, adibidez, erregistratutako bezero-sekretua salbu mantentzeko gai direnak. Normalean, bezeroaren sekretua gordetzen den zerbitzari batean exekutatzen den aplikazio bat da.
+ explanation: Baimen-zerbitzariarekin modu seguruan autentifikatzeko gai diren aplikazioak, adibidez, erregistratutako bezero-sekretua seguru gordetzeko gai direnak. Normalean, bezero-sekretua gordeta dagoen zerbitzari batean exekutatzen den aplikazio bat izaten da.
name: Konfidentziala
public:
explanation: Erregistratutako bezeroen sekretuak erabili ezin dituzten aplikazioak, hala nola nabigatzaile batean edo gailu mugikor batean exekutatzen diren aplikazioak.
name: Publikoa
- application_type_help_html: 'OAuth bezero-mota , RFC 6749, 2.1 sekzioakdefinitzen duen bezala. Bezero publikoek PKCE fluxua ezarri behar dute , RFC 7636arauak zehazten duen bezala '
+ application_type_help_html: 'OAuth bezero mota RFC 6749ren 2.1 atalak definitzen duen bezala. Bezero publikoek PKCE fluxua ezarri behar dute RFC 7636 arauak definitzen duen bezala. '
refresh_tokens_help_html: 'Freskatzeko fitxak erabilgarriak dira baldin eta fitxak sarbide-fitxari esleitutakoa baino bizialdi luzeagoa behar badu. Kontuan izan freskatzeko fitxak kontuz erabili behar direla zure erabiltzaileen segurtasuna ahuldu dezaketelako '
scopes_explanation:
"api:read": Parte-hartzaileari kontsultak egiteko aukera ematen dio API grafikoaren bidez.
- "api:write": Parte-harlzaileari mutazio-eragiketak egiteko aukera ematen dio API grafikoaren bidez.
- profile: Parte-hartzailearen profilaren datuak eskuratzeko aukera ematen du. Irismen hori soilik behar da OAuth aplikazioa identitate hornitzaile edo autentifikazio zerbitzu gisa bakarrik erabiltzen bada.
- user: 'Gaitasuna GrafoQL APIra egindako deietan parte-hartzailearen fitxarekin sinatuta bezala jarduteko. Hau beharrezkoa da api guztientzat: idatzi eragiketak edo api: irakurri egungo parte-hartzaileari buruzko informazioa behar duten eragiketak.'
+ "api:write": Parte-hartzaileari GraphQL APIaren bidez mutazio-eragiketak egiteko aukera ematen dio.
+ profile: Parte-hartzailearen profilaren xehetasunak eskuratzeko aukera ematen du. Irismen hau soilik behar da OAuth aplikazioa identitate-hornitzaile edo autentifikazio-zerbitzu gisa bakarrik erabiltzen bada.
+ user: Emandako tokenarekin saioa hasita duen parte-hartzaile gisa jarduteko aukera ematen du GraphQL APIrako deietan. Hau beharrezkoa da api:write eragiketa guztietarako edo uneko parte-hartzaileari buruzko informazioa behar duten api:read eragiketetarako.
scopes_help_html: |
- Hautatutako eskemak eskuragarri egongo dira konektatutako aplikazioek baimena eskatzeko prozesuan zehar. Baimen-eskaerari buruzko xehetasunak emango zaizkio parte-hartzalieari OAuth erabiliz sinatzen duenean.
+ Hautatutako eremuak konektatutako aplikazioek baimen-prozesuan eskatzeko erabilgarri egongo dira. Parte-hartzaileari baimen-eskaerari buruzko xehetasunak erakutsiko zaizkio OAuth erabiliz saioa hasten duenean.
- Esparru ezberdinek ezaugarri desberdinak ematen dizkiote baimendutako erabiltzaileari, emandako sarbide-fitxak erabiliz.
+ Eremu desberdinek funtzio desberdinak eskaintzen dizkiote autentifikatutako parte-hartzaileari, emandako sarbide-tokenak erabiliz.
- Oharra: Parte-hartzalieak kanpoko aplikazioetara autentifikatu behar badituzu, profilaren irismena besterik ez duzu behar. profila Decidim APIrekin interakzioan ari diren aplikazioek beste aplikazio batzuk ere behar dituzte.
+ Oharra: Zure kanpoko aplikazioetan parte-hartzaileak autentifikatu besterik ez baduzu behar, profile eremua baino ez duzu behar. Decidim APIarekin elkarreragiten duten aplikazioek beste eremu batzuk ere behar dituzte.
select_organization: Aukeratu antolatzaile bat
index:
confirm_delete: Ziur zaude aplikazio hau ezabatu nahi duzula?
@@ -219,53 +219,51 @@ eu:
error_invitation: Arazo bat sortu da erakunde berri bat sortzean. Berrikusi erakundearen administratzailearen izena.
success_html: |
- Arrakastaz sortutako erakundea.
+ Erakundea behar bezala sortu da.
-
Zure eskaera-kodea eguneratu beharko duzu; %{host} eskaerak baimentzeari dagokionez, honakoa gehitu behar duzu zure ingurunearen konfiguraziora (adib. config/environment/production.rb) or your config/application.rb:
-
config.hosts << "%{host}"
+
Baliteke aplikazioaren kodea eguneratu behar izatea, %{host} helbiderako eskaerak baimentzeko honako hau gehitu behar baituzu
+ ingurunearen konfigurazioan (h.d. config/environment/production.rb) edo config/application.rb fitxategian:
+
config.hosts << "%{host}"
- Hori amaitu ondoren, zure plataformara sartu ahal izango zara hemendik http://%{host}
-
+ Hori egin ondoren, zure plataformara sartu ahal izango zara http://%{host} helbidearen bidez
+
- E-mail bat bidali dugu hona %{email} eta baieztatu behar duzu.
-
+ Baieztatu behar duzun mezu elektroniko bat bidali dugu %{email} helbidera.
+
csp_settings:
connect_src: Connect src
connect_src_hint: |
- Connect-src zuzentarauak murriztu egiten ditu < script> elementuen bidez karga daitezkeen URLak.
- Plataformak 'self' gehituko du, baina gehiago gehitzeko aukera emango dizu.
- default_src: src lehenetsita
+ Connect-src zuzentarauak
<%= I18n.t("registration", scope: "decidim.conferences.conference.show") %>
-<%= t(".program") %> <%= t(".program") %> (<%= translated_attribute current_participatory_space.title %>) diff --git a/decidim-conferences/app/views/decidim/conferences/conference_speakers/index.html.erb b/decidim-conferences/app/views/decidim/conferences/conference_speakers/index.html.erb index 77c855563a3ae..bfb883f5dcb37 100644 --- a/decidim-conferences/app/views/decidim/conferences/conference_speakers/index.html.erb +++ b/decidim-conferences/app/views/decidim/conferences/conference_speakers/index.html.erb @@ -14,7 +14,7 @@ edit_link( %> <%# NOTE: this page does not use a regular layout %> -
+
diff --git a/decidim-conferences/app/views/decidim/conferences/conferences/show.html.erb b/decidim-conferences/app/views/decidim/conferences/conferences/show.html.erb index 9fb927673017c..983b5a27dcacc 100644 --- a/decidim-conferences/app/views/decidim/conferences/conferences/show.html.erb +++ b/decidim-conferences/app/views/decidim/conferences/conferences/show.html.erb @@ -20,7 +20,7 @@ edit_link( include the hero inside the two-column layout. Therefore is mandatory to pass the "main_enabled: false" flag to the layout_two_col for disabling the original main. %> -
+
<%= content_for :aside do %>
diff --git a/decidim-conferences/app/views/decidim/conferences/media/index.html.erb b/decidim-conferences/app/views/decidim/conferences/media/index.html.erb
index 6baad67eb1192..2ea7fb5b7260f 100644
--- a/decidim-conferences/app/views/decidim/conferences/media/index.html.erb
+++ b/decidim-conferences/app/views/decidim/conferences/media/index.html.erb
@@ -13,7 +13,7 @@ edit_link(
%>
<%# NOTE: this page does not use a regular layout %>
-
+
<% end %>
-<% form.fields_for :images, form.object.images do |images_fields| %>
+<% form.fields_for :images, content_block.images_container do |images_fields| %>
<%= images_fields.upload :background_image, label: t(".background_image"), button_class: "button button__sm button__transparent-secondary" %>
diff --git a/decidim-core/app/cells/decidim/content_blocks/highlighted_participatory_spaces_cell.rb b/decidim-core/app/cells/decidim/content_blocks/highlighted_participatory_spaces_cell.rb
index 5c91715fdb0c2..979ebb2408763 100644
--- a/decidim-core/app/cells/decidim/content_blocks/highlighted_participatory_spaces_cell.rb
+++ b/decidim-core/app/cells/decidim/content_blocks/highlighted_participatory_spaces_cell.rb
@@ -28,7 +28,7 @@ def max_results; end
private
def cache_hash
- [I18n.locale, highlighted_spaces.map(&:cache_key_with_version)].join(Decidim.cache_key_separator)
+ [I18n.locale, model.cache_key_with_version, highlighted_spaces.map(&:cache_key_with_version)].join(Decidim.cache_key_separator)
end
def section_class
diff --git a/decidim-core/app/cells/decidim/content_blocks/participatory_space_hero_settings_form/show.erb b/decidim-core/app/cells/decidim/content_blocks/participatory_space_hero_settings_form/show.erb
index 4463b6f8a74e0..c5b691886ac25 100644
--- a/decidim-core/app/cells/decidim/content_blocks/participatory_space_hero_settings_form/show.erb
+++ b/decidim-core/app/cells/decidim/content_blocks/participatory_space_hero_settings_form/show.erb
@@ -8,7 +8,7 @@
<%= t("media", scope: "layouts.decidim.conferences_nav") %> <%= t("media", scope: "layouts.decidim.conferences_nav") %> (<%= translated_attribute current_participatory_space.title %>) diff --git a/decidim-conferences/app/views/decidim/conferences/registration_types/index.html.erb b/decidim-conferences/app/views/decidim/conferences/registration_types/index.html.erb index f785a76fa3064..a66b12a1eb043 100644 --- a/decidim-conferences/app/views/decidim/conferences/registration_types/index.html.erb +++ b/decidim-conferences/app/views/decidim/conferences/registration_types/index.html.erb @@ -16,7 +16,7 @@ edit_link( <%= append_stylesheet_pack_tag "decidim_conferences" %> <%# NOTE: this page does not use a regular layout %> -
+
- <%= action_authorized_link_to :amend, new_amend_path, resource: model, data: { "redirect_url" => new_amend_path }, id: "amend-button", class: "dropdown__button" do %>
+
+ <%= action_authorized_link_to :amend, new_amend_path, resource: model, data: { "redirect_url" => new_amend_path }, id: "amend-button", class: "dropdown__button", role: "menuitem" do %>
<%= t("button", scope: "decidim.amendments.amendable", model_name: nil) %>
<%= icon "pencil-line" %>
<% end %>
diff --git a/decidim-core/app/cells/decidim/author_cell.rb b/decidim-core/app/cells/decidim/author_cell.rb
index 34e443143e24a..aaedb01ed691a 100644
--- a/decidim-core/app/cells/decidim/author_cell.rb
+++ b/decidim-core/app/cells/decidim/author_cell.rb
@@ -31,10 +31,6 @@ def flag_user
render unless current_user == model
end
- def perform_caching?
- true
- end
-
def raw_model
model.try(:__getobj__) || model
end
diff --git a/decidim-core/app/cells/decidim/card_metadata_cell.rb b/decidim-core/app/cells/decidim/card_metadata_cell.rb
index e8bf4102480f6..322b31b19a0b0 100644
--- a/decidim-core/app/cells/decidim/card_metadata_cell.rb
+++ b/decidim-core/app/cells/decidim/card_metadata_cell.rb
@@ -29,7 +29,7 @@ def space_item
return unless show_space?
{
- text: decidim_escape_translated(participatory_space.title),
+ text: translated_attribute(participatory_space.title),
icon: resource_type_icon_key(participatory_space.class),
url: Decidim::ResourceLocatorPresenter.new(participatory_space).path
}
diff --git a/decidim-core/app/cells/decidim/comments_button_cell.rb b/decidim-core/app/cells/decidim/comments_button_cell.rb
index c9196d38fcdab..f09bbb7f48b73 100644
--- a/decidim-core/app/cells/decidim/comments_button_cell.rb
+++ b/decidim-core/app/cells/decidim/comments_button_cell.rb
@@ -23,7 +23,9 @@ def comments_enabled?
end
def path
- "#add-comment-anchor"
+ return "#add-comment-anchor" if current_user
+
+ nil
end
def text
@@ -37,5 +39,11 @@ def icon_name
def button_classes
"button button__sm button__transparent-secondary add-comment-mobile"
end
+
+ def html_options
+ return {} if current_user
+
+ { data: { "dialog-open": "loginModal" } }
+ end
end
end
diff --git a/decidim-core/app/cells/decidim/content_blocks/cta_settings_form/show.erb b/decidim-core/app/cells/decidim/content_blocks/cta_settings_form/show.erb
index ee2e372caf992..2878acaffce11 100644
--- a/decidim-core/app/cells/decidim/content_blocks/cta_settings_form/show.erb
+++ b/decidim-core/app/cells/decidim/content_blocks/cta_settings_form/show.erb
@@ -4,6 +4,6 @@
<%= settings_fields.translated :text_field, :description, label: t("decidim.content_blocks.cta_settings_form.description") %>
<% end %>
-<% form.fields_for :images, form.object.images do |images_fields| %>
+<% form.fields_for :images, content_block.images_container do |images_fields| %>
<%= images_fields.upload :background_image, label: t("decidim.content_blocks.cta_settings_form.background_image") %>
<% end %>
diff --git a/decidim-core/app/cells/decidim/content_blocks/hero_settings_form/show.erb b/decidim-core/app/cells/decidim/content_blocks/hero_settings_form/show.erb
index fd40f5b447a8a..5e94a7ecd61c1 100644
--- a/decidim-core/app/cells/decidim/content_blocks/hero_settings_form/show.erb
+++ b/decidim-core/app/cells/decidim/content_blocks/hero_settings_form/show.erb
@@ -5,7 +5,7 @@
<%= settings_fields.translated :text_field, :cta_button_path, label: t(".cta_button_path") %>
-
@@ -14,7 +14,7 @@
<% end %>
-<% form.fields_for :images, form.object.images do |images_fields| %>
+<% form.fields_for :images, content_block.images_container do |images_fields| %>
<%= images_fields.upload :background_image, label: t(".background_image"), button_class: "button button__sm button__transparent-secondary" %>
diff --git a/decidim-core/app/cells/decidim/content_blocks/highlighted_content_banner_cell.rb b/decidim-core/app/cells/decidim/content_blocks/highlighted_content_banner_cell.rb
index 5c883bd8289d1..a09cf0af691cb 100644
--- a/decidim-core/app/cells/decidim/content_blocks/highlighted_content_banner_cell.rb
+++ b/decidim-core/app/cells/decidim/content_blocks/highlighted_content_banner_cell.rb
@@ -32,7 +32,7 @@ def background_image
private
def render?
- required_keys = [:title, :short_description, :action_button_title, :action_button_subtitle, :action_button_url]
+ required_keys = [:title, :action_button_title, :action_button_subtitle, :action_button_url]
required_keys.all? { |key| model.settings.public_send(key).present? }
end
end
diff --git a/decidim-core/app/cells/decidim/content_blocks/highlighted_content_banner_settings_form/show.erb b/decidim-core/app/cells/decidim/content_blocks/highlighted_content_banner_settings_form/show.erb
index 19c789a0f2f54..1d941e28d61a4 100644
--- a/decidim-core/app/cells/decidim/content_blocks/highlighted_content_banner_settings_form/show.erb
+++ b/decidim-core/app/cells/decidim/content_blocks/highlighted_content_banner_settings_form/show.erb
@@ -20,7 +20,7 @@
diff --git a/decidim-conferences/config/locales/de.yml b/decidim-conferences/config/locales/de.yml index 16ddc5ef4529c..6aff2efd72738 100644 --- a/decidim-conferences/config/locales/de.yml +++ b/decidim-conferences/config/locales/de.yml @@ -3,7 +3,7 @@ de: activemodel: attributes: conference: - assemblies_ids: Ähnliche Gremien + assemblies_ids: Ähnliche Versammlungen available_slots: Verfügbare Plätze banner_image: Banner-Bild decidim_scope_id: Umfang @@ -303,6 +303,7 @@ de: destroy: success: Der Registrierungstyp wurde erfolgreich von dieser Konferenz entfernt. edit: + title: Anmeldeart aktualisieren update: Aktualisieren new: create: Erstellen @@ -552,7 +553,7 @@ de: details: Einzelheiten introduction: Einführung objectives: Ziele - related_assemblies: Ähnliche Gremien + related_assemblies: Ähnliche Versammlungen related_participatory_processes: Ähnliche Beteiligungsprozesse download_your_data: help: diff --git a/decidim-conferences/config/locales/eu.yml b/decidim-conferences/config/locales/eu.yml index 15d9278f78ef5..cb58d2d039637 100644 --- a/decidim-conferences/config/locales/eu.yml +++ b/decidim-conferences/config/locales/eu.yml @@ -233,7 +233,7 @@ eu: actions: Ekintzak affiliation: Afiliazioa full_name: Izen osoa - position: Ardura + position: Kokapena name: Hizlaria conference_user_role: fields: @@ -427,7 +427,7 @@ eu: title: Izen-emate motak send_conference_diploma_mailer: diploma: - diploma_html: < a href = " %{url}" >%{title} jardunaldira joan izanaren ziurtagiria aurkituko duzu eranskinetan. + diploma_html: %{title} jardunaldian parte hartu izanaren ziurtagiria eranskinetan aurkituko duzu. diploma_user: attendance_verified_by: Bertaratzea nork egiaztatua certificate_of_attendance: Parte-hartze ziurtagiria @@ -597,8 +597,8 @@ eu: notification_title: %{resource_title} jardunaldiak erregistroak gaitu ditu. role_assigned: email_intro: '%{role} rola esleitu zaizu jardunaldian.' - email_outro: Jakinarazpen hau jaso duzu %{role} rola esleitu dizutelako "%{resource_title}" hitzaldian. - email_subject: '%{role} rola esleitu zaizu batzarrean.' + email_outro: Jakinarazpen hau jaso duzu %{role} rola esleitu dizutelako "%{resource_title}" jardunaldian. + email_subject: '%{role} rola esleitu zaizu "%{resource_title}" baliabiderako.' notification_title: '%{role} rola esleitu zaizu %{resource_title} batzarrean.' upcoming_conference: email_intro: '"%{resource_title}" jardunaldia egiten ari da 2 egunetan. Deskribapena bere orrialdetik irakur dezakezu:' @@ -608,8 +608,8 @@ eu: help: participatory_spaces: conferences: - contextual: "Programa batean antolatutako bileren bilduma bat da. Bertan, hizlari gisa gonbidatutako pertsonak daude, baita jardunaldi handietako edo gizarte-ekitaldietako ohiko informazio-eremuak ere (erregistroa, ekitaldia babesten edo laguntzen duten erakundeen zerrenda, etab.).
Adibideak: Jardunaldi bat garrantzitsua izan daiteke erakunde batentzat eta haren kideentzat, edo parte hartzeko prozesu baten zati gisa edo kontsulta baten ondoren egin daiteke.
\n" - page: "Programa batean antolatutako bileren bilduma bat da. Bertan, hizlari gisa gonbidatutako pertsonak daude, baita jardunaldi handietako edo gizarte-ekitaldietako ohiko informazio-eremuak ere (erregistroa, ekitaldia babesten edo laguntzen duten erakundeen zerrenda, etab.).Adibideak: Jardunaldi bat garrantzitsua izan daiteke erakunde batentzat eta haren kideentzat, edo parte hartzeko prozesu baten zati gisa edo kontsulta baten ondoren egin daiteke.
\n" + contextual: "Jardunaldi bat programa batean antolatutako topaketen multzoa da; hainbat pertsona hizlari gisa gonbidatzen dira, eta kongresu handietan edo gizarte-ekitaldietan ohikoak diren beste informazio-eremu batzuk ere biltzen ditu (izen-ematea, ekitaldia babesten edo finantzatzen duten erakundeen zerrenda, etab.).
Adibideak: jardunaldi bat erakunde batentzat eta haren kideentzat ekitaldi esanguratsua izan daiteke; partaidetza-prozesu baten barruan egin daiteke, edo kontsulta baten ondoren.
\n" + page: "Jardunaldi bat programa batean antolatutako topaketen multzoa da; hainbat pertsona hizlari gisa gonbidatzen dira, eta kongresu handietan edo gizarte-ekitaldietan ohikoak diren beste informazio-eremu batzuk ere biltzen ditu (izen-ematea, ekitaldia babesten edo finantzatzen duten erakundeen zerrenda, etab.).
Adibideak: jardunaldi bat erakunde batentzat eta haren kideentzat ekitaldi garrantzitsua izan daiteke; partaidetza-prozesu baten barruan egin daiteke, edo kontsulta baten ondoren.
\n" title: Zer dira jardunaldiak? log: value_types: @@ -667,7 +667,7 @@ eu: promoted_conferences: Sustatutako jardunaldiak order_by_conferences: conferences: - one: "Jardunaldi %{count}" + one: "%{count} jardunaldi" other: "%{count} jardunaldi" conferences_nav: conference_partners_menu_item: Kideak diff --git a/decidim-conferences/config/locales/fr-CA.yml b/decidim-conferences/config/locales/fr-CA.yml index b91de1e2889ec..9c5ecd91f0a1b 100644 --- a/decidim-conferences/config/locales/fr-CA.yml +++ b/decidim-conferences/config/locales/fr-CA.yml @@ -121,8 +121,11 @@ fr-CA: success: Conférencier supprimé avec succès pour cette conférence. edit: update: Mettre à jour + index: + conference_speakers_title: Conférenciers new: create: Créer + title: Nouveau conférencier publish: invalid: Il y a eu un problème lors de la publication de cet intervenant. success: L'intervenant de la conférence a été publié avec succès. diff --git a/decidim-conferences/config/locales/sk.yml b/decidim-conferences/config/locales/sk.yml index 781e01a77a6b2..6860cb3b1e98d 100644 --- a/decidim-conferences/config/locales/sk.yml +++ b/decidim-conferences/config/locales/sk.yml @@ -501,7 +501,7 @@ sk: show: already_have_an_account?: Už máte účet? are_you_new?: Nový účastník? - login_as: Ste prihlásení ako %{name} %{email} + login_as: Ste prihlásení ako %{name} %{email} make_conference_registration: Zaregistrovať sa na konferenciu manage_registration: Spravovať registráciu register: Registrovať @@ -591,10 +591,10 @@ sk: conference_registration_validation_pending: notification_title: Vaša registrácia na konferencii %{resource_title} čaká na potvrdenie. conference_registrations_over_percentage: - email_intro: Konferencia "%{resource_title}" je obsadená na viac, než%{percentage} %. + email_intro: Konferencia "%{resource_title}" je obsadená na viac, než%{percentage} %. email_outro: Túto notifikáciu ste dostali, pretože ste administrátorom participatívneho priestoru konferencie. - email_subject: Konferencia "%{resource_title}" je obsadená na viac, než%{percentage} %. - notification_title: Konferencia %{resource_title} je obsadená na viac, než %{percentage} %. + email_subject: Konferencia "%{resource_title}" je obsadená na viac, než%{percentage} %. + notification_title: Konferencia %{resource_title} je obsadená na viac, než %{percentage} %. conference_updated: email_intro: 'Konferencia "%{resource_title}" bola aktualizovaná. Novú verziu si môžete pozrieť na jej stránke:' email_outro: Túto notifikáciu ste dostali, pretože sledujete konferenciu "%{resource_title}". Notifikácie môžete zrušiť po kliknutí na predchádzajúci odkaz. diff --git a/decidim-conferences/lib/decidim/conferences/test/factories.rb b/decidim-conferences/lib/decidim/conferences/test/factories.rb index db7213137a588..3277d06e34fe6 100644 --- a/decidim-conferences/lib/decidim/conferences/test/factories.rb +++ b/decidim-conferences/lib/decidim/conferences/test/factories.rb @@ -44,6 +44,10 @@ published_at { Time.current } end + trait :trashed do + deleted_at { Time.current } + end + trait :diploma do main_logo { Decidim::Dev.test_file("avatar.jpg", "image/jpeg") } signature { Decidim::Dev.test_file("avatar.jpg", "image/jpeg") } diff --git a/decidim-conferences/lib/decidim/conferences/version.rb b/decidim-conferences/lib/decidim/conferences/version.rb index 0757dec2c9c0a..9069854c9a332 100644 --- a/decidim-conferences/lib/decidim/conferences/version.rb +++ b/decidim-conferences/lib/decidim/conferences/version.rb @@ -4,7 +4,7 @@ module Decidim # This holds the decidim-conferences version. module Conferences def self.version - "0.31.4" + "0.31.7" end end end diff --git a/decidim-conferences/spec/commands/create_conference_spec.rb b/decidim-conferences/spec/commands/create_conference_spec.rb index cc6e1979e2b12..fdb67137d1f98 100644 --- a/decidim-conferences/spec/commands/create_conference_spec.rb +++ b/decidim-conferences/spec/commands/create_conference_spec.rb @@ -31,11 +31,8 @@ module Decidim::Conferences let(:related_processes_ids) { [participatory_processes.map(&:id)] } let(:related_assemblies_ids) { [assemblies.map(&:id)] } - let(:form) do - instance_double( - Admin::ConferenceForm, - current_user:, - invalid?: invalid, + let(:attributes) do + { title: { en: "title" }, slogan: { en: "slogan" }, weight: 1, @@ -46,8 +43,6 @@ module Decidim::Conferences promoted: nil, description: { en: "description" }, short_description: { en: "short_description" }, - current_organization: organization, - organization:, taxonomizations:, errors:, show_statistics: false, @@ -59,6 +54,17 @@ module Decidim::Conferences registration_terms: { en: "registrations terms" }, participatory_processes_ids: related_processes_ids, assemblies_ids: related_assemblies_ids + } + end + + let(:form) do + instance_double( + Admin::ConferenceForm, + **attributes, + current_user:, + organization:, + current_organization: organization, + invalid?: invalid ) end let(:invalid) { false } @@ -71,6 +77,23 @@ module Decidim::Conferences end end + context "when there is a trashed space with the same slug" do + let!(:trashed_space) { create(:conference, :trashed, slug: "slug", organization:) } + + let(:form) do + Admin::ConferenceForm.from_params(attributes) + .with_context({ + current_user:, + current_organization: organization + }) + end + + it "broadcasts invalid" do + expect { subject.call }.to broadcast(:invalid) + expect(form.errors[:slug]).not_to be_empty + end + end + context "when the conference is not persisted" do let(:hero_image) do ActiveStorage::Blob.create_and_upload!( diff --git a/decidim-conferences/spec/commands/duplicate_conference_spec.rb b/decidim-conferences/spec/commands/duplicate_conference_spec.rb index 940c0c2afeb78..1c922a1b341e7 100644 --- a/decidim-conferences/spec/commands/duplicate_conference_spec.rb +++ b/decidim-conferences/spec/commands/duplicate_conference_spec.rb @@ -34,6 +34,27 @@ module Decidim::Conferences end end + context "when there is a trashed space with the same slug" do + let!(:trashed_space) { create(:conference, :trashed, slug: "duplicated-slug", organization:) } + + let(:form) do + Admin::ConferenceDuplicateForm.from_params({ + title: { en: "title" }, + slug: "duplicated-slug", + duplicate_components: duplicate_components + }) + .with_context({ + current_user:, + current_organization: organization + }) + end + + it "broadcasts invalid" do + expect { subject.call }.to broadcast(:invalid) + expect(form.errors[:slug]).not_to be_empty + end + end + context "when everything is ok" do it "duplicates a conference" do expect { subject.call }.to change(Decidim::Conference, :count).by(1) diff --git a/decidim-conferences/spec/commands/update_conference_spec.rb b/decidim-conferences/spec/commands/update_conference_spec.rb index 851749725adef..d98217bbb99b1 100644 --- a/decidim-conferences/spec/commands/update_conference_spec.rb +++ b/decidim-conferences/spec/commands/update_conference_spec.rb @@ -95,6 +95,19 @@ module Decidim::Conferences end end + context "when there is a trashed space with the same slug" do + let!(:trashed_space) { create(:conference, :trashed, slug: "slug", organization:) } + + let(:form) do + Admin::ConferenceForm.from_params(params.deep_merge(conference: { slug: "slug" })).with_context(context) + end + + it "broadcasts invalid" do + expect { command.call }.to broadcast(:invalid) + expect(form.errors[:slug]).not_to be_empty + end + end + describe "when the conference is not valid" do before do allow(form).to receive(:invalid?).and_return(false) diff --git a/decidim-conferences/spec/controllers/admin/imports_controller_spec.rb b/decidim-conferences/spec/controllers/admin/imports_controller_spec.rb index 2ec0c6a719fcd..f9aba84439f69 100644 --- a/decidim-conferences/spec/controllers/admin/imports_controller_spec.rb +++ b/decidim-conferences/spec/controllers/admin/imports_controller_spec.rb @@ -13,10 +13,7 @@ module Admin let(:extra_params) { { conference_slug: participatory_space.slug } } let(:file) do - Rack::Test::UploadedFile.new( - Decidim::Dev.test_file("import_proposals.csv", "text/csv"), - "text/csv" - ) + Decidim::Dev.test_file("import_proposals.csv", "text/csv") end end end diff --git a/decidim-conferences/spec/shared/manage_conference_components_examples.rb b/decidim-conferences/spec/shared/manage_conference_components_examples.rb index e8864e661c218..2550b9e9d546a 100644 --- a/decidim-conferences/spec/shared/manage_conference_components_examples.rb +++ b/decidim-conferences/spec/shared/manage_conference_components_examples.rb @@ -179,6 +179,8 @@ click_on "Publish" end + expect(page).to have_admin_callout("The component has been successfully published.") + expect(Decidim::EventPublisherJob).to(have_been_enqueued.with( "decidim.events.components.component_published", { resource: component, @@ -197,7 +199,7 @@ it "hides the component from the menu" do visit decidim_conferences.conference_path(conference, locale: I18n.locale) - expect(page).to have_content decidim_escape_translated(component.name) + expect(page).to have_content translated_attribute(component.name) visit decidim_admin_conferences.components_path(conference) @@ -212,7 +214,7 @@ end visit decidim_conferences.conference_path(conference, locale: I18n.locale) - expect(page).to have_no_content decidim_escape_translated(component.name) + expect(page).to have_no_content translated_attribute(component.name) end end diff --git a/decidim-conferences/spec/system/conference_program_spec.rb b/decidim-conferences/spec/system/conference_program_spec.rb index 091136f369ee4..4403a2dd09b25 100644 --- a/decidim-conferences/spec/system/conference_program_spec.rb +++ b/decidim-conferences/spec/system/conference_program_spec.rb @@ -52,8 +52,8 @@ visit decidim_conferences.conference_path(conference) within "aside .conference__nav-container" do - expect(page).to have_content(decidim_escape_translated(component.name)) - click_on decidim_escape_translated(component.name) + expect(page).to have_content(translated_attribute(component.name)) + click_on translated_attribute(component.name) end expect(page).to have_current_path decidim_conferences.conference_conference_program_path(conference, component) diff --git a/decidim-conferences/spec/system/conferences_spec.rb b/decidim-conferences/spec/system/conferences_spec.rb index 849d8fffc114e..d732e039f9aaa 100644 --- a/decidim-conferences/spec/system/conferences_spec.rb +++ b/decidim-conferences/spec/system/conferences_spec.rb @@ -230,11 +230,27 @@ context "when the conference has some components" do it "shows the components" do within ".conference__nav" do - expect(page).to have_content(decidim_escape_translated(proposals_component.name)) + expect(page).to have_content(translated(proposals_component.name)) + expect(page.html).to include(decidim_escape_translated(proposals_component.name).gsub(""", "\"")) expect(page).to have_no_content(decidim_escape_translated(meetings_component.name)) end end + describe "when there are special characters (', &) in the nav links" do + let(:participatory_space) { conference } + let(:component_name) { "People's Budget & Ideas" } + let!(:proposal_component) { create(:proposal_component, name: { en: component_name }, participatory_space:) } + + it "renders the component name correctly" do + visit current_path + within ".conference__nav-container" do + expect(page).to have_content(component_name) + expect(page).to have_no_content("'") + expect(page).to have_no_content("'") + end + end + end + it "renders the stats for those components that are visible" do within all("[data-statistic]")[0] do expect(page).to have_css(".statistic__title", text: "Proposals") diff --git a/decidim-core/app/cells/decidim/amendable/amend_button_card/show.erb b/decidim-core/app/cells/decidim/amendable/amend_button_card/show.erb index eb6623e304b56..7eb077db92fe1 100644 --- a/decidim-core/app/cells/decidim/amendable/amend_button_card/show.erb +++ b/decidim-core/app/cells/decidim/amendable/amend_button_card/show.erb @@ -1,5 +1,5 @@ -<%= t(".cta_button_path_help", url: decidim_form_slug_url("", translated_attribute(form.object.settings.cta_button_path))) %>
+<%= t(".cta_button_path_help", url: decidim_form_slug_url("", translated_attribute(form.object.settings["cta_button_path"]))) %>
<%= category[:description] %>
<% if category[:items].present? %> -