+
+
+
+
+
+
+
+ <%= dngettext("activity", "There has been an activity!", "There has been some activity!", @total_number_activities) %>
+
+ |
+
+
+
+
+
+
+
+ <%= for {_, group_activities} <- @activities do %>
+ -
+
+
+
+
+
+ <%= if hd(group_activities).group.avatar do %>
+
+
+
+
+ |
+ <% end %>
+
+
+ |
+
+
+ |
+
+
+
+ <%= for activity <- Enum.take(group_activities, 5) do %>
+ -
+
+ <%= case activity.type do %>
+ <% :discussion -> %>
+ <%= render("activity/_discussion_activity_item.html", activity: activity) %>
+ <% :event -> %>
+ <%= render("activity/_event_activity_item.html", activity: activity) %>
+ <% :group -> %>
+ <%= render("activity/_group_activity_item.html", activity: activity) %>
+ <% :member -> %>
+ <%= render("activity/_member_activity_item.html", activity: activity) %>
+ <% :post -> %>
+ <%= render("activity/_post_activity_item.html", activity: activity) %>
+ <% :resource -> %>
+ <%= render("activity/_resource_activity_item.html", activity: activity) %>
+ <% :comment -> %>
+ <%= render("activity/_comment_activity_item.html", activity: activity) %>
+ <% end %>
+
+ <%= datetime_relative(activity.inserted_at, @locale) %>
+
+ <% end %>
+
+ <%= if length(group_activities) > 5 do %>
+
+ <% end %>
+
+ <% end %>
+
+ |
+
+
+ |
+
+
+
+
+ <%= dgettext "activity", "Don't want to receive activity notifications? You may change frequency or disable them in your settings." %>
+
+ |
+
+
+
+ |
+
diff --git a/lib/web/templates/email/email_direct_activity.text.eex b/lib/web/templates/email/email_direct_activity.text.eex
new file mode 100644
index 00000000..e52c5ed2
--- /dev/null
+++ b/lib/web/templates/email/email_direct_activity.text.eex
@@ -0,0 +1,21 @@
+<%= @subject %>
+
+==
+<%= dngettext("activity", "There has been an activity!", "There has been some activity!", @total_number_activities) %>
+
+<%= for {_, group_activities} <- @activities do %>
+
+==
+<%= hd(group_activities).group.name || "@#{Mobilizon.Actors.Actor.preferred_username_and_domain(hd(group_activities).group)}" %>
+
+<%= for activity <- Enum.take(group_activities, 5) do %>
+* <%= case activity.type do %><% :discussion -> %><%= render("activity/_discussion_activity_item.text", activity: activity) %><% :event -> %><%= render("activity/_event_activity_item.text", activity: activity) %><% :group -> %><%= render("activity/_group_activity_item.text", activity: activity) %>
+<% :member -> %><%= render("activity/_member_activity_item.text", activity: activity) %><% :post -> %><%= render("activity/_post_activity_item.text", activity: activity) %><% :resource -> %><%= render("activity/_resource_activity_item.text", activity: activity) %><% :comment -> %><%= render("activity/_comment_activity_item.text", activity: activity) %><% end %>
+<%= datetime_relative(activity.inserted_at, @locale) %>
+<% end %>
+<%= if length(group_activities) > 5 do %>
+<%= dngettext "activity", "View one more activity", "View %{count} more activities", length(group_activities) - 5, %{count: length(group_activities) - 5} %>
+<%= page_url(Mobilizon.Web.Endpoint, :actor, Mobilizon.Actors.Actor.preferred_username_and_domain(hd(group_activities).group)) |> URI.decode() %>/timeline
+<% end %>
+<% end %>
+<%= dgettext("activity", "Don't want to receive activity notifications? You may change frequency or disable them in your settings.") %>
\ No newline at end of file
diff --git a/lib/web/views/email_view.ex b/lib/web/views/email_view.ex
index fb3d6141..ed3a15dc 100644
--- a/lib/web/views/email_view.ex
+++ b/lib/web/views/email_view.ex
@@ -1,6 +1,7 @@
defmodule Mobilizon.Web.EmailView do
use Mobilizon.Web, :view
+ alias Cldr.DateTime.Relative
import Mobilizon.Web.Gettext
def datetime_to_string(%DateTime{} = datetime, locale \\ "en", format \\ :medium) do
@@ -27,4 +28,12 @@ defmodule Mobilizon.Web.EmailView do
datetime
end
end
+
+ @spec datetime_relative(DateTime.t(), String.t()) :: String.t()
+ def datetime_relative(%DateTime{} = datetime, locale \\ "en") do
+ Relative.to_string!(datetime, Mobilizon.Cldr,
+ relative_to: DateTime.utc_now(),
+ locale: locale
+ )
+ end
end
diff --git a/mix.exs b/mix.exs
index 7e56ef2d..e02168c6 100644
--- a/mix.exs
+++ b/mix.exs
@@ -163,6 +163,7 @@ defmodule Mobilizon.Mixfile do
{:sentry, "~> 8.0"},
{:html_entities, "~> 0.5"},
{:sweet_xml, "~> 0.6.6"},
+ {:web_push_encryption, "~> 0.3"},
# Dev and test dependencies
{:phoenix_live_reload, "~> 1.2", only: [:dev, :e2e]},
{:ex_machina, "~> 2.3", only: [:dev, :test]},
diff --git a/mix.lock b/mix.lock
index 6e2c0344..0716e785 100644
--- a/mix.lock
+++ b/mix.lock
@@ -138,5 +138,6 @@
"ueberauth_twitter": {:hex, :ueberauth_twitter, "0.4.0", "4b98620341bc91bac90459093bba093c650823b6e2df35b70255c493c17e9227", [:mix], [{:httpoison, "~> 1.0", [hex: :httpoison, repo: "hexpm", optional: false]}, {:oauther, "~> 1.1", [hex: :oauther, repo: "hexpm", optional: false]}, {:ueberauth, "~> 0.6", [hex: :ueberauth, repo: "hexpm", optional: false]}], "hexpm", "fb29c9047ca263038c0c61f5a0ec8597e8564aba3f2b4cb02704b60205fd4468"},
"unicode_util_compat": {:hex, :unicode_util_compat, "0.7.0", "bc84380c9ab48177092f43ac89e4dfa2c6d62b40b8bd132b1059ecc7232f9a78", [:rebar3], [], "hexpm", "25eee6d67df61960cf6a794239566599b09e17e668d3700247bc498638152521"},
"unsafe": {:hex, :unsafe, "1.0.1", "a27e1874f72ee49312e0a9ec2e0b27924214a05e3ddac90e91727bc76f8613d8", [:mix], [], "hexpm", "6c7729a2d214806450d29766abc2afaa7a2cbecf415be64f36a6691afebb50e5"},
+ "web_push_encryption": {:hex, :web_push_encryption, "0.3.0", "598b5135e696fd1404dc8d0d7c0fa2c027244a4e5d5e5a98ba267f14fdeaabc8", [:mix], [{:httpoison, "~> 1.0", [hex: :httpoison, repo: "hexpm", optional: false]}, {:jose, "~> 1.8", [hex: :jose, repo: "hexpm", optional: false]}], "hexpm", "f10bdd1afe527ede694749fb77a2f22f146a51b054c7fa541c9fd920fba7c875"},
"xml_builder": {:hex, :xml_builder, "2.1.4", "e60e21c0a39b9dd8dec1db5a2525c713f7fe4e85ed247caedf22a9bcdd2d5069", [:mix], [], "hexpm", "48188a4df8b9168ceb8318d128299bce064d272e18967349b2592347c434e677"},
}
diff --git a/priv/gettext/activity.pot b/priv/gettext/activity.pot
new file mode 100644
index 00000000..bbfd28fc
--- /dev/null
+++ b/priv/gettext/activity.pot
@@ -0,0 +1,230 @@
+## This file is a PO Template file.
+##
+## "msgid"s here are often extracted from source code.
+## Add new translations manually only if they're dynamic
+## translations that can't be statically extracted.
+##
+## Run "mix gettext.extract" to bring this file up to
+## date. Leave "msgstr"s empty as changing them here as no
+## effect: edit them in PO (.po) files instead.
+msgid ""
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_member_activity_item.html.eex:19
+#: lib/web/templates/email/activity/_member_activity_item.text.eex:12
+msgid "%{member} accepted the invitation to join the group."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_member_activity_item.html.eex:26
+#: lib/web/templates/email/activity/_member_activity_item.text.eex:17
+msgid "%{member} rejected the invitation to join the group."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_member_activity_item.html.eex:4
+#: lib/web/templates/email/activity/_member_activity_item.text.eex:1
+msgid "%{member} requested to join the group."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_member_activity_item.html.eex:11
+#: lib/web/templates/email/activity/_member_activity_item.text.eex:6
+msgid "%{member} was invited by %{profile}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_member_activity_item.html.eex:40
+#: lib/web/templates/email/activity/_member_activity_item.text.eex:27
+msgid "%{profile} added the member %{member}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_comment_activity_item.html.eex:49
+#: lib/web/templates/email/activity/_comment_activity_item.text.eex:19 lib/web/templates/email/activity/_discussion_activity_item.html.eex:46
+#: lib/web/templates/email/activity/_discussion_activity_item.text.eex:19
+msgid "%{profile} archived the discussion %{discussion}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_comment_activity_item.html.eex:4
+#: lib/web/templates/email/activity/_comment_activity_item.text.eex:1 lib/web/templates/email/activity/_discussion_activity_item.html.eex:4
+#: lib/web/templates/email/activity/_discussion_activity_item.text.eex:1
+msgid "%{profile} created the discussion %{discussion}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_resource_activity_item.html.eex:5
+#: lib/web/templates/email/activity/_resource_activity_item.text.eex:2
+msgid "%{profile} created the folder %{resource}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_group_activity_item.html.eex:4
+#: lib/web/templates/email/activity/_group_activity_item.text.eex:1
+msgid "%{profile} created the group %{group}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_resource_activity_item.html.eex:20
+#: lib/web/templates/email/activity/_resource_activity_item.text.eex:8
+msgid "%{profile} created the resource %{resource}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_comment_activity_item.html.eex:64
+#: lib/web/templates/email/activity/_comment_activity_item.text.eex:25 lib/web/templates/email/activity/_discussion_activity_item.html.eex:60
+#: lib/web/templates/email/activity/_discussion_activity_item.text.eex:25
+msgid "%{profile} deleted the discussion %{discussion}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_resource_activity_item.html.eex:103
+#: lib/web/templates/email/activity/_resource_activity_item.text.eex:40
+msgid "%{profile} deleted the folder %{resource}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_resource_activity_item.html.eex:111
+#: lib/web/templates/email/activity/_resource_activity_item.text.eex:45
+msgid "%{profile} deleted the resource %{resource}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_member_activity_item.html.eex:56
+#: lib/web/templates/email/activity/_member_activity_item.text.eex:39
+msgid "%{profile} excluded member %{member}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_resource_activity_item.html.eex:71
+#: lib/web/templates/email/activity/_resource_activity_item.text.eex:28
+msgid "%{profile} moved the folder %{resource}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_resource_activity_item.html.eex:86
+#: lib/web/templates/email/activity/_resource_activity_item.text.eex:34
+msgid "%{profile} moved the resource %{resource}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_member_activity_item.html.eex:64
+#: lib/web/templates/email/activity/_member_activity_item.text.eex:45
+msgid "%{profile} quit the group."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_comment_activity_item.html.eex:34
+#: lib/web/templates/email/activity/_comment_activity_item.text.eex:13 lib/web/templates/email/activity/_discussion_activity_item.html.eex:32
+#: lib/web/templates/email/activity/_discussion_activity_item.text.eex:13
+msgid "%{profile} renamed the discussion %{discussion}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_resource_activity_item.html.eex:37
+#: lib/web/templates/email/activity/_resource_activity_item.text.eex:14
+msgid "%{profile} renamed the folder from %{old_resource_title} to %{resource}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_resource_activity_item.html.eex:53
+#: lib/web/templates/email/activity/_resource_activity_item.text.eex:21
+msgid "%{profile} renamed the resource from %{old_resource_title} to %{resource}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_comment_activity_item.html.eex:19
+#: lib/web/templates/email/activity/_comment_activity_item.text.eex:7 lib/web/templates/email/activity/_discussion_activity_item.html.eex:18
+#: lib/web/templates/email/activity/_discussion_activity_item.text.eex:7
+msgid "%{profile} replied to the discussion %{discussion}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_group_activity_item.html.eex:19
+#: lib/web/templates/email/activity/_group_activity_item.text.eex:7
+msgid "%{profile} updated the group %{group}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_member_activity_item.html.eex:48
+#: lib/web/templates/email/activity/_member_activity_item.text.eex:33
+msgid "%{profile} updated the member %{member}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_event_activity_item.html.eex:4
+#: lib/web/templates/email/activity/_event_activity_item.text.eex:1
+msgid "The event %{event} was created by %{profile}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_event_activity_item.html.eex:34
+#: lib/web/templates/email/activity/_event_activity_item.text.eex:13
+msgid "The event %{event} was deleted by %{profile}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_event_activity_item.html.eex:19
+#: lib/web/templates/email/activity/_event_activity_item.text.eex:7
+msgid "The event %{event} was updated by %{profile}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_post_activity_item.html.eex:4
+#: lib/web/templates/email/activity/_post_activity_item.text.eex:1
+msgid "The post %{post} was created by %{profile}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_post_activity_item.html.eex:34
+#: lib/web/templates/email/activity/_post_activity_item.text.eex:13
+msgid "The post %{post} was deleted by %{profile}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_post_activity_item.html.eex:19
+#: lib/web/templates/email/activity/_post_activity_item.text.eex:7
+msgid "The post %{post} was updated by %{profile}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_member_activity_item.html.eex:33
+#: lib/web/templates/email/activity/_member_activity_item.text.eex:22
+msgid "%{member} joined the group."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_event_activity_item.html.eex:58
+#: lib/web/templates/email/activity/_event_activity_item.text.eex:25
+msgid "%{profile} posted a comment on the event %{event}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_event_activity_item.html.eex:43
+#: lib/web/templates/email/activity/_event_activity_item.text.eex:19
+msgid "%{profile} replied to a comment on the event %{event}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/email_direct_activity.html.eex:104
+#: lib/web/templates/email/email_direct_activity.text.eex:21
+msgid "Don't want to receive activity notifications? You may change frequency or disable them in your settings."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/email_direct_activity.html.eex:84
+#: lib/web/templates/email/email_direct_activity.text.eex:17
+msgid "View one more activity"
+msgid_plural "View %{count} more activities"
+msgstr[0] ""
+msgstr[1] ""
+
+#, elixir-format
+#: lib/web/templates/email/email_direct_activity.html.eex:38
+#: lib/web/templates/email/email_direct_activity.text.eex:4
+msgid "There has been an activity!"
+msgid_plural "There has been some activity!"
+msgstr[0] ""
+msgstr[1] ""
diff --git a/priv/gettext/ar/LC_MESSAGES/activity.po b/priv/gettext/ar/LC_MESSAGES/activity.po
new file mode 100644
index 00000000..35b2eb9e
--- /dev/null
+++ b/priv/gettext/ar/LC_MESSAGES/activity.po
@@ -0,0 +1,239 @@
+## "msgid"s in this file come from POT (.pot) files.
+##
+## Do not add, change, or remove "msgid"s manually here as
+## they're tied to the ones in the corresponding POT file
+## (with the same domain).
+##
+## Use "mix gettext.extract --merge" or "mix gettext.merge"
+## to merge POT files into PO files.
+msgid ""
+msgstr ""
+"Language: ar\n"
+"Plural-Forms: nplurals=6\n"
+
+#, elixir-format
+#: lib/web/templates/email/activity/_member_activity_item.html.eex:19
+#: lib/web/templates/email/activity/_member_activity_item.text.eex:12
+msgid "%{member} accepted the invitation to join the group."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_member_activity_item.html.eex:26
+#: lib/web/templates/email/activity/_member_activity_item.text.eex:17
+msgid "%{member} rejected the invitation to join the group."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_member_activity_item.html.eex:4
+#: lib/web/templates/email/activity/_member_activity_item.text.eex:1
+msgid "%{member} requested to join the group."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_member_activity_item.html.eex:11
+#: lib/web/templates/email/activity/_member_activity_item.text.eex:6
+msgid "%{member} was invited by %{profile}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_member_activity_item.html.eex:40
+#: lib/web/templates/email/activity/_member_activity_item.text.eex:27
+msgid "%{profile} added the member %{member}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_comment_activity_item.html.eex:49
+#: lib/web/templates/email/activity/_comment_activity_item.text.eex:19 lib/web/templates/email/activity/_discussion_activity_item.html.eex:46
+#: lib/web/templates/email/activity/_discussion_activity_item.text.eex:19
+msgid "%{profile} archived the discussion %{discussion}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_comment_activity_item.html.eex:4
+#: lib/web/templates/email/activity/_comment_activity_item.text.eex:1 lib/web/templates/email/activity/_discussion_activity_item.html.eex:4
+#: lib/web/templates/email/activity/_discussion_activity_item.text.eex:1
+msgid "%{profile} created the discussion %{discussion}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_resource_activity_item.html.eex:5
+#: lib/web/templates/email/activity/_resource_activity_item.text.eex:2
+msgid "%{profile} created the folder %{resource}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_group_activity_item.html.eex:4
+#: lib/web/templates/email/activity/_group_activity_item.text.eex:1
+msgid "%{profile} created the group %{group}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_resource_activity_item.html.eex:20
+#: lib/web/templates/email/activity/_resource_activity_item.text.eex:8
+msgid "%{profile} created the resource %{resource}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_comment_activity_item.html.eex:64
+#: lib/web/templates/email/activity/_comment_activity_item.text.eex:25 lib/web/templates/email/activity/_discussion_activity_item.html.eex:60
+#: lib/web/templates/email/activity/_discussion_activity_item.text.eex:25
+msgid "%{profile} deleted the discussion %{discussion}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_resource_activity_item.html.eex:103
+#: lib/web/templates/email/activity/_resource_activity_item.text.eex:40
+msgid "%{profile} deleted the folder %{resource}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_resource_activity_item.html.eex:111
+#: lib/web/templates/email/activity/_resource_activity_item.text.eex:45
+msgid "%{profile} deleted the resource %{resource}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_member_activity_item.html.eex:56
+#: lib/web/templates/email/activity/_member_activity_item.text.eex:39
+msgid "%{profile} excluded member %{member}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_resource_activity_item.html.eex:71
+#: lib/web/templates/email/activity/_resource_activity_item.text.eex:28
+msgid "%{profile} moved the folder %{resource}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_resource_activity_item.html.eex:86
+#: lib/web/templates/email/activity/_resource_activity_item.text.eex:34
+msgid "%{profile} moved the resource %{resource}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_member_activity_item.html.eex:64
+#: lib/web/templates/email/activity/_member_activity_item.text.eex:45
+msgid "%{profile} quit the group."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_comment_activity_item.html.eex:34
+#: lib/web/templates/email/activity/_comment_activity_item.text.eex:13 lib/web/templates/email/activity/_discussion_activity_item.html.eex:32
+#: lib/web/templates/email/activity/_discussion_activity_item.text.eex:13
+msgid "%{profile} renamed the discussion %{discussion}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_resource_activity_item.html.eex:37
+#: lib/web/templates/email/activity/_resource_activity_item.text.eex:14
+msgid "%{profile} renamed the folder from %{old_resource_title} to %{resource}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_resource_activity_item.html.eex:53
+#: lib/web/templates/email/activity/_resource_activity_item.text.eex:21
+msgid "%{profile} renamed the resource from %{old_resource_title} to %{resource}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_comment_activity_item.html.eex:19
+#: lib/web/templates/email/activity/_comment_activity_item.text.eex:7 lib/web/templates/email/activity/_discussion_activity_item.html.eex:18
+#: lib/web/templates/email/activity/_discussion_activity_item.text.eex:7
+msgid "%{profile} replied to the discussion %{discussion}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_group_activity_item.html.eex:19
+#: lib/web/templates/email/activity/_group_activity_item.text.eex:7
+msgid "%{profile} updated the group %{group}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_member_activity_item.html.eex:48
+#: lib/web/templates/email/activity/_member_activity_item.text.eex:33
+msgid "%{profile} updated the member %{member}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_event_activity_item.html.eex:4
+#: lib/web/templates/email/activity/_event_activity_item.text.eex:1
+msgid "The event %{event} was created by %{profile}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_event_activity_item.html.eex:34
+#: lib/web/templates/email/activity/_event_activity_item.text.eex:13
+msgid "The event %{event} was deleted by %{profile}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_event_activity_item.html.eex:19
+#: lib/web/templates/email/activity/_event_activity_item.text.eex:7
+msgid "The event %{event} was updated by %{profile}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_post_activity_item.html.eex:4
+#: lib/web/templates/email/activity/_post_activity_item.text.eex:1
+msgid "The post %{post} was created by %{profile}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_post_activity_item.html.eex:34
+#: lib/web/templates/email/activity/_post_activity_item.text.eex:13
+msgid "The post %{post} was deleted by %{profile}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_post_activity_item.html.eex:19
+#: lib/web/templates/email/activity/_post_activity_item.text.eex:7
+msgid "The post %{post} was updated by %{profile}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_member_activity_item.html.eex:33
+#: lib/web/templates/email/activity/_member_activity_item.text.eex:22
+msgid "%{member} joined the group."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_event_activity_item.html.eex:58
+#: lib/web/templates/email/activity/_event_activity_item.text.eex:25
+msgid "%{profile} posted a comment on the event %{event}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_event_activity_item.html.eex:43
+#: lib/web/templates/email/activity/_event_activity_item.text.eex:19
+msgid "%{profile} replied to a comment on the event %{event}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/email_direct_activity.html.eex:104
+#: lib/web/templates/email/email_direct_activity.text.eex:21
+msgid "Don't want to receive activity notifications? You may change frequency or disable them in your settings."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/email_direct_activity.html.eex:84
+#: lib/web/templates/email/email_direct_activity.text.eex:17
+msgid "View one more activity"
+msgid_plural "View %{count} more activities"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+msgstr[4] ""
+msgstr[5] ""
+
+#, elixir-format
+#: lib/web/templates/email/email_direct_activity.html.eex:38
+#: lib/web/templates/email/email_direct_activity.text.eex:4
+msgid "There has been an activity!"
+msgid_plural "There has been some activity!"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+msgstr[4] ""
+msgstr[5] ""
diff --git a/priv/gettext/ar/LC_MESSAGES/default.po b/priv/gettext/ar/LC_MESSAGES/default.po
index 276f1862..b3ecfb3e 100644
--- a/priv/gettext/ar/LC_MESSAGES/default.po
+++ b/priv/gettext/ar/LC_MESSAGES/default.po
@@ -1435,3 +1435,8 @@ msgstr ""
#: lib/service/export/feed.ex:73
msgid "Public feed for %{instance}"
msgstr ""
+
+#, elixir-format
+#: lib/web/email/activity.ex:25
+msgid "Activity notification for %{instance}"
+msgstr ""
diff --git a/priv/gettext/be/LC_MESSAGES/activity.po b/priv/gettext/be/LC_MESSAGES/activity.po
new file mode 100644
index 00000000..50607f40
--- /dev/null
+++ b/priv/gettext/be/LC_MESSAGES/activity.po
@@ -0,0 +1,233 @@
+## "msgid"s in this file come from POT (.pot) files.
+##
+## Do not add, change, or remove "msgid"s manually here as
+## they're tied to the ones in the corresponding POT file
+## (with the same domain).
+##
+## Use "mix gettext.extract --merge" or "mix gettext.merge"
+## to merge POT files into PO files.
+msgid ""
+msgstr ""
+"Language: be\n"
+"Plural-Forms: nplurals=3\n"
+
+#, elixir-format
+#: lib/web/templates/email/activity/_member_activity_item.html.eex:19
+#: lib/web/templates/email/activity/_member_activity_item.text.eex:12
+msgid "%{member} accepted the invitation to join the group."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_member_activity_item.html.eex:26
+#: lib/web/templates/email/activity/_member_activity_item.text.eex:17
+msgid "%{member} rejected the invitation to join the group."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_member_activity_item.html.eex:4
+#: lib/web/templates/email/activity/_member_activity_item.text.eex:1
+msgid "%{member} requested to join the group."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_member_activity_item.html.eex:11
+#: lib/web/templates/email/activity/_member_activity_item.text.eex:6
+msgid "%{member} was invited by %{profile}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_member_activity_item.html.eex:40
+#: lib/web/templates/email/activity/_member_activity_item.text.eex:27
+msgid "%{profile} added the member %{member}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_comment_activity_item.html.eex:49
+#: lib/web/templates/email/activity/_comment_activity_item.text.eex:19 lib/web/templates/email/activity/_discussion_activity_item.html.eex:46
+#: lib/web/templates/email/activity/_discussion_activity_item.text.eex:19
+msgid "%{profile} archived the discussion %{discussion}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_comment_activity_item.html.eex:4
+#: lib/web/templates/email/activity/_comment_activity_item.text.eex:1 lib/web/templates/email/activity/_discussion_activity_item.html.eex:4
+#: lib/web/templates/email/activity/_discussion_activity_item.text.eex:1
+msgid "%{profile} created the discussion %{discussion}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_resource_activity_item.html.eex:5
+#: lib/web/templates/email/activity/_resource_activity_item.text.eex:2
+msgid "%{profile} created the folder %{resource}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_group_activity_item.html.eex:4
+#: lib/web/templates/email/activity/_group_activity_item.text.eex:1
+msgid "%{profile} created the group %{group}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_resource_activity_item.html.eex:20
+#: lib/web/templates/email/activity/_resource_activity_item.text.eex:8
+msgid "%{profile} created the resource %{resource}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_comment_activity_item.html.eex:64
+#: lib/web/templates/email/activity/_comment_activity_item.text.eex:25 lib/web/templates/email/activity/_discussion_activity_item.html.eex:60
+#: lib/web/templates/email/activity/_discussion_activity_item.text.eex:25
+msgid "%{profile} deleted the discussion %{discussion}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_resource_activity_item.html.eex:103
+#: lib/web/templates/email/activity/_resource_activity_item.text.eex:40
+msgid "%{profile} deleted the folder %{resource}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_resource_activity_item.html.eex:111
+#: lib/web/templates/email/activity/_resource_activity_item.text.eex:45
+msgid "%{profile} deleted the resource %{resource}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_member_activity_item.html.eex:56
+#: lib/web/templates/email/activity/_member_activity_item.text.eex:39
+msgid "%{profile} excluded member %{member}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_resource_activity_item.html.eex:71
+#: lib/web/templates/email/activity/_resource_activity_item.text.eex:28
+msgid "%{profile} moved the folder %{resource}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_resource_activity_item.html.eex:86
+#: lib/web/templates/email/activity/_resource_activity_item.text.eex:34
+msgid "%{profile} moved the resource %{resource}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_member_activity_item.html.eex:64
+#: lib/web/templates/email/activity/_member_activity_item.text.eex:45
+msgid "%{profile} quit the group."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_comment_activity_item.html.eex:34
+#: lib/web/templates/email/activity/_comment_activity_item.text.eex:13 lib/web/templates/email/activity/_discussion_activity_item.html.eex:32
+#: lib/web/templates/email/activity/_discussion_activity_item.text.eex:13
+msgid "%{profile} renamed the discussion %{discussion}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_resource_activity_item.html.eex:37
+#: lib/web/templates/email/activity/_resource_activity_item.text.eex:14
+msgid "%{profile} renamed the folder from %{old_resource_title} to %{resource}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_resource_activity_item.html.eex:53
+#: lib/web/templates/email/activity/_resource_activity_item.text.eex:21
+msgid "%{profile} renamed the resource from %{old_resource_title} to %{resource}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_comment_activity_item.html.eex:19
+#: lib/web/templates/email/activity/_comment_activity_item.text.eex:7 lib/web/templates/email/activity/_discussion_activity_item.html.eex:18
+#: lib/web/templates/email/activity/_discussion_activity_item.text.eex:7
+msgid "%{profile} replied to the discussion %{discussion}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_group_activity_item.html.eex:19
+#: lib/web/templates/email/activity/_group_activity_item.text.eex:7
+msgid "%{profile} updated the group %{group}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_member_activity_item.html.eex:48
+#: lib/web/templates/email/activity/_member_activity_item.text.eex:33
+msgid "%{profile} updated the member %{member}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_event_activity_item.html.eex:4
+#: lib/web/templates/email/activity/_event_activity_item.text.eex:1
+msgid "The event %{event} was created by %{profile}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_event_activity_item.html.eex:34
+#: lib/web/templates/email/activity/_event_activity_item.text.eex:13
+msgid "The event %{event} was deleted by %{profile}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_event_activity_item.html.eex:19
+#: lib/web/templates/email/activity/_event_activity_item.text.eex:7
+msgid "The event %{event} was updated by %{profile}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_post_activity_item.html.eex:4
+#: lib/web/templates/email/activity/_post_activity_item.text.eex:1
+msgid "The post %{post} was created by %{profile}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_post_activity_item.html.eex:34
+#: lib/web/templates/email/activity/_post_activity_item.text.eex:13
+msgid "The post %{post} was deleted by %{profile}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_post_activity_item.html.eex:19
+#: lib/web/templates/email/activity/_post_activity_item.text.eex:7
+msgid "The post %{post} was updated by %{profile}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_member_activity_item.html.eex:33
+#: lib/web/templates/email/activity/_member_activity_item.text.eex:22
+msgid "%{member} joined the group."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_event_activity_item.html.eex:58
+#: lib/web/templates/email/activity/_event_activity_item.text.eex:25
+msgid "%{profile} posted a comment on the event %{event}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_event_activity_item.html.eex:43
+#: lib/web/templates/email/activity/_event_activity_item.text.eex:19
+msgid "%{profile} replied to a comment on the event %{event}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/email_direct_activity.html.eex:104
+#: lib/web/templates/email/email_direct_activity.text.eex:21
+msgid "Don't want to receive activity notifications? You may change frequency or disable them in your settings."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/email_direct_activity.html.eex:84
+#: lib/web/templates/email/email_direct_activity.text.eex:17
+msgid "View one more activity"
+msgid_plural "View %{count} more activities"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+
+#, elixir-format
+#: lib/web/templates/email/email_direct_activity.html.eex:38
+#: lib/web/templates/email/email_direct_activity.text.eex:4
+msgid "There has been an activity!"
+msgid_plural "There has been some activity!"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
diff --git a/priv/gettext/be/LC_MESSAGES/default.po b/priv/gettext/be/LC_MESSAGES/default.po
index 32160bf8..7fbe8896 100644
--- a/priv/gettext/be/LC_MESSAGES/default.po
+++ b/priv/gettext/be/LC_MESSAGES/default.po
@@ -1411,3 +1411,8 @@ msgstr ""
#: lib/service/export/feed.ex:73
msgid "Public feed for %{instance}"
msgstr ""
+
+#, elixir-format
+#: lib/web/email/activity.ex:25
+msgid "Activity notification for %{instance}"
+msgstr ""
diff --git a/priv/gettext/ca/LC_MESSAGES/activity.po b/priv/gettext/ca/LC_MESSAGES/activity.po
new file mode 100644
index 00000000..2dc7bf60
--- /dev/null
+++ b/priv/gettext/ca/LC_MESSAGES/activity.po
@@ -0,0 +1,231 @@
+## "msgid"s in this file come from POT (.pot) files.
+##
+## Do not add, change, or remove "msgid"s manually here as
+## they're tied to the ones in the corresponding POT file
+## (with the same domain).
+##
+## Use "mix gettext.extract --merge" or "mix gettext.merge"
+## to merge POT files into PO files.
+msgid ""
+msgstr ""
+"Language: ca\n"
+"Plural-Forms: nplurals=2\n"
+
+#, elixir-format
+#: lib/web/templates/email/activity/_member_activity_item.html.eex:19
+#: lib/web/templates/email/activity/_member_activity_item.text.eex:12
+msgid "%{member} accepted the invitation to join the group."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_member_activity_item.html.eex:26
+#: lib/web/templates/email/activity/_member_activity_item.text.eex:17
+msgid "%{member} rejected the invitation to join the group."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_member_activity_item.html.eex:4
+#: lib/web/templates/email/activity/_member_activity_item.text.eex:1
+msgid "%{member} requested to join the group."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_member_activity_item.html.eex:11
+#: lib/web/templates/email/activity/_member_activity_item.text.eex:6
+msgid "%{member} was invited by %{profile}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_member_activity_item.html.eex:40
+#: lib/web/templates/email/activity/_member_activity_item.text.eex:27
+msgid "%{profile} added the member %{member}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_comment_activity_item.html.eex:49
+#: lib/web/templates/email/activity/_comment_activity_item.text.eex:19 lib/web/templates/email/activity/_discussion_activity_item.html.eex:46
+#: lib/web/templates/email/activity/_discussion_activity_item.text.eex:19
+msgid "%{profile} archived the discussion %{discussion}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_comment_activity_item.html.eex:4
+#: lib/web/templates/email/activity/_comment_activity_item.text.eex:1 lib/web/templates/email/activity/_discussion_activity_item.html.eex:4
+#: lib/web/templates/email/activity/_discussion_activity_item.text.eex:1
+msgid "%{profile} created the discussion %{discussion}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_resource_activity_item.html.eex:5
+#: lib/web/templates/email/activity/_resource_activity_item.text.eex:2
+msgid "%{profile} created the folder %{resource}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_group_activity_item.html.eex:4
+#: lib/web/templates/email/activity/_group_activity_item.text.eex:1
+msgid "%{profile} created the group %{group}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_resource_activity_item.html.eex:20
+#: lib/web/templates/email/activity/_resource_activity_item.text.eex:8
+msgid "%{profile} created the resource %{resource}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_comment_activity_item.html.eex:64
+#: lib/web/templates/email/activity/_comment_activity_item.text.eex:25 lib/web/templates/email/activity/_discussion_activity_item.html.eex:60
+#: lib/web/templates/email/activity/_discussion_activity_item.text.eex:25
+msgid "%{profile} deleted the discussion %{discussion}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_resource_activity_item.html.eex:103
+#: lib/web/templates/email/activity/_resource_activity_item.text.eex:40
+msgid "%{profile} deleted the folder %{resource}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_resource_activity_item.html.eex:111
+#: lib/web/templates/email/activity/_resource_activity_item.text.eex:45
+msgid "%{profile} deleted the resource %{resource}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_member_activity_item.html.eex:56
+#: lib/web/templates/email/activity/_member_activity_item.text.eex:39
+msgid "%{profile} excluded member %{member}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_resource_activity_item.html.eex:71
+#: lib/web/templates/email/activity/_resource_activity_item.text.eex:28
+msgid "%{profile} moved the folder %{resource}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_resource_activity_item.html.eex:86
+#: lib/web/templates/email/activity/_resource_activity_item.text.eex:34
+msgid "%{profile} moved the resource %{resource}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_member_activity_item.html.eex:64
+#: lib/web/templates/email/activity/_member_activity_item.text.eex:45
+msgid "%{profile} quit the group."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_comment_activity_item.html.eex:34
+#: lib/web/templates/email/activity/_comment_activity_item.text.eex:13 lib/web/templates/email/activity/_discussion_activity_item.html.eex:32
+#: lib/web/templates/email/activity/_discussion_activity_item.text.eex:13
+msgid "%{profile} renamed the discussion %{discussion}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_resource_activity_item.html.eex:37
+#: lib/web/templates/email/activity/_resource_activity_item.text.eex:14
+msgid "%{profile} renamed the folder from %{old_resource_title} to %{resource}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_resource_activity_item.html.eex:53
+#: lib/web/templates/email/activity/_resource_activity_item.text.eex:21
+msgid "%{profile} renamed the resource from %{old_resource_title} to %{resource}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_comment_activity_item.html.eex:19
+#: lib/web/templates/email/activity/_comment_activity_item.text.eex:7 lib/web/templates/email/activity/_discussion_activity_item.html.eex:18
+#: lib/web/templates/email/activity/_discussion_activity_item.text.eex:7
+msgid "%{profile} replied to the discussion %{discussion}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_group_activity_item.html.eex:19
+#: lib/web/templates/email/activity/_group_activity_item.text.eex:7
+msgid "%{profile} updated the group %{group}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_member_activity_item.html.eex:48
+#: lib/web/templates/email/activity/_member_activity_item.text.eex:33
+msgid "%{profile} updated the member %{member}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_event_activity_item.html.eex:4
+#: lib/web/templates/email/activity/_event_activity_item.text.eex:1
+msgid "The event %{event} was created by %{profile}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_event_activity_item.html.eex:34
+#: lib/web/templates/email/activity/_event_activity_item.text.eex:13
+msgid "The event %{event} was deleted by %{profile}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_event_activity_item.html.eex:19
+#: lib/web/templates/email/activity/_event_activity_item.text.eex:7
+msgid "The event %{event} was updated by %{profile}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_post_activity_item.html.eex:4
+#: lib/web/templates/email/activity/_post_activity_item.text.eex:1
+msgid "The post %{post} was created by %{profile}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_post_activity_item.html.eex:34
+#: lib/web/templates/email/activity/_post_activity_item.text.eex:13
+msgid "The post %{post} was deleted by %{profile}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_post_activity_item.html.eex:19
+#: lib/web/templates/email/activity/_post_activity_item.text.eex:7
+msgid "The post %{post} was updated by %{profile}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_member_activity_item.html.eex:33
+#: lib/web/templates/email/activity/_member_activity_item.text.eex:22
+msgid "%{member} joined the group."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_event_activity_item.html.eex:58
+#: lib/web/templates/email/activity/_event_activity_item.text.eex:25
+msgid "%{profile} posted a comment on the event %{event}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_event_activity_item.html.eex:43
+#: lib/web/templates/email/activity/_event_activity_item.text.eex:19
+msgid "%{profile} replied to a comment on the event %{event}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/email_direct_activity.html.eex:104
+#: lib/web/templates/email/email_direct_activity.text.eex:21
+msgid "Don't want to receive activity notifications? You may change frequency or disable them in your settings."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/email_direct_activity.html.eex:84
+#: lib/web/templates/email/email_direct_activity.text.eex:17
+msgid "View one more activity"
+msgid_plural "View %{count} more activities"
+msgstr[0] ""
+msgstr[1] ""
+
+#, elixir-format
+#: lib/web/templates/email/email_direct_activity.html.eex:38
+#: lib/web/templates/email/email_direct_activity.text.eex:4
+msgid "There has been an activity!"
+msgid_plural "There has been some activity!"
+msgstr[0] ""
+msgstr[1] ""
diff --git a/priv/gettext/ca/LC_MESSAGES/default.po b/priv/gettext/ca/LC_MESSAGES/default.po
index bc7947db..18a7a9d9 100644
--- a/priv/gettext/ca/LC_MESSAGES/default.po
+++ b/priv/gettext/ca/LC_MESSAGES/default.po
@@ -1660,3 +1660,8 @@ msgstr "Sembla ser que el servidor de Mobilizon està temporalment inaccessible.
#: lib/service/export/feed.ex:73
msgid "Public feed for %{instance}"
msgstr ""
+
+#, elixir-format
+#: lib/web/email/activity.ex:25
+msgid "Activity notification for %{instance}"
+msgstr ""
diff --git a/priv/gettext/cs/LC_MESSAGES/activity.po b/priv/gettext/cs/LC_MESSAGES/activity.po
new file mode 100644
index 00000000..c1c41302
--- /dev/null
+++ b/priv/gettext/cs/LC_MESSAGES/activity.po
@@ -0,0 +1,233 @@
+## "msgid"s in this file come from POT (.pot) files.
+##
+## Do not add, change, or remove "msgid"s manually here as
+## they're tied to the ones in the corresponding POT file
+## (with the same domain).
+##
+## Use "mix gettext.extract --merge" or "mix gettext.merge"
+## to merge POT files into PO files.
+msgid ""
+msgstr ""
+"Language: cs\n"
+"Plural-Forms: nplurals=3\n"
+
+#, elixir-format
+#: lib/web/templates/email/activity/_member_activity_item.html.eex:19
+#: lib/web/templates/email/activity/_member_activity_item.text.eex:12
+msgid "%{member} accepted the invitation to join the group."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_member_activity_item.html.eex:26
+#: lib/web/templates/email/activity/_member_activity_item.text.eex:17
+msgid "%{member} rejected the invitation to join the group."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_member_activity_item.html.eex:4
+#: lib/web/templates/email/activity/_member_activity_item.text.eex:1
+msgid "%{member} requested to join the group."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_member_activity_item.html.eex:11
+#: lib/web/templates/email/activity/_member_activity_item.text.eex:6
+msgid "%{member} was invited by %{profile}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_member_activity_item.html.eex:40
+#: lib/web/templates/email/activity/_member_activity_item.text.eex:27
+msgid "%{profile} added the member %{member}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_comment_activity_item.html.eex:49
+#: lib/web/templates/email/activity/_comment_activity_item.text.eex:19 lib/web/templates/email/activity/_discussion_activity_item.html.eex:46
+#: lib/web/templates/email/activity/_discussion_activity_item.text.eex:19
+msgid "%{profile} archived the discussion %{discussion}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_comment_activity_item.html.eex:4
+#: lib/web/templates/email/activity/_comment_activity_item.text.eex:1 lib/web/templates/email/activity/_discussion_activity_item.html.eex:4
+#: lib/web/templates/email/activity/_discussion_activity_item.text.eex:1
+msgid "%{profile} created the discussion %{discussion}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_resource_activity_item.html.eex:5
+#: lib/web/templates/email/activity/_resource_activity_item.text.eex:2
+msgid "%{profile} created the folder %{resource}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_group_activity_item.html.eex:4
+#: lib/web/templates/email/activity/_group_activity_item.text.eex:1
+msgid "%{profile} created the group %{group}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_resource_activity_item.html.eex:20
+#: lib/web/templates/email/activity/_resource_activity_item.text.eex:8
+msgid "%{profile} created the resource %{resource}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_comment_activity_item.html.eex:64
+#: lib/web/templates/email/activity/_comment_activity_item.text.eex:25 lib/web/templates/email/activity/_discussion_activity_item.html.eex:60
+#: lib/web/templates/email/activity/_discussion_activity_item.text.eex:25
+msgid "%{profile} deleted the discussion %{discussion}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_resource_activity_item.html.eex:103
+#: lib/web/templates/email/activity/_resource_activity_item.text.eex:40
+msgid "%{profile} deleted the folder %{resource}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_resource_activity_item.html.eex:111
+#: lib/web/templates/email/activity/_resource_activity_item.text.eex:45
+msgid "%{profile} deleted the resource %{resource}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_member_activity_item.html.eex:56
+#: lib/web/templates/email/activity/_member_activity_item.text.eex:39
+msgid "%{profile} excluded member %{member}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_resource_activity_item.html.eex:71
+#: lib/web/templates/email/activity/_resource_activity_item.text.eex:28
+msgid "%{profile} moved the folder %{resource}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_resource_activity_item.html.eex:86
+#: lib/web/templates/email/activity/_resource_activity_item.text.eex:34
+msgid "%{profile} moved the resource %{resource}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_member_activity_item.html.eex:64
+#: lib/web/templates/email/activity/_member_activity_item.text.eex:45
+msgid "%{profile} quit the group."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_comment_activity_item.html.eex:34
+#: lib/web/templates/email/activity/_comment_activity_item.text.eex:13 lib/web/templates/email/activity/_discussion_activity_item.html.eex:32
+#: lib/web/templates/email/activity/_discussion_activity_item.text.eex:13
+msgid "%{profile} renamed the discussion %{discussion}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_resource_activity_item.html.eex:37
+#: lib/web/templates/email/activity/_resource_activity_item.text.eex:14
+msgid "%{profile} renamed the folder from %{old_resource_title} to %{resource}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_resource_activity_item.html.eex:53
+#: lib/web/templates/email/activity/_resource_activity_item.text.eex:21
+msgid "%{profile} renamed the resource from %{old_resource_title} to %{resource}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_comment_activity_item.html.eex:19
+#: lib/web/templates/email/activity/_comment_activity_item.text.eex:7 lib/web/templates/email/activity/_discussion_activity_item.html.eex:18
+#: lib/web/templates/email/activity/_discussion_activity_item.text.eex:7
+msgid "%{profile} replied to the discussion %{discussion}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_group_activity_item.html.eex:19
+#: lib/web/templates/email/activity/_group_activity_item.text.eex:7
+msgid "%{profile} updated the group %{group}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_member_activity_item.html.eex:48
+#: lib/web/templates/email/activity/_member_activity_item.text.eex:33
+msgid "%{profile} updated the member %{member}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_event_activity_item.html.eex:4
+#: lib/web/templates/email/activity/_event_activity_item.text.eex:1
+msgid "The event %{event} was created by %{profile}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_event_activity_item.html.eex:34
+#: lib/web/templates/email/activity/_event_activity_item.text.eex:13
+msgid "The event %{event} was deleted by %{profile}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_event_activity_item.html.eex:19
+#: lib/web/templates/email/activity/_event_activity_item.text.eex:7
+msgid "The event %{event} was updated by %{profile}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_post_activity_item.html.eex:4
+#: lib/web/templates/email/activity/_post_activity_item.text.eex:1
+msgid "The post %{post} was created by %{profile}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_post_activity_item.html.eex:34
+#: lib/web/templates/email/activity/_post_activity_item.text.eex:13
+msgid "The post %{post} was deleted by %{profile}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_post_activity_item.html.eex:19
+#: lib/web/templates/email/activity/_post_activity_item.text.eex:7
+msgid "The post %{post} was updated by %{profile}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_member_activity_item.html.eex:33
+#: lib/web/templates/email/activity/_member_activity_item.text.eex:22
+msgid "%{member} joined the group."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_event_activity_item.html.eex:58
+#: lib/web/templates/email/activity/_event_activity_item.text.eex:25
+msgid "%{profile} posted a comment on the event %{event}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_event_activity_item.html.eex:43
+#: lib/web/templates/email/activity/_event_activity_item.text.eex:19
+msgid "%{profile} replied to a comment on the event %{event}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/email_direct_activity.html.eex:104
+#: lib/web/templates/email/email_direct_activity.text.eex:21
+msgid "Don't want to receive activity notifications? You may change frequency or disable them in your settings."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/email_direct_activity.html.eex:84
+#: lib/web/templates/email/email_direct_activity.text.eex:17
+msgid "View one more activity"
+msgid_plural "View %{count} more activities"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+
+#, elixir-format
+#: lib/web/templates/email/email_direct_activity.html.eex:38
+#: lib/web/templates/email/email_direct_activity.text.eex:4
+msgid "There has been an activity!"
+msgid_plural "There has been some activity!"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
diff --git a/priv/gettext/cs/LC_MESSAGES/default.po b/priv/gettext/cs/LC_MESSAGES/default.po
index a6d7d033..be19692f 100644
--- a/priv/gettext/cs/LC_MESSAGES/default.po
+++ b/priv/gettext/cs/LC_MESSAGES/default.po
@@ -1411,3 +1411,8 @@ msgstr ""
#: lib/service/export/feed.ex:73
msgid "Public feed for %{instance}"
msgstr ""
+
+#, elixir-format
+#: lib/web/email/activity.ex:25
+msgid "Activity notification for %{instance}"
+msgstr ""
diff --git a/priv/gettext/de/LC_MESSAGES/activity.po b/priv/gettext/de/LC_MESSAGES/activity.po
new file mode 100644
index 00000000..83419e27
--- /dev/null
+++ b/priv/gettext/de/LC_MESSAGES/activity.po
@@ -0,0 +1,231 @@
+## "msgid"s in this file come from POT (.pot) files.
+##
+## Do not add, change, or remove "msgid"s manually here as
+## they're tied to the ones in the corresponding POT file
+## (with the same domain).
+##
+## Use "mix gettext.extract --merge" or "mix gettext.merge"
+## to merge POT files into PO files.
+msgid ""
+msgstr ""
+"Language: de\n"
+"Plural-Forms: nplurals=2\n"
+
+#, elixir-format
+#: lib/web/templates/email/activity/_member_activity_item.html.eex:19
+#: lib/web/templates/email/activity/_member_activity_item.text.eex:12
+msgid "%{member} accepted the invitation to join the group."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_member_activity_item.html.eex:26
+#: lib/web/templates/email/activity/_member_activity_item.text.eex:17
+msgid "%{member} rejected the invitation to join the group."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_member_activity_item.html.eex:4
+#: lib/web/templates/email/activity/_member_activity_item.text.eex:1
+msgid "%{member} requested to join the group."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_member_activity_item.html.eex:11
+#: lib/web/templates/email/activity/_member_activity_item.text.eex:6
+msgid "%{member} was invited by %{profile}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_member_activity_item.html.eex:40
+#: lib/web/templates/email/activity/_member_activity_item.text.eex:27
+msgid "%{profile} added the member %{member}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_comment_activity_item.html.eex:49
+#: lib/web/templates/email/activity/_comment_activity_item.text.eex:19 lib/web/templates/email/activity/_discussion_activity_item.html.eex:46
+#: lib/web/templates/email/activity/_discussion_activity_item.text.eex:19
+msgid "%{profile} archived the discussion %{discussion}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_comment_activity_item.html.eex:4
+#: lib/web/templates/email/activity/_comment_activity_item.text.eex:1 lib/web/templates/email/activity/_discussion_activity_item.html.eex:4
+#: lib/web/templates/email/activity/_discussion_activity_item.text.eex:1
+msgid "%{profile} created the discussion %{discussion}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_resource_activity_item.html.eex:5
+#: lib/web/templates/email/activity/_resource_activity_item.text.eex:2
+msgid "%{profile} created the folder %{resource}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_group_activity_item.html.eex:4
+#: lib/web/templates/email/activity/_group_activity_item.text.eex:1
+msgid "%{profile} created the group %{group}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_resource_activity_item.html.eex:20
+#: lib/web/templates/email/activity/_resource_activity_item.text.eex:8
+msgid "%{profile} created the resource %{resource}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_comment_activity_item.html.eex:64
+#: lib/web/templates/email/activity/_comment_activity_item.text.eex:25 lib/web/templates/email/activity/_discussion_activity_item.html.eex:60
+#: lib/web/templates/email/activity/_discussion_activity_item.text.eex:25
+msgid "%{profile} deleted the discussion %{discussion}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_resource_activity_item.html.eex:103
+#: lib/web/templates/email/activity/_resource_activity_item.text.eex:40
+msgid "%{profile} deleted the folder %{resource}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_resource_activity_item.html.eex:111
+#: lib/web/templates/email/activity/_resource_activity_item.text.eex:45
+msgid "%{profile} deleted the resource %{resource}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_member_activity_item.html.eex:56
+#: lib/web/templates/email/activity/_member_activity_item.text.eex:39
+msgid "%{profile} excluded member %{member}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_resource_activity_item.html.eex:71
+#: lib/web/templates/email/activity/_resource_activity_item.text.eex:28
+msgid "%{profile} moved the folder %{resource}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_resource_activity_item.html.eex:86
+#: lib/web/templates/email/activity/_resource_activity_item.text.eex:34
+msgid "%{profile} moved the resource %{resource}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_member_activity_item.html.eex:64
+#: lib/web/templates/email/activity/_member_activity_item.text.eex:45
+msgid "%{profile} quit the group."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_comment_activity_item.html.eex:34
+#: lib/web/templates/email/activity/_comment_activity_item.text.eex:13 lib/web/templates/email/activity/_discussion_activity_item.html.eex:32
+#: lib/web/templates/email/activity/_discussion_activity_item.text.eex:13
+msgid "%{profile} renamed the discussion %{discussion}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_resource_activity_item.html.eex:37
+#: lib/web/templates/email/activity/_resource_activity_item.text.eex:14
+msgid "%{profile} renamed the folder from %{old_resource_title} to %{resource}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_resource_activity_item.html.eex:53
+#: lib/web/templates/email/activity/_resource_activity_item.text.eex:21
+msgid "%{profile} renamed the resource from %{old_resource_title} to %{resource}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_comment_activity_item.html.eex:19
+#: lib/web/templates/email/activity/_comment_activity_item.text.eex:7 lib/web/templates/email/activity/_discussion_activity_item.html.eex:18
+#: lib/web/templates/email/activity/_discussion_activity_item.text.eex:7
+msgid "%{profile} replied to the discussion %{discussion}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_group_activity_item.html.eex:19
+#: lib/web/templates/email/activity/_group_activity_item.text.eex:7
+msgid "%{profile} updated the group %{group}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_member_activity_item.html.eex:48
+#: lib/web/templates/email/activity/_member_activity_item.text.eex:33
+msgid "%{profile} updated the member %{member}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_event_activity_item.html.eex:4
+#: lib/web/templates/email/activity/_event_activity_item.text.eex:1
+msgid "The event %{event} was created by %{profile}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_event_activity_item.html.eex:34
+#: lib/web/templates/email/activity/_event_activity_item.text.eex:13
+msgid "The event %{event} was deleted by %{profile}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_event_activity_item.html.eex:19
+#: lib/web/templates/email/activity/_event_activity_item.text.eex:7
+msgid "The event %{event} was updated by %{profile}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_post_activity_item.html.eex:4
+#: lib/web/templates/email/activity/_post_activity_item.text.eex:1
+msgid "The post %{post} was created by %{profile}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_post_activity_item.html.eex:34
+#: lib/web/templates/email/activity/_post_activity_item.text.eex:13
+msgid "The post %{post} was deleted by %{profile}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_post_activity_item.html.eex:19
+#: lib/web/templates/email/activity/_post_activity_item.text.eex:7
+msgid "The post %{post} was updated by %{profile}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_member_activity_item.html.eex:33
+#: lib/web/templates/email/activity/_member_activity_item.text.eex:22
+msgid "%{member} joined the group."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_event_activity_item.html.eex:58
+#: lib/web/templates/email/activity/_event_activity_item.text.eex:25
+msgid "%{profile} posted a comment on the event %{event}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_event_activity_item.html.eex:43
+#: lib/web/templates/email/activity/_event_activity_item.text.eex:19
+msgid "%{profile} replied to a comment on the event %{event}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/email_direct_activity.html.eex:104
+#: lib/web/templates/email/email_direct_activity.text.eex:21
+msgid "Don't want to receive activity notifications? You may change frequency or disable them in your settings."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/email_direct_activity.html.eex:84
+#: lib/web/templates/email/email_direct_activity.text.eex:17
+msgid "View one more activity"
+msgid_plural "View %{count} more activities"
+msgstr[0] ""
+msgstr[1] ""
+
+#, elixir-format
+#: lib/web/templates/email/email_direct_activity.html.eex:38
+#: lib/web/templates/email/email_direct_activity.text.eex:4
+msgid "There has been an activity!"
+msgid_plural "There has been some activity!"
+msgstr[0] ""
+msgstr[1] ""
diff --git a/priv/gettext/de/LC_MESSAGES/default.po b/priv/gettext/de/LC_MESSAGES/default.po
index f16635ce..78ae91b9 100644
--- a/priv/gettext/de/LC_MESSAGES/default.po
+++ b/priv/gettext/de/LC_MESSAGES/default.po
@@ -1775,3 +1775,8 @@ msgstr ""
#: lib/service/export/feed.ex:73
msgid "Public feed for %{instance}"
msgstr ""
+
+#, elixir-format
+#: lib/web/email/activity.ex:25
+msgid "Activity notification for %{instance}"
+msgstr ""
diff --git a/priv/gettext/default.pot b/priv/gettext/default.pot
index 25056224..9f2091da 100644
--- a/priv/gettext/default.pot
+++ b/priv/gettext/default.pot
@@ -1390,3 +1390,8 @@ msgstr ""
#: lib/service/export/feed.ex:73
msgid "Public feed for %{instance}"
msgstr ""
+
+#, elixir-format
+#: lib/web/email/activity.ex:25
+msgid "Activity notification for %{instance}"
+msgstr ""
diff --git a/priv/gettext/en/LC_MESSAGES/activity.po b/priv/gettext/en/LC_MESSAGES/activity.po
new file mode 100644
index 00000000..55bd8a9b
--- /dev/null
+++ b/priv/gettext/en/LC_MESSAGES/activity.po
@@ -0,0 +1,231 @@
+## "msgid"s in this file come from POT (.pot) files.
+##
+## Do not add, change, or remove "msgid"s manually here as
+## they're tied to the ones in the corresponding POT file
+## (with the same domain).
+##
+## Use "mix gettext.extract --merge" or "mix gettext.merge"
+## to merge POT files into PO files.
+msgid ""
+msgstr ""
+"Language: en\n"
+"Plural-Forms: nplurals=2\n"
+
+#, elixir-format
+#: lib/web/templates/email/activity/_member_activity_item.html.eex:19
+#: lib/web/templates/email/activity/_member_activity_item.text.eex:12
+msgid "%{member} accepted the invitation to join the group."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_member_activity_item.html.eex:26
+#: lib/web/templates/email/activity/_member_activity_item.text.eex:17
+msgid "%{member} rejected the invitation to join the group."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_member_activity_item.html.eex:4
+#: lib/web/templates/email/activity/_member_activity_item.text.eex:1
+msgid "%{member} requested to join the group."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_member_activity_item.html.eex:11
+#: lib/web/templates/email/activity/_member_activity_item.text.eex:6
+msgid "%{member} was invited by %{profile}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_member_activity_item.html.eex:40
+#: lib/web/templates/email/activity/_member_activity_item.text.eex:27
+msgid "%{profile} added the member %{member}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_comment_activity_item.html.eex:49
+#: lib/web/templates/email/activity/_comment_activity_item.text.eex:19 lib/web/templates/email/activity/_discussion_activity_item.html.eex:46
+#: lib/web/templates/email/activity/_discussion_activity_item.text.eex:19
+msgid "%{profile} archived the discussion %{discussion}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_comment_activity_item.html.eex:4
+#: lib/web/templates/email/activity/_comment_activity_item.text.eex:1 lib/web/templates/email/activity/_discussion_activity_item.html.eex:4
+#: lib/web/templates/email/activity/_discussion_activity_item.text.eex:1
+msgid "%{profile} created the discussion %{discussion}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_resource_activity_item.html.eex:5
+#: lib/web/templates/email/activity/_resource_activity_item.text.eex:2
+msgid "%{profile} created the folder %{resource}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_group_activity_item.html.eex:4
+#: lib/web/templates/email/activity/_group_activity_item.text.eex:1
+msgid "%{profile} created the group %{group}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_resource_activity_item.html.eex:20
+#: lib/web/templates/email/activity/_resource_activity_item.text.eex:8
+msgid "%{profile} created the resource %{resource}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_comment_activity_item.html.eex:64
+#: lib/web/templates/email/activity/_comment_activity_item.text.eex:25 lib/web/templates/email/activity/_discussion_activity_item.html.eex:60
+#: lib/web/templates/email/activity/_discussion_activity_item.text.eex:25
+msgid "%{profile} deleted the discussion %{discussion}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_resource_activity_item.html.eex:103
+#: lib/web/templates/email/activity/_resource_activity_item.text.eex:40
+msgid "%{profile} deleted the folder %{resource}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_resource_activity_item.html.eex:111
+#: lib/web/templates/email/activity/_resource_activity_item.text.eex:45
+msgid "%{profile} deleted the resource %{resource}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_member_activity_item.html.eex:56
+#: lib/web/templates/email/activity/_member_activity_item.text.eex:39
+msgid "%{profile} excluded member %{member}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_resource_activity_item.html.eex:71
+#: lib/web/templates/email/activity/_resource_activity_item.text.eex:28
+msgid "%{profile} moved the folder %{resource}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_resource_activity_item.html.eex:86
+#: lib/web/templates/email/activity/_resource_activity_item.text.eex:34
+msgid "%{profile} moved the resource %{resource}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_member_activity_item.html.eex:64
+#: lib/web/templates/email/activity/_member_activity_item.text.eex:45
+msgid "%{profile} quit the group."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_comment_activity_item.html.eex:34
+#: lib/web/templates/email/activity/_comment_activity_item.text.eex:13 lib/web/templates/email/activity/_discussion_activity_item.html.eex:32
+#: lib/web/templates/email/activity/_discussion_activity_item.text.eex:13
+msgid "%{profile} renamed the discussion %{discussion}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_resource_activity_item.html.eex:37
+#: lib/web/templates/email/activity/_resource_activity_item.text.eex:14
+msgid "%{profile} renamed the folder from %{old_resource_title} to %{resource}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_resource_activity_item.html.eex:53
+#: lib/web/templates/email/activity/_resource_activity_item.text.eex:21
+msgid "%{profile} renamed the resource from %{old_resource_title} to %{resource}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_comment_activity_item.html.eex:19
+#: lib/web/templates/email/activity/_comment_activity_item.text.eex:7 lib/web/templates/email/activity/_discussion_activity_item.html.eex:18
+#: lib/web/templates/email/activity/_discussion_activity_item.text.eex:7
+msgid "%{profile} replied to the discussion %{discussion}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_group_activity_item.html.eex:19
+#: lib/web/templates/email/activity/_group_activity_item.text.eex:7
+msgid "%{profile} updated the group %{group}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_member_activity_item.html.eex:48
+#: lib/web/templates/email/activity/_member_activity_item.text.eex:33
+msgid "%{profile} updated the member %{member}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_event_activity_item.html.eex:4
+#: lib/web/templates/email/activity/_event_activity_item.text.eex:1
+msgid "The event %{event} was created by %{profile}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_event_activity_item.html.eex:34
+#: lib/web/templates/email/activity/_event_activity_item.text.eex:13
+msgid "The event %{event} was deleted by %{profile}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_event_activity_item.html.eex:19
+#: lib/web/templates/email/activity/_event_activity_item.text.eex:7
+msgid "The event %{event} was updated by %{profile}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_post_activity_item.html.eex:4
+#: lib/web/templates/email/activity/_post_activity_item.text.eex:1
+msgid "The post %{post} was created by %{profile}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_post_activity_item.html.eex:34
+#: lib/web/templates/email/activity/_post_activity_item.text.eex:13
+msgid "The post %{post} was deleted by %{profile}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_post_activity_item.html.eex:19
+#: lib/web/templates/email/activity/_post_activity_item.text.eex:7
+msgid "The post %{post} was updated by %{profile}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_member_activity_item.html.eex:33
+#: lib/web/templates/email/activity/_member_activity_item.text.eex:22
+msgid "%{member} joined the group."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_event_activity_item.html.eex:58
+#: lib/web/templates/email/activity/_event_activity_item.text.eex:25
+msgid "%{profile} posted a comment on the event %{event}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_event_activity_item.html.eex:43
+#: lib/web/templates/email/activity/_event_activity_item.text.eex:19
+msgid "%{profile} replied to a comment on the event %{event}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/email_direct_activity.html.eex:104
+#: lib/web/templates/email/email_direct_activity.text.eex:21
+msgid "Don't want to receive activity notifications? You may change frequency or disable them in your settings."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/email_direct_activity.html.eex:84
+#: lib/web/templates/email/email_direct_activity.text.eex:17
+msgid "View one more activity"
+msgid_plural "View %{count} more activities"
+msgstr[0] ""
+msgstr[1] ""
+
+#, elixir-format
+#: lib/web/templates/email/email_direct_activity.html.eex:38
+#: lib/web/templates/email/email_direct_activity.text.eex:4
+msgid "There has been an activity!"
+msgid_plural "There has been some activity!"
+msgstr[0] ""
+msgstr[1] ""
diff --git a/priv/gettext/en/LC_MESSAGES/default.po b/priv/gettext/en/LC_MESSAGES/default.po
index 1f9fda35..c4cd0226 100644
--- a/priv/gettext/en/LC_MESSAGES/default.po
+++ b/priv/gettext/en/LC_MESSAGES/default.po
@@ -1443,3 +1443,8 @@ msgstr ""
#: lib/service/export/feed.ex:73
msgid "Public feed for %{instance}"
msgstr ""
+
+#, elixir-format
+#: lib/web/email/activity.ex:25
+msgid "Activity notification for %{instance}"
+msgstr ""
diff --git a/priv/gettext/es/LC_MESSAGES/activity.po b/priv/gettext/es/LC_MESSAGES/activity.po
new file mode 100644
index 00000000..3f423fc8
--- /dev/null
+++ b/priv/gettext/es/LC_MESSAGES/activity.po
@@ -0,0 +1,231 @@
+## "msgid"s in this file come from POT (.pot) files.
+##
+## Do not add, change, or remove "msgid"s manually here as
+## they're tied to the ones in the corresponding POT file
+## (with the same domain).
+##
+## Use "mix gettext.extract --merge" or "mix gettext.merge"
+## to merge POT files into PO files.
+msgid ""
+msgstr ""
+"Language: es\n"
+"Plural-Forms: nplurals=2\n"
+
+#, elixir-format
+#: lib/web/templates/email/activity/_member_activity_item.html.eex:19
+#: lib/web/templates/email/activity/_member_activity_item.text.eex:12
+msgid "%{member} accepted the invitation to join the group."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_member_activity_item.html.eex:26
+#: lib/web/templates/email/activity/_member_activity_item.text.eex:17
+msgid "%{member} rejected the invitation to join the group."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_member_activity_item.html.eex:4
+#: lib/web/templates/email/activity/_member_activity_item.text.eex:1
+msgid "%{member} requested to join the group."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_member_activity_item.html.eex:11
+#: lib/web/templates/email/activity/_member_activity_item.text.eex:6
+msgid "%{member} was invited by %{profile}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_member_activity_item.html.eex:40
+#: lib/web/templates/email/activity/_member_activity_item.text.eex:27
+msgid "%{profile} added the member %{member}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_comment_activity_item.html.eex:49
+#: lib/web/templates/email/activity/_comment_activity_item.text.eex:19 lib/web/templates/email/activity/_discussion_activity_item.html.eex:46
+#: lib/web/templates/email/activity/_discussion_activity_item.text.eex:19
+msgid "%{profile} archived the discussion %{discussion}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_comment_activity_item.html.eex:4
+#: lib/web/templates/email/activity/_comment_activity_item.text.eex:1 lib/web/templates/email/activity/_discussion_activity_item.html.eex:4
+#: lib/web/templates/email/activity/_discussion_activity_item.text.eex:1
+msgid "%{profile} created the discussion %{discussion}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_resource_activity_item.html.eex:5
+#: lib/web/templates/email/activity/_resource_activity_item.text.eex:2
+msgid "%{profile} created the folder %{resource}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_group_activity_item.html.eex:4
+#: lib/web/templates/email/activity/_group_activity_item.text.eex:1
+msgid "%{profile} created the group %{group}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_resource_activity_item.html.eex:20
+#: lib/web/templates/email/activity/_resource_activity_item.text.eex:8
+msgid "%{profile} created the resource %{resource}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_comment_activity_item.html.eex:64
+#: lib/web/templates/email/activity/_comment_activity_item.text.eex:25 lib/web/templates/email/activity/_discussion_activity_item.html.eex:60
+#: lib/web/templates/email/activity/_discussion_activity_item.text.eex:25
+msgid "%{profile} deleted the discussion %{discussion}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_resource_activity_item.html.eex:103
+#: lib/web/templates/email/activity/_resource_activity_item.text.eex:40
+msgid "%{profile} deleted the folder %{resource}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_resource_activity_item.html.eex:111
+#: lib/web/templates/email/activity/_resource_activity_item.text.eex:45
+msgid "%{profile} deleted the resource %{resource}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_member_activity_item.html.eex:56
+#: lib/web/templates/email/activity/_member_activity_item.text.eex:39
+msgid "%{profile} excluded member %{member}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_resource_activity_item.html.eex:71
+#: lib/web/templates/email/activity/_resource_activity_item.text.eex:28
+msgid "%{profile} moved the folder %{resource}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_resource_activity_item.html.eex:86
+#: lib/web/templates/email/activity/_resource_activity_item.text.eex:34
+msgid "%{profile} moved the resource %{resource}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_member_activity_item.html.eex:64
+#: lib/web/templates/email/activity/_member_activity_item.text.eex:45
+msgid "%{profile} quit the group."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_comment_activity_item.html.eex:34
+#: lib/web/templates/email/activity/_comment_activity_item.text.eex:13 lib/web/templates/email/activity/_discussion_activity_item.html.eex:32
+#: lib/web/templates/email/activity/_discussion_activity_item.text.eex:13
+msgid "%{profile} renamed the discussion %{discussion}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_resource_activity_item.html.eex:37
+#: lib/web/templates/email/activity/_resource_activity_item.text.eex:14
+msgid "%{profile} renamed the folder from %{old_resource_title} to %{resource}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_resource_activity_item.html.eex:53
+#: lib/web/templates/email/activity/_resource_activity_item.text.eex:21
+msgid "%{profile} renamed the resource from %{old_resource_title} to %{resource}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_comment_activity_item.html.eex:19
+#: lib/web/templates/email/activity/_comment_activity_item.text.eex:7 lib/web/templates/email/activity/_discussion_activity_item.html.eex:18
+#: lib/web/templates/email/activity/_discussion_activity_item.text.eex:7
+msgid "%{profile} replied to the discussion %{discussion}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_group_activity_item.html.eex:19
+#: lib/web/templates/email/activity/_group_activity_item.text.eex:7
+msgid "%{profile} updated the group %{group}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_member_activity_item.html.eex:48
+#: lib/web/templates/email/activity/_member_activity_item.text.eex:33
+msgid "%{profile} updated the member %{member}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_event_activity_item.html.eex:4
+#: lib/web/templates/email/activity/_event_activity_item.text.eex:1
+msgid "The event %{event} was created by %{profile}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_event_activity_item.html.eex:34
+#: lib/web/templates/email/activity/_event_activity_item.text.eex:13
+msgid "The event %{event} was deleted by %{profile}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_event_activity_item.html.eex:19
+#: lib/web/templates/email/activity/_event_activity_item.text.eex:7
+msgid "The event %{event} was updated by %{profile}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_post_activity_item.html.eex:4
+#: lib/web/templates/email/activity/_post_activity_item.text.eex:1
+msgid "The post %{post} was created by %{profile}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_post_activity_item.html.eex:34
+#: lib/web/templates/email/activity/_post_activity_item.text.eex:13
+msgid "The post %{post} was deleted by %{profile}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_post_activity_item.html.eex:19
+#: lib/web/templates/email/activity/_post_activity_item.text.eex:7
+msgid "The post %{post} was updated by %{profile}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_member_activity_item.html.eex:33
+#: lib/web/templates/email/activity/_member_activity_item.text.eex:22
+msgid "%{member} joined the group."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_event_activity_item.html.eex:58
+#: lib/web/templates/email/activity/_event_activity_item.text.eex:25
+msgid "%{profile} posted a comment on the event %{event}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/activity/_event_activity_item.html.eex:43
+#: lib/web/templates/email/activity/_event_activity_item.text.eex:19
+msgid "%{profile} replied to a comment on the event %{event}."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/email_direct_activity.html.eex:104
+#: lib/web/templates/email/email_direct_activity.text.eex:21
+msgid "Don't want to receive activity notifications? You may change frequency or disable them in your settings."
+msgstr ""
+
+#, elixir-format
+#: lib/web/templates/email/email_direct_activity.html.eex:84
+#: lib/web/templates/email/email_direct_activity.text.eex:17
+msgid "View one more activity"
+msgid_plural "View %{count} more activities"
+msgstr[0] ""
+msgstr[1] ""
+
+#, elixir-format
+#: lib/web/templates/email/email_direct_activity.html.eex:38
+#: lib/web/templates/email/email_direct_activity.text.eex:4
+msgid "There has been an activity!"
+msgid_plural "There has been some activity!"
+msgstr[0] ""
+msgstr[1] ""
diff --git a/priv/gettext/es/LC_MESSAGES/default.po b/priv/gettext/es/LC_MESSAGES/default.po
index 58210c71..c9fe5ec2 100644
--- a/priv/gettext/es/LC_MESSAGES/default.po
+++ b/priv/gettext/es/LC_MESSAGES/default.po
@@ -14,267 +14,267 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.6\n"
-#: lib/web/templates/email/password_reset.html.eex:48
#, elixir-format
+#: lib/web/templates/email/password_reset.html.eex:48
msgid "If you didn't request this, please ignore this email. Your password won't change until you access the link below and create a new one."
msgstr ""
"Si no solicitaste este correo, simplemente ignóralo. Su contraseña no "
"cambiará al menos que use el siguiente enlace para crear una nueva."
-#: lib/web/templates/email/report.html.eex:74
#, elixir-format
+#: lib/web/templates/email/report.html.eex:74
msgid "%{title} by %{creator}"
msgstr "%{title} por %{creator}"
-#: lib/web/templates/email/registration_confirmation.html.eex:58
#, elixir-format
+#: lib/web/templates/email/registration_confirmation.html.eex:58
msgid "Activate my account"
msgstr "Activar mi cuenta"
+#, elixir-format
#: lib/web/templates/email/email.html.eex:117
#: lib/web/templates/email/email.text.eex:9
-#, elixir-format
msgid "Ask the community on Framacolibri"
msgstr "Preguntar a la comunidad en framacolibri"
-#: lib/web/templates/email/report.text.eex:15
#, elixir-format
+#: lib/web/templates/email/report.text.eex:15
msgid "Comments"
msgstr "Comentarios"
+#, elixir-format
#: lib/web/templates/email/report.html.eex:72
#: lib/web/templates/email/report.text.eex:11
-#, elixir-format
msgid "Event"
msgstr "Evento"
-#: lib/web/email/user.ex:48
#, elixir-format
+#: lib/web/email/user.ex:48
msgid "Instructions to reset your password on %{instance}"
msgstr "Instrucciones para restablecer su contraseña en %{instance}"
-#: lib/web/templates/email/report.text.eex:21
#, elixir-format
+#: lib/web/templates/email/report.text.eex:21
msgid "Reason"
msgstr "Razón"
-#: lib/web/templates/email/password_reset.html.eex:61
#, elixir-format
+#: lib/web/templates/email/password_reset.html.eex:61
msgid "Reset Password"
msgstr "Restablecer la contraseña"
-#: lib/web/templates/email/password_reset.html.eex:41
#, elixir-format
+#: lib/web/templates/email/password_reset.html.eex:41
msgid "Resetting your password is easy. Just press the button below and follow the instructions. We'll have you up and running in no time."
msgstr ""
"Restablecer tu contraseña es fácil. Simplemente presione el botón y siga las "
"instrucciones. Te tendremos en funcionamiento en poco tiempo."
-#: lib/web/email/user.ex:28
#, elixir-format
+#: lib/web/email/user.ex:28
msgid "Instructions to confirm your Mobilizon account on %{instance}"
msgstr "Instrucciones para confirmar su cuenta Mobilizon en %{instance}"
-#: lib/web/email/admin.ex:24
#, elixir-format
+#: lib/web/email/admin.ex:24
msgid "New report on Mobilizon instance %{instance}"
msgstr "Nuevo informe sobre la instancia Mobilizon %{instance}"
+#, elixir-format
#: lib/web/templates/email/before_event_notification.html.eex:51
#: lib/web/templates/email/before_event_notification.text.eex:4
-#, elixir-format
msgid "Go to event page"
msgstr "Ir a la página del evento"
-#: lib/web/templates/email/report.text.eex:1
#, elixir-format
+#: lib/web/templates/email/report.text.eex:1
msgid "New report from %{reporter} on %{instance}"
msgstr "Nuevo informe de %{reporter} en %{instance}"
-#: lib/web/templates/email/event_participation_approved.text.eex:1
#, elixir-format
+#: lib/web/templates/email/event_participation_approved.text.eex:1
msgid "Participation approved"
msgstr "Participación aprobada"
+#, elixir-format
#: lib/web/templates/email/password_reset.html.eex:13
#: lib/web/templates/email/password_reset.text.eex:1
-#, elixir-format
msgid "Password reset"
msgstr "Restablecer la contraseña"
-#: lib/web/templates/email/password_reset.text.eex:7
#, elixir-format
+#: lib/web/templates/email/password_reset.text.eex:7
msgid "Resetting your password is easy. Just click the link below and follow the instructions. We'll have you up and running in no time."
msgstr ""
"Restablecer tu contraseña es fácil. Simplemente haga clic en el enlace a "
"continuación y siga las instrucciones. Estarás operacional en muy poco "
"tiempo."
-#: lib/web/templates/email/registration_confirmation.text.eex:5
#, elixir-format
+#: lib/web/templates/email/registration_confirmation.text.eex:5
msgid "You created an account on %{host} with this email address. You are one click away from activating it. If this wasn't you, please ignore this email."
msgstr ""
"Has creado una cuenta en %{host} con esta dirección de correo electrónico. "
"Estás a un clic de activarlo. Si no eras tú, ignora este correo electrónico."
-#: lib/web/email/participation.ex:112
#, elixir-format
+#: lib/web/email/participation.ex:112
msgid "Your participation to event %{title} has been approved"
msgstr "Su participación en el evento %{title} ha sido aprobada"
-#: lib/web/email/participation.ex:70
#, elixir-format
+#: lib/web/email/participation.ex:70
msgid "Your participation to event %{title} has been rejected"
msgstr "Su participación en el evento %{title} ha sido rechazada"
-#: lib/web/email/event.ex:37
#, elixir-format
+#: lib/web/email/event.ex:37
msgid "Event %{title} has been updated"
msgstr "El evento %{title} ha sido actualizado"
-#: lib/web/templates/email/event_updated.text.eex:15
#, elixir-format
+#: lib/web/templates/email/event_updated.text.eex:15
msgid "New title: %{title}"
msgstr "Nuevo título: %{title}"
-#: lib/web/templates/email/password_reset.text.eex:5
#, elixir-format
+#: lib/web/templates/email/password_reset.text.eex:5
msgid "You requested a new password for your account on %{instance}."
msgstr "Solicitó una nueva contraseña para su cuenta en %{instancia}."
-#: lib/web/templates/email/email.html.eex:85
#, elixir-format
+#: lib/web/templates/email/email.html.eex:85
msgid "Warning"
msgstr "Advertencia"
-#: lib/web/email/participation.ex:135
#, elixir-format
+#: lib/web/email/participation.ex:135
msgid "Confirm your participation to event %{title}"
msgstr "Confirme su participación en el evento %{title}"
-#: lib/web/templates/api/privacy.html.eex:75
#, elixir-format
+#: lib/web/templates/api/privacy.html.eex:75
msgctxt "terms"
msgid "An internal ID for your current selected identity"
msgstr "Un ID interno para su identidad seleccionada actualmente"
-#: lib/web/templates/api/privacy.html.eex:74
#, elixir-format
+#: lib/web/templates/api/privacy.html.eex:74
msgctxt "terms"
msgid "An internal user ID"
msgstr "Un ID de usuario interna"
-#: lib/web/templates/api/privacy.html.eex:37
#, elixir-format
+#: lib/web/templates/api/privacy.html.eex:37
msgctxt "terms"
msgid "Any of the information we collect from you may be used in the following ways:"
msgstr ""
"Cualquier información que recopilemos sobre usted puede usarse de las "
"siguientes maneras:"
-#: lib/web/templates/api/privacy.html.eex:9
#, elixir-format
+#: lib/web/templates/api/privacy.html.eex:9
msgctxt "terms"
msgid "Basic account information"
msgstr "Información básica de la cuenta"
-#: lib/web/templates/api/privacy.html.eex:25
#, elixir-format
+#: lib/web/templates/api/privacy.html.eex:25
msgctxt "terms"
msgid "Do not share any dangerous information over Mobilizon."
msgstr "No comparta ninguna información peligrosa a través de Mobilizon."
-#: lib/web/templates/api/privacy.html.eex:90
#, elixir-format
+#: lib/web/templates/api/privacy.html.eex:90
msgctxt "terms"
msgid "Do we disclose any information to outside parties?"
msgstr "¿Divulgamos alguna información a terceros?"
-#: lib/web/templates/api/privacy.html.eex:68
#, elixir-format
+#: lib/web/templates/api/privacy.html.eex:68
msgctxt "terms"
msgid "Do we use cookies?"
msgstr "¿Usamos cookies?"
-#: lib/web/templates/api/privacy.html.eex:51
#, elixir-format
+#: lib/web/templates/api/privacy.html.eex:51
msgctxt "terms"
msgid "How do we protect your information?"
msgstr "¿Cómo protegemos tu información?"
-#: lib/web/templates/api/privacy.html.eex:29
#, elixir-format
+#: lib/web/templates/api/privacy.html.eex:29
msgctxt "terms"
msgid "IPs and other metadata"
msgstr "dirección IP y otros metadatos"
-#: lib/web/templates/api/privacy.html.eex:17
#, elixir-format
+#: lib/web/templates/api/privacy.html.eex:17
msgctxt "terms"
msgid "Published events and comments"
msgstr "Eventos publicados y comentarios"
-#: lib/web/templates/api/privacy.html.eex:64
#, elixir-format
+#: lib/web/templates/api/privacy.html.eex:64
msgctxt "terms"
msgid "Retain the IP addresses associated with registered users no more than 12 months."
msgstr ""
"Conserva las direcciones IP asociadas con usuarios registrados no más de 12 "
"meses."
-#: lib/web/templates/api/privacy.html.eex:76
#, elixir-format
+#: lib/web/templates/api/privacy.html.eex:76
msgctxt "terms"
msgid "Tokens to authenticate you"
msgstr "Fichas para \"autenticarte\""
-#: lib/web/templates/api/privacy.html.eex:31
#, elixir-format
+#: lib/web/templates/api/privacy.html.eex:31
msgctxt "terms"
msgid "We also may retain server logs which include the IP address of every request to our server."
msgstr ""
"También podemos conservar los registros del servidor que incluyen la "
"dirección IP de cada solicitud a nuestro servidor."
-#: lib/web/templates/api/privacy.html.eex:70
#, elixir-format
+#: lib/web/templates/api/privacy.html.eex:70
msgctxt "terms"
msgid "We store the following information on your device when you connect:"
msgstr ""
"Almacenamos la siguiente información en tu dispositivo cuando te conectas:"
-#: lib/web/templates/api/privacy.html.eex:58
#, elixir-format
+#: lib/web/templates/api/privacy.html.eex:58
msgctxt "terms"
msgid "We will make a good faith effort to:"
msgstr "Haremos un esfuerzo de buena fe para:"
-#: lib/web/templates/api/privacy.html.eex:35
#, elixir-format
+#: lib/web/templates/api/privacy.html.eex:35
msgctxt "terms"
msgid "What do we use your information for?"
msgstr "¿Para qué utilizamos tu información?"
-#: lib/web/templates/api/privacy.html.eex:57
#, elixir-format
+#: lib/web/templates/api/privacy.html.eex:57
msgctxt "terms"
msgid "What is our data retention policy?"
msgstr "¿Cuál es nuestra política de retención de datos?"
-#: lib/web/templates/api/privacy.html.eex:67
#, elixir-format
+#: lib/web/templates/api/privacy.html.eex:67
msgctxt "terms"
msgid "You may irreversibly delete your account at any time."
msgstr "Puede eliminar irreversiblemente su cuenta en cualquier momento."
-#: lib/web/templates/api/privacy.html.eex:115
#, elixir-format
+#: lib/web/templates/api/privacy.html.eex:115
msgctxt "terms"
msgid "Changes to our Privacy Policy"
msgstr "Cambios a nuestra política de privacidad"
-#: lib/web/templates/api/privacy.html.eex:106
#, elixir-format
+#: lib/web/templates/api/privacy.html.eex:106
msgctxt "terms"
msgid "If this server is in the EU or the EEA: Our site, products and services are all directed to people who are at least 16 years old. If you are under the age of 16, per the requirements of the GDPR (