decidim-blogs 0.29.2 → 0.30.0.rc1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) hide show
  1. checksums.yaml +4 -4
  2. data/app/cells/decidim/blogs/content_blocks/highlighted_posts_cell.rb +0 -3
  3. data/app/commands/decidim/blogs/create_post.rb +35 -0
  4. data/app/commands/decidim/blogs/update_post.rb +21 -0
  5. data/app/controllers/decidim/blogs/admin/posts_controller.rb +12 -9
  6. data/app/controllers/decidim/blogs/posts_controller.rb +61 -1
  7. data/app/forms/decidim/blogs/post_form.rb +52 -0
  8. data/app/helpers/decidim/blogs/posts_helper.rb +5 -0
  9. data/app/helpers/decidim/blogs/posts_select_helper.rb +32 -0
  10. data/app/models/decidim/blogs/post.rb +2 -1
  11. data/app/packs/stylesheets/blogs.scss +0 -20
  12. data/app/permissions/decidim/blog/permissions.rb +85 -2
  13. data/app/presenters/decidim/blogs/admin_log/post_presenter.rb +1 -1
  14. data/app/presenters/decidim/blogs/post_presenter.rb +25 -1
  15. data/app/views/decidim/blogs/admin/posts/_actions.html.erb +21 -0
  16. data/app/views/decidim/blogs/admin/posts/_post-tr.html.erb +25 -0
  17. data/app/views/decidim/blogs/admin/posts/_posts-thead.html.erb +9 -0
  18. data/app/views/decidim/blogs/admin/posts/index.html.erb +16 -55
  19. data/app/views/decidim/blogs/admin/posts/manage_trash.html.erb +20 -0
  20. data/app/views/decidim/blogs/posts/_actions.html.erb +7 -14
  21. data/app/views/decidim/blogs/posts/_form.html.erb +11 -0
  22. data/app/views/decidim/blogs/posts/_menu_actions.html.erb +21 -0
  23. data/app/views/decidim/blogs/posts/_schema_org_blog_posting_post.html.erb +3 -0
  24. data/app/views/decidim/blogs/posts/edit.html.erb +21 -0
  25. data/app/views/decidim/blogs/posts/index.html.erb +16 -1
  26. data/app/views/decidim/blogs/posts/new.html.erb +21 -0
  27. data/app/views/decidim/blogs/posts/show.html.erb +15 -6
  28. data/config/locales/ar.yml +0 -1
  29. data/config/locales/bg.yml +0 -3
  30. data/config/locales/ca.yml +58 -3
  31. data/config/locales/cs.yml +39 -4
  32. data/config/locales/de.yml +58 -3
  33. data/config/locales/el.yml +0 -3
  34. data/config/locales/en.yml +58 -3
  35. data/config/locales/es-MX.yml +58 -3
  36. data/config/locales/es-PY.yml +58 -3
  37. data/config/locales/es.yml +58 -3
  38. data/config/locales/eu.yml +58 -3
  39. data/config/locales/fi-plain.yml +39 -4
  40. data/config/locales/fi.yml +39 -4
  41. data/config/locales/fr-CA.yml +32 -2
  42. data/config/locales/fr.yml +32 -2
  43. data/config/locales/gl.yml +0 -1
  44. data/config/locales/hu.yml +0 -3
  45. data/config/locales/ja.yml +57 -2
  46. data/config/locales/kaa.yml +0 -1
  47. data/config/locales/ko.yml +0 -2
  48. data/config/locales/lt.yml +0 -3
  49. data/config/locales/nl.yml +0 -1
  50. data/config/locales/no.yml +0 -1
  51. data/config/locales/pl.yml +0 -3
  52. data/config/locales/pt-BR.yml +0 -3
  53. data/config/locales/ro-RO.yml +20 -1
  54. data/config/locales/ru.yml +0 -3
  55. data/config/locales/sq-AL.yml +0 -3
  56. data/config/locales/sv.yml +58 -3
  57. data/config/locales/zh-TW.yml +0 -3
  58. data/db/migrate/20200827153709_add_commentable_counter_cache_to_posts.rb +1 -1
  59. data/db/migrate/20210310120514_add_followable_counter_cache_to_blogs.rb +1 -1
  60. data/db/migrate/20240828103324_add_deleted_at_to_decidim_blogs_posts.rb +8 -0
  61. data/decidim-blogs.gemspec +1 -1
  62. data/lib/decidim/api/blogs_type.rb +4 -5
  63. data/lib/decidim/api/post_type.rb +2 -2
  64. data/lib/decidim/blogs/admin_engine.rb +7 -1
  65. data/lib/decidim/blogs/component.rb +27 -0
  66. data/lib/decidim/blogs/engine.rb +1 -1
  67. data/lib/decidim/blogs/post_serializer.rb +70 -0
  68. data/lib/decidim/blogs/schema_org_blog_posting_post_serializer.rb +81 -0
  69. data/lib/decidim/blogs/test/factories.rb +9 -0
  70. data/lib/decidim/blogs/version.rb +1 -1
  71. data/lib/decidim/blogs.rb +2 -0
  72. metadata +34 -18
@@ -1,18 +1,11 @@
1
- <div class="blog__actions">
2
- <div class="blog__actions-left">
3
- <% if endorsements_enabled? %>
4
- <%= endorsement_buttons_cell(post) %>
5
- <% end %>
1
+ <section class="layout-main__section layout-main__buttons pt-10" data-buttons>
2
+ <%= cell("decidim/endorsement_block", post) %>
6
3
 
7
- <%= cell "decidim/comments_button", nil %>
8
- </div>
9
-
10
- <div class="blog__actions-right">
11
- <%= follow_button_for(post, false, button_classes: "button button__sm button__text-secondary") %>
4
+ <%= cell "decidim/comments_button", nil %>
12
5
 
13
- <%= cell "decidim/share_button", nil %>
14
- <%= cell "decidim/report_button", post %>
6
+ <div class="ml-auto lg:ml-0">
7
+ <%= cell "decidim/share_widget", post %>
15
8
  </div>
16
- </div>
9
+ </section>
17
10
 
18
- <%= cell "decidim/endorsers_list", post, layout: :full %>
11
+ <%= cell "decidim/endorsers_list", post %>
@@ -0,0 +1,11 @@
1
+ <div>
2
+ <%= fo_post_author_select_field form, :decidim_author_id, label: t(".author_id") %>
3
+ </div>
4
+
5
+ <div>
6
+ <%= form.text_field :title, label: t(".title"), autofocus: true, class: "js-hashtags", hashtaggable: true %>
7
+ </div>
8
+
9
+ <div>
10
+ <%= text_editor_for(form, :body, label: t(".body"), hashtaggable: true, value: translated_attribute(form.object.body)) %>
11
+ </div>
@@ -0,0 +1,21 @@
1
+
2
+ <% if allowed_to?(:update, :blogpost, blogpost: post) %>
3
+ <li role="menuitem">
4
+ <%= link_to edit_post_path(post), class: "button button__sm button__text button__text-secondary" do %>
5
+ <span><%= t("button_edit", scope: "decidim.blogs.posts.menu_actions") %></span>
6
+ <%= icon "pencil-line" %>
7
+ <% end %>
8
+ </li>
9
+ <% end %>
10
+
11
+ <% if allowed_to?(:destroy, :blogpost, blogpost: post) %>
12
+ <li role="menuitem">
13
+ <%= link_to post_path(post),
14
+ method: :delete,
15
+ class: "button button__sm button__text button__text-secondary",
16
+ data: { confirm: t("button_destroy_confirm", scope: "decidim.blogs.posts.menu_actions") } do %>
17
+ <span><%= t("button_destroy", scope: "decidim.blogs.posts.menu_actions") %></span>
18
+ <%= icon "delete-bin-line" %>
19
+ <% end %>
20
+ </li>
21
+ <% end %>
@@ -0,0 +1,3 @@
1
+ <script type="application/ld+json">
2
+ <%== render_schema_org_blog_posting_post(post) %>
3
+ </script>
@@ -0,0 +1,21 @@
1
+ <%= render layout: "layouts/decidim/shared/layout_center" do %>
2
+ <div class="text-center py-10">
3
+ <h1 class="title-decorator inline-block text-left">
4
+ <%= t("title", scope: "decidim.blogs.posts.edit") %>
5
+ </h1>
6
+ </div>
7
+
8
+ <%= decidim_form_for(@form, html: { class: "form edit_post" }) do |f| %>
9
+ <div class="form__wrapper">
10
+ <%= render partial: "form", object: f %>
11
+ </div>
12
+
13
+ <div class="form__wrapper-block flex-col-reverse md:flex-row justify-between">
14
+ <%= link_to :back, class: "button button__sm md:button__lg button__text-secondary" do %>
15
+ <%= icon "arrow-left-line" %>
16
+ <%= t("back", scope: "decidim.blogs.posts.edit") %>
17
+ <% end %>
18
+ <%= f.submit t("button", scope: "decidim.blogs.posts.edit"), class: "button button__sm md:button__lg button__secondary", data: { disable: true } %>
19
+ </div>
20
+ <% end %>
21
+ <% end %>
@@ -1,9 +1,24 @@
1
- <% add_decidim_page_title component_name %>
1
+ <% add_decidim_meta_tags(
2
+ description: translated_attribute(current_component.participatory_space.try(:description)),
3
+ title: t("decidim.components.pagination.page_title",
4
+ component_name: component_name,
5
+ current_page: paginate_posts.current_page,
6
+ total_pages: paginate_posts.total_pages ),
7
+ url: posts_url,
8
+ resource: current_component) %>
9
+
2
10
  <%= append_javascript_pack_tag "decidim_blogs" %>
3
11
  <%= append_stylesheet_pack_tag "decidim_blogs" %>
4
12
 
5
13
  <% content_for :aside do %>
6
14
  <h1 class="title-decorator"><%= component_name %></h1>
15
+
16
+ <% if allowed_to?(:create, :blogpost) %>
17
+ <%= action_authorized_link_to :create, new_post_path, permissions_holder: current_component, class: "button button__xl button__secondary w-full", data: { "redirect_url" => new_post_path } do %>
18
+ <span><%= t("new_post", scope: "decidim.blogs.posts.index") %></span>
19
+ <%= icon "add-line" %>
20
+ <% end %>
21
+ <% end %>
7
22
  <% end %>
8
23
 
9
24
  <%= render layout: "layouts/decidim/shared/layout_two_col" do %>
@@ -0,0 +1,21 @@
1
+ <%= render layout: "layouts/decidim/shared/layout_center" do %>
2
+ <div class="text-center py-10">
3
+ <h1 class="title-decorator inline-block text-left">
4
+ <%= t("title", scope: "decidim.blogs.posts.new") %>
5
+ </h1>
6
+ </div>
7
+
8
+ <%= decidim_form_for(@form, html: { class: "form form-defaults new_post" }) do |f| %>
9
+ <div class="form__wrapper">
10
+ <%= render partial: "form", object: f %>
11
+ </div>
12
+
13
+ <div class="form__wrapper-block flex-col-reverse md:flex-row justify-between">
14
+ <%= link_to :back, class: "button button__sm md:button__lg button__text-secondary" do %>
15
+ <%= icon "arrow-left-line" %>
16
+ <%= t("back", scope: "decidim.blogs.posts.new") %>
17
+ <% end %>
18
+ <%= f.submit t("button", scope: "decidim.blogs.posts.new"), class: "button button__sm md:button__lg button__secondary", data: { disable: true } %>
19
+ </div>
20
+ <% end %>
21
+ <% end %>
@@ -1,10 +1,10 @@
1
1
  <% provide(:title, translated_attribute(post.title)) %>
2
2
 
3
- <% add_decidim_meta_tags({
4
- title: translated_attribute(post.title),
5
- description: translated_attribute(post.body),
6
- url: post_url(post.id)
7
- }) %>
3
+ <% add_decidim_meta_tags(
4
+ title: translated_attribute(post.title),
5
+ description: translated_attribute(post.body),
6
+ url: post_url(post.id),
7
+ resource: post) %>
8
8
 
9
9
  <%
10
10
  edit_link(
@@ -20,6 +20,8 @@
20
20
 
21
21
  <%= render layout: "layouts/decidim/shared/layout_center", locals: { columns: 8 } do %>
22
22
 
23
+ <%= render partial: "schema_org_blog_posting_post" %>
24
+
23
25
  <section class="layout-main__section layout-main__heading">
24
26
  <div class="flex justify-center">
25
27
  <h1 class="title-decorator my-12"><%= translated_attribute post.title %></h1>
@@ -32,7 +34,14 @@
32
34
  <% end %>
33
35
 
34
36
  <div class="layout-author">
35
- <%= cell "decidim/author", post_presenter.author, from: post, context_actions: [:date], layout: :compact %>
37
+ <div class="relative flex items-center justify-center w-full">
38
+ <div class="w-10/12 flex items-center gap-4">
39
+ <%= cell "decidim/author", post_presenter.author, from: post, context_actions: [:date], layout: :compact %>
40
+ </div>
41
+ <%= render "decidim/shared/resource_actions", resource: post do %>
42
+ <%= render "decidim/blogs/posts/menu_actions", post: post %>
43
+ <% end %>
44
+ </div>
36
45
  </div>
37
46
  </section>
38
47
 
@@ -22,7 +22,6 @@ ar:
22
22
  blogs:
23
23
  actions:
24
24
  author_id: إنشاء مشاركة كـ
25
- destroy: حذف
26
25
  edit: تعديل
27
26
  new: منشور جديد
28
27
  title: أفعال
@@ -18,7 +18,6 @@ bg:
18
18
  blogs:
19
19
  actions:
20
20
  author_id: Създаване на публикация като
21
- destroy: Изтрий
22
21
  edit: Редактирай
23
22
  new: Нова публикация
24
23
  title: Активности
@@ -27,8 +26,6 @@ bg:
27
26
  create:
28
27
  invalid: Възникна проблем при създаването на тази публикация.
29
28
  success: Публикацията беше създадена успешно.
30
- destroy:
31
- success: Публикацията беше изтрита успешно.
32
29
  edit:
33
30
  save: Актуализация
34
31
  title: Редактиране на поста
@@ -15,27 +15,34 @@ ca:
15
15
  one: Publicació
16
16
  other: Publicacions
17
17
  decidim:
18
+ admin:
19
+ admin_log:
20
+ changeset:
21
+ posts: Entrades al blog
18
22
  blogs:
19
23
  actions:
20
24
  author_id: Crear publicació com
21
- confirm_destroy: Segur que vols eliminar aquesta publicació?
22
- destroy: Esborrar
25
+ confirm_delete_post: Segur que vols eliminar aquesta publicació?
26
+ deleted_posts_info: Els resultats eliminats es poden restaurar des de la paperera.
23
27
  edit: Edita
24
28
  new: Nova publicació
25
29
  title: Accions
30
+ view_deleted_posts: Veure les publicacions eliminades
26
31
  admin:
27
32
  posts:
28
33
  create:
29
34
  invalid: S'ha produït un error en crear aquesta publicació.
30
35
  success: Publicació creada correctament.
31
36
  destroy:
32
- success: La publicació s'ha eliminat correctament.
37
+ success: La publicació s'ha esborrat correctament.
33
38
  edit:
34
39
  save: Actualitza
35
40
  title: Editar publicació
36
41
  index:
37
42
  not_published_yet: No publicada encara.
38
43
  title: Publicacions
44
+ manage_trash:
45
+ title: Publicacions eliminades
39
46
  new:
40
47
  create: Crear
41
48
  title: Crea una publicació
@@ -46,6 +53,8 @@ ca:
46
53
  post:
47
54
  create: "%{user_name} ha creat el post %{resource_name} al blog de %{space_name}"
48
55
  delete: "%{user_name} ha eliminat el post %{resource_name} del blog de %{space_name}"
56
+ restore: "%{user_name} ha restaurat la publicació %{resource_name} al blog de %{space_name}"
57
+ soft_delete: "%{user_name} ha mogut la publicació %{resource_name} des del blog de %{space_name} a la paperera"
49
58
  update: "%{user_name} ha actualitzat el post %{resource_name} en el blog de %{space_name}"
50
59
  content_blocks:
51
60
  highlighted_posts:
@@ -63,11 +72,28 @@ ca:
63
72
  published_at: Hora de publicació
64
73
  title: Títol
65
74
  posts:
75
+ edit:
76
+ back: Tornar a la publicació
77
+ button: Actualitzar
78
+ title: Editar la publicació
79
+ form:
80
+ author_id: Autoria
81
+ body: Cos del text
82
+ title: Títol
66
83
  index:
67
84
  count:
68
85
  one: "%{count} publicació"
69
86
  other: "%{count} publicacions"
70
87
  empty: Encara no hi ha cap publicació.
88
+ new_post: Nova publicació
89
+ menu_actions:
90
+ button_destroy: Eliminar la publicació
91
+ button_destroy_confirm: Segur que vols eliminar aquesta publicació?
92
+ button_edit: Editar la publicació
93
+ new:
94
+ back: Tornar a la publicació
95
+ button: Nova publicació
96
+ title: Crear una nova publicació
71
97
  components:
72
98
  blogs:
73
99
  actions:
@@ -82,6 +108,7 @@ ca:
82
108
  announcement: Avís
83
109
  comments_enabled: Comentaris habilitats
84
110
  comments_max_length: Longitud màxima dels comentaris (deixa 0 si vols mantenir la configuració per defecte)
111
+ creation_enabled_for_participants: Les participants poden crear noves entrades en el blog
85
112
  step:
86
113
  announcement: Avís
87
114
  comments_blocked: Comentaris bloquejats
@@ -94,5 +121,33 @@ ca:
94
121
  email_outro: Has rebut aquesta notificació perquè estàs seguint l'espai "%{participatory_space_title}". Pots deixar de seguir-lo des de l'enllaç anterior.
95
122
  email_subject: Nova publicació publicada a %{participatory_space_title}
96
123
  notification_title: La publicació <a href="%{resource_path}">%{resource_title}</a> ha estat publicada a %{participatory_space_title}
124
+ open_data:
125
+ help:
126
+ post_comments:
127
+ alignment: Si aquest comentari va ser a favor, en contra o neutral
128
+ author: El nom d'usuària de la participant que va fer aquest comentari
129
+ body: El comentari pròpiament
130
+ commentable_id: L'identificador únic d'allò que es podia comentar
131
+ commentable_type: La tipologia d'allò sobre el que es va fer el comentari (si va ser un resultat, una proposta, etc.)
132
+ created_at: La data en què es va crear aquest comentari
133
+ depth: El lloc on es troba aquest comentari a la terna de comentaris (si és un comentari, una resposta a un comentari, o la resposta d'una resposta)
134
+ id: L'identificador id d'aquest comentari
135
+ locale: La configuració regional (idioma) que la participant tenia en deixar aquest comentari
136
+ root_commentable_url: L'URL (adreça web) del recurs que enllaça amb aquest comentari
137
+ user_group: El nom del grup d'usuàries que va fer aquest comentari (si n'hi ha)
138
+ posts:
139
+ author: La informació de l'autoria
140
+ body: El contingut de la publicació
141
+ comments_count: El número de comentaris que té aquesta publicació
142
+ component: El component al qual pertany aquesta publicació
143
+ created_at: La data en què es va crear aquesta publicació
144
+ endorsements_count: El número d'adhesions que té aquesta publicació
145
+ follows_count: El número de seguidores que té aquesta publicació
146
+ id: L'identificador únic de la publicació
147
+ participatory_space: A quin espai pertany aquesta publicació (procés participatiu, assemblea, etc.)
148
+ published_at: La data en què es va publicar aquesta entrada al blog
149
+ title: El títol de la publicació
150
+ updated_at: La data de la darrera actualització d'aquesta publicació
151
+ url: L'URL d'aquesta publicació
97
152
  statistics:
98
153
  posts_count: Publicacions
@@ -17,27 +17,32 @@ cs:
17
17
  many: Příspěvky
18
18
  other: Příspěvky
19
19
  decidim:
20
+ admin:
21
+ admin_log:
22
+ changeset:
23
+ posts: Příspěvky
20
24
  blogs:
21
25
  actions:
22
26
  author_id: Vytvořit příspěvek jako
23
- confirm_destroy: Opravdu chcete odstranit tento příspěvek?
24
- destroy: Smazat
27
+ confirm_delete_post: Opravdu chcete odstranit tento příspěvek?
28
+ deleted_posts_info: Smazané příspěvky mohou být obnoveny z koše.
25
29
  edit: Upravit
26
30
  new: Nový příspěvek
27
31
  title: Akce
32
+ view_deleted_posts: Zobrazit odstraněné příspěvky
28
33
  admin:
29
34
  posts:
30
35
  create:
31
36
  invalid: Při vytváření tohoto příspěvku nastal problém.
32
37
  success: Příspěvek byl úspěšně vytvořen.
33
- destroy:
34
- success: Příspěvek byl úspěšně smazán.
35
38
  edit:
36
39
  save: Aktualizovat
37
40
  title: Upravit příspěvek
38
41
  index:
39
42
  not_published_yet: Zatím nezveřejněno.
40
43
  title: Příspěvky
44
+ manage_trash:
45
+ title: Smazané příspěvky
41
46
  new:
42
47
  create: Vytvořit
43
48
  title: Vytvořit příspěvek
@@ -48,6 +53,8 @@ cs:
48
53
  post:
49
54
  create: "%{user_name} vytvořil příspěvek %{resource_name} v %{space_name}"
50
55
  delete: "%{user_name} odstranil příspěvek %{resource_name} z %{space_name}"
56
+ restore: "%{user_name} obnovil příspěvek %{resource_name} v %{space_name}"
57
+ soft_delete: "%{user_name} přesunul příspěvek %{resource_name} v %{space_name} do koše"
51
58
  update: "%{user_name} aktualizoval příspěvek %{resource_name} v %{space_name}"
52
59
  content_blocks:
53
60
  highlighted_posts:
@@ -98,5 +105,33 @@ cs:
98
105
  email_outro: Obdrželi jste toto oznámení, protože sledujete "%{participatory_space_title}". Můžete ho zrušit z předchozího odkazu.
99
106
  email_subject: Nový příspěvek publikován v %{participatory_space_title}
100
107
  notification_title: Příspěvek <a href="%{resource_path}">%{resource_title}</a> byl zveřejněn ve %{participatory_space_title}
108
+ open_data:
109
+ help:
110
+ post_comments:
111
+ alignment: Pokud byl tento komentář příznivý, proti nebo neutrální
112
+ author: Jméno účastníka, který vytvořil tento komentář
113
+ body: Samotný komentář
114
+ commentable_id: Jedinečné ID komentáře
115
+ commentable_type: Typ komentáře (pokud byl výsledek, návrh atd.)
116
+ created_at: Datum, kdy byl komentář vytvořen
117
+ depth: Místo, kde se tento komentář nachází je ve třech komentářích (pokud se jedná o odpověď nebo odpověď na odpověď)
118
+ id: ID pro tento komentář
119
+ locale: Lokalizace (jazyk), kterou měl účastník při opuštění tohoto komentáře
120
+ root_commentable_url: Adresa URL zdroje, který má vazbu na tento komentář
121
+ user_group: Název skupiny uživatelů, která přidala tento komentář (pokud existuje)
122
+ posts:
123
+ author: Informace autora
124
+ body: Tělo příspěvku
125
+ comments_count: Počet komentářů, které má tento příspěvek
126
+ component: Komponenta, do které příspěvek patří,
127
+ created_at: Datum, kdy byl příspěvek vytvořen
128
+ endorsements_count: Počet podpor, které má tento příspěvek
129
+ follows_count: Počet sledujících tohoto příspěvku
130
+ id: Jedinečný identifikátor tohoto příspěvku
131
+ participatory_space: Do kterého prostoru (např. účastnický proces nebo Shromáždění) patří tento příspěvek
132
+ published_at: Datum zveřejnění tohoto příspěvku
133
+ title: Název příspěvku
134
+ updated_at: Poslední datum, kdy byl příspěvek aktualizován
135
+ url: URL pro tento příspěvek
101
136
  statistics:
102
137
  posts_count: Příspěvky
@@ -15,27 +15,34 @@ de:
15
15
  one: Post
16
16
  other: Beiträge
17
17
  decidim:
18
+ admin:
19
+ admin_log:
20
+ changeset:
21
+ posts: Beiträge
18
22
  blogs:
19
23
  actions:
20
24
  author_id: Beitrag erstellen als
21
- confirm_destroy: Möchten Sie diesen Beitrag wirklich löschen?
22
- destroy: Löschen
25
+ confirm_delete_post: Möchten Sie diesen Beitrag wirklich löschen?
26
+ deleted_posts_info: Gelöschte Beiträge können aus dem Papierkorb wiederhergestellt werden.
23
27
  edit: Bearbeiten
24
28
  new: Neuer Beitrag
25
29
  title: Aktionen
30
+ view_deleted_posts: Gelöschte Beiträge anzeigen
26
31
  admin:
27
32
  posts:
28
33
  create:
29
34
  invalid: Beim Erstellen dieses Beitrags ist ein Problem aufgetreten.
30
35
  success: Beitrag wurde erfolgreich erstellt.
31
36
  destroy:
32
- success: Beitrag wurde erfolgreich gelöscht.
37
+ success: Beitrag erfolgreich gelöscht.
33
38
  edit:
34
39
  save: Aktualisieren
35
40
  title: Post bearbeiten
36
41
  index:
37
42
  not_published_yet: Noch nicht veröffentlicht.
38
43
  title: Beiträge
44
+ manage_trash:
45
+ title: Gelöschte Beiträge
39
46
  new:
40
47
  create: Erstellen
41
48
  title: Post erstellen
@@ -46,6 +53,8 @@ de:
46
53
  post:
47
54
  create: "%{user_name} hat den Blogpost %{resource_name} in %{space_name} erstellt"
48
55
  delete: "%{user_name} hat den Blogpost %{resource_name} in %{space_name} gelöscht"
56
+ restore: "%{user_name} hat den Blogbeitrag %{resource_name} in %{space_name} wiederhergestellt"
57
+ soft_delete: "%{user_name} hat den Blogbeitrag %{resource_name} in %{space_name} in den Papierkorb verschoben"
49
58
  update: "%{user_name} hat den Blogpost %{resource_name} in %{space_name} aktualisiert"
50
59
  content_blocks:
51
60
  highlighted_posts:
@@ -63,11 +72,28 @@ de:
63
72
  published_at: Veröffentlicht am
64
73
  title: Titel
65
74
  posts:
75
+ edit:
76
+ back: Zurück zum Beitrag
77
+ button: Aktualisieren
78
+ title: Beitrag bearbeiten
79
+ form:
80
+ author_id: Autor*in
81
+ body: Inhalt
82
+ title: Titel
66
83
  index:
67
84
  count:
68
85
  one: "%{count} Beitrag"
69
86
  other: "%{count} Beiträge"
70
87
  empty: Es sind noch keine Beiträge vorhanden.
88
+ new_post: Neuer Beitrag
89
+ menu_actions:
90
+ button_destroy: Beitrag löschen
91
+ button_destroy_confirm: Möchten Sie diesen Beitrag wirklich löschen?
92
+ button_edit: Beitrag bearbeiten
93
+ new:
94
+ back: Zurück zu den Beiträgen
95
+ button: Erstellen
96
+ title: Neuen Beitrag verfassen
71
97
  components:
72
98
  blogs:
73
99
  actions:
@@ -82,6 +108,7 @@ de:
82
108
  announcement: Ankündigung
83
109
  comments_enabled: Kommentare aktiviert
84
110
  comments_max_length: Maximale Länge der Kommentare (0 für Standardwert)
111
+ creation_enabled_for_participants: Teilnehmende können Beiträge erstellen
85
112
  step:
86
113
  announcement: Ankündigung
87
114
  comments_blocked: Kommentare blockiert
@@ -94,5 +121,33 @@ de:
94
121
  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.
95
122
  email_subject: Neuer Beitrag in %{participatory_space_title}
96
123
  notification_title: Der Beitrag <a href="%{resource_path}">%{resource_title}</a> wurde in %{participatory_space_title} veröffentlicht
124
+ open_data:
125
+ help:
126
+ post_comments:
127
+ alignment: Ob dieser Kommentar zustimmend, ablehnend oder neutral war
128
+ author: Der Name des Teilnehmenden, der diesen Kommentar erstellt hat
129
+ body: Der Kommentar selbst
130
+ commentable_id: Die eindeutige ID des kommentierten Objekts
131
+ commentable_type: Die Art des kommentierten Objekts (ob es ein Ergebnis, Vorschlag o.ä. war)
132
+ created_at: Das Erstellungsdatum des Kommentars
133
+ depth: Die Position dieses Kommentars im Thread (ob es sich um eine Antwort oder eine Antwort auf eine Antwort handelt)
134
+ id: Die ID dieses Kommentars
135
+ locale: Die eingestellte Plattformsprache der kommentierenden Person
136
+ root_commentable_url: Die URL der mit dem Kommentar verbundenen Ressource
137
+ user_group: Der Name der Gruppe, die diesen Kommentar erstellt hat (falls vorhanden)
138
+ posts:
139
+ author: Die Informationen des Autors
140
+ body: Der Inhalt des Beitrags
141
+ comments_count: Die Anzahl Kommentare zu diesem Beitrag
142
+ component: Komponente, zu der dieses Beitrag gehört
143
+ created_at: Erstellungsdatum dieses Beitrags
144
+ endorsements_count: Die Anzahl Unterstützungen dieses Beitrags
145
+ follows_count: Die Anzahl Folgende dieses Beitrags
146
+ id: Die eindeutige Bezeichnung des Beitrags
147
+ participatory_space: Zu welchem Bereich dieser Beitrag gehört (z.B. Partizipationsprozesse oder Gremien)
148
+ published_at: Veröffentlichungsdatum des Beitrags
149
+ title: Der Titel des Beitrags
150
+ updated_at: Letztes Aktualisierungsdatum dieses Beitrags
151
+ url: Die URL für diesen Beitrag
97
152
  statistics:
98
153
  posts_count: Beiträge
@@ -18,7 +18,6 @@ el:
18
18
  blogs:
19
19
  actions:
20
20
  author_id: Δημιουργία ανάρτησης ως
21
- destroy: Διαγραφή
22
21
  edit: Επεξεργασία
23
22
  new: Νέα δημοσίευση
24
23
  title: Ενέργειες
@@ -27,8 +26,6 @@ el:
27
26
  create:
28
27
  invalid: Υπήρξε ένα πρόβλημα κατά τη δημιουργία αυτής της ανάρτησης.
29
28
  success: Η ανάρτηση δημιουργήθηκε επιτυχώς.
30
- destroy:
31
- success: Η ανάρτηση διαγράφηκε επιτυχώς.
32
29
  edit:
33
30
  save: Ενημέρωση
34
31
  title: Επεξεργασία ανάρτησης
@@ -15,27 +15,34 @@ en:
15
15
  one: Post
16
16
  other: Posts
17
17
  decidim:
18
+ admin:
19
+ admin_log:
20
+ changeset:
21
+ posts: Posts
18
22
  blogs:
19
23
  actions:
20
24
  author_id: Create post as
21
- confirm_destroy: Are you sure you want to delete this post?
22
- destroy: Delete
25
+ confirm_delete_post: Are you sure you want to delete this post?
26
+ deleted_posts_info: Deleted posts can be restored from the trash.
23
27
  edit: Edit
24
28
  new: New post
25
29
  title: Actions
30
+ view_deleted_posts: View deleted posts
26
31
  admin:
27
32
  posts:
28
33
  create:
29
34
  invalid: There was a problem creating this post.
30
35
  success: Post successfully created.
31
36
  destroy:
32
- success: Post successfully deleted.
37
+ success: Post deleted successfully.
33
38
  edit:
34
39
  save: Update
35
40
  title: Edit post
36
41
  index:
37
42
  not_published_yet: Not published yet.
38
43
  title: Posts
44
+ manage_trash:
45
+ title: Deleted posts
39
46
  new:
40
47
  create: Create
41
48
  title: Create post
@@ -46,6 +53,8 @@ en:
46
53
  post:
47
54
  create: "%{user_name} created the %{resource_name} blog post in %{space_name}"
48
55
  delete: "%{user_name} deleted the %{resource_name} blog post from %{space_name}"
56
+ restore: "%{user_name} restored the %{resource_name} blog post in %{space_name}"
57
+ soft_delete: "%{user_name} moved the %{resource_name} blog post in %{space_name} to the trash"
49
58
  update: "%{user_name} updated the %{resource_name} blog post in %{space_name}"
50
59
  content_blocks:
51
60
  highlighted_posts:
@@ -63,11 +72,28 @@ en:
63
72
  published_at: Publish time
64
73
  title: Title
65
74
  posts:
75
+ edit:
76
+ back: Back to post
77
+ button: Update
78
+ title: Edit post
79
+ form:
80
+ author_id: Author
81
+ body: Body
82
+ title: Title
66
83
  index:
67
84
  count:
68
85
  one: "%{count} post"
69
86
  other: "%{count} posts"
70
87
  empty: There are no posts yet.
88
+ new_post: New post
89
+ menu_actions:
90
+ button_destroy: Delete post
91
+ button_destroy_confirm: Are you sure you want to delete this post?
92
+ button_edit: Edit post
93
+ new:
94
+ back: Back to posts
95
+ button: Create
96
+ title: Create new post
71
97
  components:
72
98
  blogs:
73
99
  actions:
@@ -82,6 +108,7 @@ en:
82
108
  announcement: Announcement
83
109
  comments_enabled: Comments enabled
84
110
  comments_max_length: Comments max length (Leave 0 for default value)
111
+ creation_enabled_for_participants: Participants can create posts
85
112
  step:
86
113
  announcement: Announcement
87
114
  comments_blocked: Comments blocked
@@ -94,5 +121,33 @@ en:
94
121
  email_outro: You have received this notification because you are following "%{participatory_space_title}". You can unfollow it from the previous link.
95
122
  email_subject: New post published in %{participatory_space_title}
96
123
  notification_title: The post <a href="%{resource_path}">%{resource_title}</a> has been published in %{participatory_space_title}
124
+ open_data:
125
+ help:
126
+ post_comments:
127
+ alignment: If this comment was a favour, against or neutral
128
+ author: The name of the participant that made this comment
129
+ body: The comment itself
130
+ commentable_id: The unique id of the commentable
131
+ commentable_type: The type of the commentable (if it was a result, a proposal, etc.)
132
+ created_at: The date when this comment was created
133
+ depth: The place where this comment is in the three of comments (if it is an answer or an answer of an answer)
134
+ id: The id for this comment
135
+ locale: The locale (language) that the participant had when leaving this comment
136
+ root_commentable_url: The URL of the resource that ties to this comment
137
+ user_group: The name of the user group that made this comment (if any)
138
+ posts:
139
+ author: The information of the author
140
+ body: The body of the post
141
+ comments_count: The number of comments this post has
142
+ component: The component that the post belongs to
143
+ created_at: The date this post was created
144
+ endorsements_count: The number of endorsements this post has
145
+ follows_count: The number of follows this post has
146
+ id: The unique identifier of this post
147
+ participatory_space: To which space (e.g. Participatory Process, or Assembly) this post belongs to
148
+ published_at: The date this post was published
149
+ title: The title of the post
150
+ updated_at: The last date this post was updated
151
+ url: The URL for this post
97
152
  statistics:
98
153
  posts_count: Posts