diff --git a/mix.exs b/mix.exs
index 70562a83987d0ef2ee618c3c99a2d4e10ebb9723..170246f9c59e076cc08a4f2cc78bcf289fae35c0 100644
--- a/mix.exs
+++ b/mix.exs
@@ -143,7 +143,7 @@ defmodule Mobilizon.Mixfile do
       {:phoenix_html, "~> 3.0"},
       {:phoenix_live_view, "~> 0.19.0"},
       {:phoenix_view, "~> 2.0"},
-      {:gettext, "~> 0.20.0"},
+      {:gettext, "~> 0.23.1"},
       {:cowboy, "~> 2.6"},
       {:guardian, "~> 2.0"},
       {:guardian_db, "~> 2.1.0"},
diff --git a/mix.lock b/mix.lock
index 60d3cd662eebda22f293f60b1a30dddcba9976ec..a11efa44ceeabf6a937f372b195cd72d08f1b7ae 100644
--- a/mix.lock
+++ b/mix.lock
@@ -53,7 +53,7 @@
   "excoveralls": {:hex, :excoveralls, "0.17.1", "83fa7906ef23aa7fc8ad7ee469c357a63b1b3d55dd701ff5b9ce1f72442b2874", [:mix], [{:castore, "~> 1.0", [hex: :castore, repo: "hexpm", optional: true]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: false]}], "hexpm", "95bc6fda953e84c60f14da4a198880336205464e75383ec0f570180567985ae0"},
   "exgravatar": {:hex, :exgravatar, "2.0.3", "2349709832ee535f826f48db98cddd294ae62b01acb44d539a16419bd8ebc3e5", [:mix], [], "hexpm", "aca18ff9bd8991d3be3e5446d3bdefc051be084c1ffc9ab2d43b3e65339300e1"},
   "exkismet": {:git, "https://github.com/tcitworld/exkismet.git", "8b5485fde00fafbde20f315bec387a77f7358334", []},
-  "expo": {:hex, :expo, "0.1.0", "d4e932bdad052c374118e312e35280f1919ac13881cb3ac07a209a54d0c81dd8", [:mix], [], "hexpm", "c22c536021c56de058aaeedeabb4744eb5d48137bacf8c29f04d25b6c6bbbf45"},
+  "expo": {:hex, :expo, "0.4.1", "1c61d18a5df197dfda38861673d392e642649a9cef7694d2f97a587b2cfb319b", [:mix], [], "hexpm", "2ff7ba7a798c8c543c12550fa0e2cbc81b95d4974c65855d8d15ba7b37a1ce47"},
   "export": {:hex, :export, "0.1.1", "6dfd268b0692428f89b9285859a2dc02b6dcd2e8fdfbca34ac6e6a331351df91", [:mix], [{:erlport, "~> 0.9", [hex: :erlport, repo: "hexpm", optional: false]}], "hexpm", "3da7444ff4053f1824352f4bdb13fbd2c28c93c2011786fb686b649fdca1021f"},
   "fast_html": {:hex, :fast_html, "2.2.0", "6c5ef1be087a4ed613b0379c13f815c4d11742b36b67bb52cee7859847c84520", [:make, :mix], [{:elixir_make, "~> 0.4", [hex: :elixir_make, repo: "hexpm", optional: false]}, {:nimble_pool, "~> 0.2.0", [hex: :nimble_pool, repo: "hexpm", optional: false]}], "hexpm", "064c4f23b4a6168f9187dac8984b056f2c531bb0787f559fd6a8b34b38aefbae"},
   "fast_sanitize": {:hex, :fast_sanitize, "0.2.3", "67b93dfb34e302bef49fec3aaab74951e0f0602fd9fa99085987af05bd91c7a5", [:mix], [{:fast_html, "~> 2.0", [hex: :fast_html, repo: "hexpm", optional: false]}, {:plug, "~> 1.8", [hex: :plug, repo: "hexpm", optional: false]}], "hexpm", "e8ad286d10d0386e15d67d0ee125245ebcfbc7d7290b08712ba9013c8c5e56e2"},
@@ -66,7 +66,7 @@
   "geohax": {:hex, :geohax, "1.0.0", "89717442c5474a57d242b2361590bb33a7fbe6d8ec02a31d9865c3f33756d348", [:mix], [], "hexpm", "893ef2f905213acb67c615d2c955d926b1be3676bfc2bd5ed7271b641dfa2224"},
   "geolix": {:hex, :geolix, "2.0.0", "7e65764bedfc98d08a3ddb24c417657c9d438eff163280b45fbb7de289626acd", [:mix], [], "hexpm", "8742bf588ed0bb7def2c443204d09d355990846c6efdff96ded66aac24c301df"},
   "geolix_adapter_mmdb2": {:hex, :geolix_adapter_mmdb2, "0.6.0", "6ab9dbf6ea395817aa1fd2597be25d0dda1853c7f664e62716e47728d18bc4f9", [:mix], [{:geolix, "~> 2.0", [hex: :geolix, repo: "hexpm", optional: false]}, {:mmdb2_decoder, "~> 3.0", [hex: :mmdb2_decoder, repo: "hexpm", optional: false]}], "hexpm", "06ff962feae8a310cffdf86b74bfcda6e2d0dccb439bb1f62df2b657b1c0269b"},
-  "gettext": {:hex, :gettext, "0.20.0", "75ad71de05f2ef56991dbae224d35c68b098dd0e26918def5bb45591d5c8d429", [:mix], [], "hexpm", "1c03b177435e93a47441d7f681a7040bd2a816ece9e2666d1c9001035121eb3d"},
+  "gettext": {:hex, :gettext, "0.23.1", "821e619a240e6000db2fc16a574ef68b3bd7fe0167ccc264a81563cc93e67a31", [:mix], [{:expo, "~> 0.4.0", [hex: :expo, repo: "hexpm", optional: false]}], "hexpm", "19d744a36b809d810d610b57c27b934425859d158ebd56561bc41f7eeb8795db"},
   "guardian": {:hex, :guardian, "2.3.1", "2b2d78dc399a7df182d739ddc0e566d88723299bfac20be36255e2d052fd215d", [:mix], [{:jose, "~> 1.8", [hex: :jose, repo: "hexpm", optional: false]}, {:plug, "~> 1.3.3 or ~> 1.4", [hex: :plug, repo: "hexpm", optional: true]}], "hexpm", "bbe241f9ca1b09fad916ad42d6049d2600bbc688aba5b3c4a6c82592a54274c3"},
   "guardian_db": {:hex, :guardian_db, "2.1.0", "ec95a9d99cdd1e550555d09a7bb4a340d8887aad0697f594590c2fd74be02426", [:mix], [{:ecto, "~> 3.0", [hex: :ecto, repo: "hexpm", optional: false]}, {:ecto_sql, "~> 3.1", [hex: :ecto_sql, repo: "hexpm", optional: false]}, {:guardian, "~> 1.0 or ~> 2.0", [hex: :guardian, repo: "hexpm", optional: false]}, {:postgrex, "~> 0.13", [hex: :postgrex, repo: "hexpm", optional: true]}], "hexpm", "f8e7d543ac92c395f3a7fd5acbe6829faeade57d688f7562e2f0fca8f94a0d70"},
   "guardian_phoenix": {:hex, :guardian_phoenix, "2.0.1", "89a817265af09a6ddf7cb1e77f17ffca90cea2db10ff888375ef34502b2731b1", [:mix], [{:guardian, "~> 2.0", [hex: :guardian, repo: "hexpm", optional: false]}, {:phoenix, "~> 1.3", [hex: :phoenix, repo: "hexpm", optional: false]}], "hexpm", "21f439246715192b231f228680465d1ed5fbdf01555a4a3b17165532f5f9a08c"},
diff --git a/priv/gettext/ar/LC_MESSAGES/activity.po b/priv/gettext/ar/LC_MESSAGES/activity.po
index 1e7d07a959b29269aa7773a703048e1e26917b6a..94277a61c8d380ba62c70711a592fecefb73c68f 100644
--- a/priv/gettext/ar/LC_MESSAGES/activity.po
+++ b/priv/gettext/ar/LC_MESSAGES/activity.po
@@ -9,7 +9,8 @@
 msgid ""
 msgstr ""
 "Language: ar\n"
-"Plural-Forms: nplurals=6\n"
+"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 "
+"&& n%100<=10 ? 3 : n%100>=11 ? 4 : 5;\n"
 
 #: lib/web/templates/email/activity/_member_activity_item.html.heex:14
 #: lib/web/templates/email/activity/_member_activity_item.text.eex:12
@@ -462,3 +463,15 @@ msgstr ""
 #, elixir-autogen, elixir-format, fuzzy
 msgid "%{profile} approved the member %{member}."
 msgstr ""
+
+#: lib/service/activity/renderer/event.ex:74
+#: lib/web/templates/email/activity/_event_activity_item.html.heex:55
+#: lib/web/templates/email/activity/_event_activity_item.text.eex:31
+#, elixir-autogen, elixir-format
+msgid "%{profile} joined your event %{event}."
+msgstr ""
+
+#: lib/web/views/email_view.ex:45
+#, elixir-autogen, elixir-format
+msgid "An anonymous profile"
+msgstr ""
diff --git a/priv/gettext/ar/LC_MESSAGES/default.po b/priv/gettext/ar/LC_MESSAGES/default.po
index fcb8a45addbaf58f5e8bc1b14de0d51bfc8127ea..99169c78a3a0c0be48ffda2e77d3776c7a6c975a 100644
--- a/priv/gettext/ar/LC_MESSAGES/default.po
+++ b/priv/gettext/ar/LC_MESSAGES/default.po
@@ -20,7 +20,7 @@ msgstr ""
 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 ""
 
-#: lib/web/templates/email/report.html.heex:120
+#: lib/web/templates/email/report.html.heex:121
 #, elixir-autogen, elixir-format
 msgid "%{title} by %{creator}"
 msgstr "%{title} لِـ %{creator}"
@@ -36,23 +36,17 @@ msgstr "تنشيط حسابي"
 msgid "Ask the community on Framacolibri"
 msgstr "أطلب مِن المجتمَع على Framacolibri"
 
-#: lib/web/templates/email/report.text.eex:15
+#: lib/web/templates/email/report.text.eex:17
 #, elixir-autogen, elixir-format
 msgid "Comments"
 msgstr "التعليقات"
 
-#: lib/web/templates/email/report.html.heex:115
-#: lib/web/templates/email/report.text.eex:11
-#, elixir-autogen, elixir-format
-msgid "Event"
-msgstr "الفعالية"
-
 #: lib/web/email/user.ex:49
 #, elixir-autogen, elixir-format
 msgid "Instructions to reset your password on %{instance}"
 msgstr ""
 
-#: lib/web/templates/email/report.text.eex:21
+#: lib/web/templates/email/report.text.eex:23
 #, elixir-autogen, elixir-format
 msgid "Reason"
 msgstr "السبب"
@@ -312,12 +306,12 @@ msgctxt "terms"
 msgid "What information do we collect?"
 msgstr ""
 
-#: lib/web/email/user.ex:182
+#: lib/web/email/user.ex:188
 #, elixir-autogen, elixir-format
 msgid "Mobilizon on %{instance}: confirm your email address"
 msgstr ""
 
-#: lib/web/email/user.ex:159
+#: lib/web/email/user.ex:165
 #, elixir-autogen, elixir-format
 msgid "Mobilizon on %{instance}: email changed"
 msgstr ""
@@ -832,7 +826,7 @@ msgstr ""
 msgid "Event update!"
 msgstr "تم تحديث الفعالية!"
 
-#: lib/web/templates/email/report.html.heex:155
+#: lib/web/templates/email/report.html.heex:158
 #, elixir-autogen, elixir-format
 msgid "Flagged comments"
 msgstr ""
@@ -913,7 +907,7 @@ msgstr ""
 msgid "New email confirmation"
 msgstr ""
 
-#: lib/web/templates/email/report.html.heex:191
+#: lib/web/templates/email/report.html.heex:194
 #, elixir-autogen, elixir-format
 msgid "Reasons for report"
 msgstr ""
@@ -968,12 +962,12 @@ msgstr "لسوء الحظ ، لقد رفض المُنظّمون طلب مشار
 msgid "Verify your email address"
 msgstr ""
 
-#: lib/web/templates/email/report.html.heex:232
+#: lib/web/templates/email/report.html.heex:235
 #, elixir-autogen, elixir-format
 msgid "View report"
 msgstr "إعرض التقرير"
 
-#: lib/web/templates/email/report.text.eex:24
+#: lib/web/templates/email/report.text.eex:26
 #, elixir-autogen, elixir-format
 msgid "View report:"
 msgstr "إعرض التقرير"
@@ -1071,12 +1065,6 @@ msgstr ""
 msgid "As this group was located on another instance, it will continue to work for other instances than this one."
 msgstr ""
 
-#: lib/web/templates/email/group_suspension.html.heex:67
-#: lib/web/templates/email/group_suspension.text.eex:5
-#, elixir-autogen, elixir-format
-msgid "As this group was located on this instance, all of it's data has been irretrievably deleted."
-msgstr ""
-
 #: lib/web/templates/email/group_suspension.html.heex:18
 #: lib/web/templates/email/group_suspension.text.eex:1
 #, elixir-autogen, elixir-format
@@ -1088,7 +1076,7 @@ msgstr ""
 msgid "Your instance's moderation team has decided to suspend %{group_name} (%{group_address}). You are no longer a member of this group."
 msgstr ""
 
-#: lib/web/email/group.ex:107
+#: lib/web/email/group.ex:108
 #, elixir-autogen, elixir-format
 msgid "The group %{group} has been suspended on %{instance}"
 msgstr ""
@@ -1370,16 +1358,6 @@ msgstr ""
 msgid "Public feed for %{instance}"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:350
-#, elixir-autogen, elixir-format
-msgid "The password you have choosen is too short. Please make sure your password contains at least 6 charaters."
-msgstr ""
-
-#: lib/graphql/resolvers/user.ex:356
-#, elixir-autogen, elixir-format
-msgid "The token you provided is invalid. Make sure that the URL is exactly the one provided inside the email you got."
-msgstr ""
-
 #: lib/web/email/actor.ex:43
 #, elixir-autogen, elixir-format
 msgid "Your participation to %{event} has been cancelled!"
@@ -1403,63 +1381,63 @@ msgid "Your participation to %{event} on %{instance} has been cancelled!"
 msgstr ""
 
 #. File name template for exported list of participants. Should NOT contain spaces. Make sure the output is going to be something standardized that is acceptable as a file name on most systems.
-#: lib/service/export/participants/csv.ex:81
+#: lib/service/export/participants/csv.ex:97
 #: lib/service/export/participants/ods.ex:86
 #: lib/service/export/participants/pdf.ex:96
 #, elixir-autogen, elixir-format
 msgid "%{event}_participants"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:61
+#: lib/service/export/participants/common.ex:66
 #, elixir-autogen, elixir-format
 msgid "Participant message"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:61
+#: lib/service/export/participants/common.ex:63
 #, elixir-autogen, elixir-format
 msgid "Participant name"
 msgstr "تم قبول المشاركة"
 
-#: lib/service/export/participants/common.ex:61
+#: lib/service/export/participants/common.ex:64
 #, elixir-autogen, elixir-format
 msgid "Participant status"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:52
+#: lib/service/export/participants/common.ex:53
 #: lib/web/templates/email/admin/_role.html.heex:3
 #: lib/web/templates/email/admin/_role.text.eex:1
 #, elixir-autogen, elixir-format
 msgid "Administrator"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:55
+#: lib/service/export/participants/common.ex:56
 #, elixir-autogen, elixir-format
 msgid "Creator"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:49
+#: lib/service/export/participants/common.ex:50
 #: lib/web/templates/email/admin/_role.html.heex:5
 #: lib/web/templates/email/admin/_role.text.eex:1
 #, elixir-autogen, elixir-format
 msgid "Moderator"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:37
+#: lib/service/export/participants/common.ex:38
 #, elixir-autogen, elixir-format
 msgid "Not approved"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:40
+#: lib/service/export/participants/common.ex:41
 #, elixir-autogen, elixir-format
 msgid "Not confirmed"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:46
+#: lib/service/export/participants/common.ex:47
 #, elixir-autogen, elixir-format
 msgid "Participant"
 msgstr "تم قبول المشاركة"
 
-#: lib/service/export/participants/common.ex:43
+#: lib/service/export/participants/common.ex:44
 #, elixir-autogen, elixir-format
 msgid "Rejected"
 msgstr ""
@@ -1484,7 +1462,7 @@ msgstr ""
 msgid "Participants for %{event}"
 msgstr "تم قبول المشاركة"
 
-#: lib/service/export/participants/common.ex:88
+#: lib/service/export/participants/common.ex:95
 #, elixir-autogen, elixir-format
 msgid "Anonymous participant"
 msgstr ""
@@ -1603,7 +1581,7 @@ msgstr "تم قبول المشاركة"
 msgid "Title: %{title}"
 msgstr ""
 
-#: lib/web/email/group.ex:46
+#: lib/web/email/group.ex:47
 #, elixir-autogen, elixir-format
 msgid "📅 Just scheduled by %{group}: %{event}"
 msgstr ""
@@ -2020,3 +1998,24 @@ msgstr ""
 #, elixir-autogen, elixir-format
 msgid "Until next time!"
 msgstr ""
+
+#: lib/web/templates/email/group_suspension.html.heex:67
+#: lib/web/templates/email/group_suspension.text.eex:5
+#, elixir-autogen, elixir-format, fuzzy
+msgid "As this group was located on this instance, all of its data has been irretrievably deleted."
+msgstr ""
+
+#: lib/web/templates/email/report.text.eex:11
+#, elixir-autogen, elixir-format, fuzzy
+msgid "Events"
+msgstr "الفعالية"
+
+#: lib/web/templates/email/report.html.heex:115
+#, elixir-autogen, elixir-format, fuzzy
+msgid "Flagged events"
+msgstr ""
+
+#: lib/service/export/participants/common.ex:65
+#, elixir-autogen, elixir-format, fuzzy
+msgid "Participant registration date"
+msgstr ""
diff --git a/priv/gettext/ar/LC_MESSAGES/errors.po b/priv/gettext/ar/LC_MESSAGES/errors.po
index ae78a4e5147df42e0b9ad4b033d0164388789db4..533b506e13a26c078bb272cad444ec76b4e47795 100644
--- a/priv/gettext/ar/LC_MESSAGES/errors.po
+++ b/priv/gettext/ar/LC_MESSAGES/errors.po
@@ -135,7 +135,7 @@ msgstr ""
 msgid "Current profile is not an administrator of the selected group"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:644
+#: lib/graphql/resolvers/user.ex:673
 #, elixir-autogen, elixir-format
 msgid "Error while saving user settings"
 msgstr ""
@@ -178,8 +178,8 @@ msgstr ""
 msgid "No user to validate with this email was found"
 msgstr ""
 
-#: lib/graphql/resolvers/person.ex:337
-#: lib/graphql/resolvers/user.ex:330
+#: lib/graphql/resolvers/person.ex:339
+#: lib/graphql/resolvers/user.ex:337
 #, elixir-autogen, elixir-format
 msgid "No user with this email was found"
 msgstr ""
@@ -187,12 +187,12 @@ msgstr ""
 #: lib/graphql/resolvers/feed_token.ex:28
 #: lib/graphql/resolvers/participant.ex:32
 #: lib/graphql/resolvers/participant.ex:210
-#: lib/graphql/resolvers/person.ex:245
-#: lib/graphql/resolvers/person.ex:376
-#: lib/graphql/resolvers/person.ex:412
-#: lib/graphql/resolvers/person.ex:419
-#: lib/graphql/resolvers/person.ex:448
-#: lib/graphql/resolvers/person.ex:463
+#: lib/graphql/resolvers/person.ex:247
+#: lib/graphql/resolvers/person.ex:378
+#: lib/graphql/resolvers/person.ex:414
+#: lib/graphql/resolvers/person.ex:421
+#: lib/graphql/resolvers/person.ex:450
+#: lib/graphql/resolvers/person.ex:465
 #, elixir-autogen, elixir-format
 msgid "Profile is not owned by authenticated user"
 msgstr ""
@@ -202,41 +202,42 @@ msgstr ""
 msgid "Registrations are not open"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:461
+#: lib/graphql/resolvers/user.ex:474
 #, elixir-autogen, elixir-format
 msgid "The current password is invalid"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:336
-#: lib/graphql/resolvers/user.ex:504
+#: lib/graphql/resolvers/admin.ex:334
+#: lib/graphql/resolvers/user.ex:527
 #, elixir-autogen, elixir-format
 msgid "The new email doesn't seem to be valid"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:339
-#: lib/graphql/resolvers/user.ex:507
+#: lib/graphql/resolvers/admin.ex:323
+#: lib/graphql/resolvers/user.ex:514
 #, elixir-autogen, elixir-format
 msgid "The new email must be different"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:464
+#: lib/graphql/resolvers/user.ex:477
 #, elixir-autogen, elixir-format
 msgid "The new password must be different"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:511
-#: lib/graphql/resolvers/user.ex:573
-#: lib/graphql/resolvers/user.ex:576
+#: lib/graphql/resolvers/user.ex:518
+#: lib/graphql/resolvers/user.ex:602
+#: lib/graphql/resolvers/user.ex:605
 #, elixir-autogen, elixir-format
 msgid "The password provided is invalid"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:468
+#: lib/graphql/resolvers/user.ex:361
+#: lib/graphql/resolvers/user.ex:481
 #, elixir-autogen, elixir-format
 msgid "The password you have chosen is too short. Please make sure your password contains at least 6 characters."
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:323
+#: lib/graphql/resolvers/user.ex:330
 #, elixir-autogen, elixir-format
 msgid "This user can't reset their password"
 msgstr ""
@@ -252,12 +253,12 @@ msgstr ""
 msgid "Unable to validate user"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:554
+#: lib/graphql/resolvers/user.ex:583
 #, elixir-autogen, elixir-format
 msgid "User already disabled"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:619
+#: lib/graphql/resolvers/user.ex:648
 #, elixir-autogen, elixir-format
 msgid "User requested is not logged-in"
 msgstr ""
@@ -282,12 +283,12 @@ msgstr ""
 msgid "You may not list groups unless moderator."
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:519
+#: lib/graphql/resolvers/user.ex:503
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to change your email"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:476
+#: lib/graphql/resolvers/user.ex:489
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to change your password"
 msgstr ""
@@ -297,7 +298,7 @@ msgstr ""
 msgid "You need to be logged-in to delete a group"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:581
+#: lib/graphql/resolvers/user.ex:610
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to delete your account"
 msgstr ""
@@ -322,12 +323,6 @@ msgstr ""
 msgid "You need to have an existing token to get a refresh token"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:306
-#: lib/graphql/resolvers/user.ex:333
-#, elixir-autogen, elixir-format
-msgid "You requested again a confirmation email too soon"
-msgstr ""
-
 #: lib/graphql/resolvers/user.ex:180
 #, elixir-autogen, elixir-format
 msgid "Your email is not on the allowlist"
@@ -380,17 +375,17 @@ msgstr ""
 msgid "Anonymous participation is not enabled"
 msgstr ""
 
-#: lib/graphql/resolvers/person.ex:219
+#: lib/graphql/resolvers/person.ex:221
 #, elixir-autogen, elixir-format
 msgid "Cannot remove the last administrator of a group"
 msgstr ""
 
-#: lib/graphql/resolvers/person.ex:216
+#: lib/graphql/resolvers/person.ex:218
 #, elixir-autogen, elixir-format
 msgid "Cannot remove the last identity of a user"
 msgstr ""
 
-#: lib/graphql/resolvers/comment.ex:147
+#: lib/graphql/resolvers/comment.ex:153
 #, elixir-autogen, elixir-format
 msgid "Comment is already deleted"
 msgstr ""
@@ -418,8 +413,8 @@ msgid "Event id not found"
 msgstr ""
 
 #: lib/graphql/error.ex:114
-#: lib/graphql/resolvers/event.ex:355
-#: lib/graphql/resolvers/event.ex:407
+#: lib/graphql/resolvers/event.ex:382
+#: lib/graphql/resolvers/event.ex:434
 #, elixir-autogen, elixir-format
 msgid "Event not found"
 msgstr ""
@@ -427,7 +422,7 @@ msgstr ""
 #: lib/graphql/resolvers/participant.ex:87
 #: lib/graphql/resolvers/participant.ex:128
 #: lib/graphql/resolvers/participant.ex:155
-#: lib/graphql/resolvers/participant.ex:336
+#: lib/graphql/resolvers/participant.ex:343
 #, elixir-autogen, elixir-format
 msgid "Event with this ID %{id} doesn't exist"
 msgstr ""
@@ -437,7 +432,7 @@ msgstr ""
 msgid "Internal Error"
 msgstr ""
 
-#: lib/graphql/resolvers/discussion.ex:219
+#: lib/graphql/resolvers/discussion.ex:222
 #, elixir-autogen, elixir-format
 msgid "No discussion with ID %{id}"
 msgstr ""
@@ -504,10 +499,10 @@ msgstr ""
 #: lib/graphql/resolvers/post.ex:133
 #: lib/graphql/resolvers/post.ex:175
 #: lib/graphql/resolvers/post.ex:209
-#: lib/graphql/resolvers/resource.ex:90
-#: lib/graphql/resolvers/resource.ex:135
-#: lib/graphql/resolvers/resource.ex:168
-#: lib/graphql/resolvers/resource.ex:202
+#: lib/graphql/resolvers/resource.ex:92
+#: lib/graphql/resolvers/resource.ex:137
+#: lib/graphql/resolvers/resource.ex:170
+#: lib/graphql/resolvers/resource.ex:204
 #: lib/graphql/resolvers/todos.ex:58
 #: lib/graphql/resolvers/todos.ex:83
 #: lib/graphql/resolvers/todos.ex:110
@@ -519,7 +514,7 @@ msgid "Profile is not member of group"
 msgstr ""
 
 #: lib/graphql/resolvers/actor.ex:67
-#: lib/graphql/resolvers/person.ex:242
+#: lib/graphql/resolvers/person.ex:244
 #, elixir-autogen, elixir-format
 msgid "Profile not found"
 msgstr ""
@@ -529,8 +524,8 @@ msgstr ""
 msgid "Report not found"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:172
-#: lib/graphql/resolvers/resource.ex:199
+#: lib/graphql/resolvers/resource.ex:174
+#: lib/graphql/resolvers/resource.ex:201
 #, elixir-autogen, elixir-format
 msgid "Resource doesn't exist"
 msgstr ""
@@ -540,7 +535,7 @@ msgstr ""
 msgid "The event has already reached its maximum capacity"
 msgstr ""
 
-#: lib/graphql/resolvers/participant.ex:282
+#: lib/graphql/resolvers/participant.ex:289
 #, elixir-autogen, elixir-format
 msgid "This token is invalid"
 msgstr ""
@@ -574,7 +569,7 @@ msgstr ""
 msgid "User not found"
 msgstr ""
 
-#: lib/graphql/resolvers/person.ex:333
+#: lib/graphql/resolvers/person.ex:335
 #, elixir-autogen, elixir-format
 msgid "You already have a profile for this user"
 msgstr ""
@@ -596,7 +591,7 @@ msgstr ""
 msgid "You are not a moderator or admin for this group"
 msgstr ""
 
-#: lib/graphql/resolvers/comment.ex:80
+#: lib/graphql/resolvers/comment.ex:74
 #, elixir-autogen, elixir-format
 msgid "You are not allowed to create a comment if not connected"
 msgstr ""
@@ -606,7 +601,7 @@ msgstr ""
 msgid "You are not allowed to create a feed token if not connected"
 msgstr ""
 
-#: lib/graphql/resolvers/comment.ex:155
+#: lib/graphql/resolvers/comment.ex:161
 #, elixir-autogen, elixir-format
 msgid "You are not allowed to delete a comment if not connected"
 msgstr ""
@@ -616,7 +611,7 @@ msgstr ""
 msgid "You are not allowed to delete a feed token if not connected"
 msgstr ""
 
-#: lib/graphql/resolvers/comment.ex:114
+#: lib/graphql/resolvers/comment.ex:120
 #, elixir-autogen, elixir-format
 msgid "You are not allowed to update a comment if not connected"
 msgstr ""
@@ -632,12 +627,12 @@ msgstr ""
 msgid "You can't set yourself to a lower member role for this group because you are the only administrator"
 msgstr ""
 
-#: lib/graphql/resolvers/comment.ex:143
+#: lib/graphql/resolvers/comment.ex:149
 #, elixir-autogen, elixir-format
 msgid "You cannot delete this comment"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:403
+#: lib/graphql/resolvers/event.ex:430
 #, elixir-autogen, elixir-format
 msgid "You cannot delete this event"
 msgstr ""
@@ -672,17 +667,17 @@ msgstr ""
 msgid "You need to be logged-in and a moderator to view a report"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:252
+#: lib/graphql/resolvers/admin.ex:258
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in and an administrator to access admin settings"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:236
+#: lib/graphql/resolvers/admin.ex:242
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in and an administrator to access dashboard statistics"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:278
+#: lib/graphql/resolvers/admin.ex:283
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in and an administrator to save admin settings"
 msgstr ""
@@ -692,12 +687,12 @@ msgstr ""
 msgid "You need to be logged-in to access discussions"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:96
+#: lib/graphql/resolvers/resource.ex:98
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to access resources"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:313
+#: lib/graphql/resolvers/event.ex:321
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to create events"
 msgstr ""
@@ -712,12 +707,12 @@ msgstr ""
 msgid "You need to be logged-in to create reports"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:140
+#: lib/graphql/resolvers/resource.ex:142
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to create resources"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:412
+#: lib/graphql/resolvers/event.ex:439
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to delete an event"
 msgstr ""
@@ -727,7 +722,7 @@ msgstr ""
 msgid "You need to be logged-in to delete posts"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:207
+#: lib/graphql/resolvers/resource.ex:209
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to delete resources"
 msgstr ""
@@ -742,7 +737,7 @@ msgstr ""
 msgid "You need to be logged-in to leave an event"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:369
+#: lib/graphql/resolvers/event.ex:396
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to update an event"
 msgstr ""
@@ -752,17 +747,17 @@ msgstr ""
 msgid "You need to be logged-in to update posts"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:177
+#: lib/graphql/resolvers/resource.ex:179
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to update resources"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:236
+#: lib/graphql/resolvers/resource.ex:233
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to view a resource preview"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:132
+#: lib/graphql/resolvers/resource.ex:134
 #, elixir-autogen, elixir-format
 msgid "Parent resource doesn't belong to this group"
 msgstr ""
@@ -848,12 +843,12 @@ msgstr ""
 msgid "Profile is not administrator for the group"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:358
+#: lib/graphql/resolvers/event.ex:385
 #, elixir-autogen, elixir-format
 msgid "You can't edit this event."
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:361
+#: lib/graphql/resolvers/event.ex:388
 #, elixir-autogen, elixir-format
 msgid "You can't attribute this event to this profile."
 msgstr ""
@@ -873,7 +868,7 @@ msgstr ""
 msgid "You don't have the right to remove this member."
 msgstr ""
 
-#: lib/mobilizon/actors/actor.ex:377
+#: lib/mobilizon/actors/actor.ex:378
 #, elixir-autogen, elixir-format
 msgid "This username is already taken."
 msgstr ""
@@ -883,7 +878,7 @@ msgstr ""
 msgid "You must provide either an ID or a slug to access a discussion"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:275
+#: lib/graphql/resolvers/event.ex:276
 #, elixir-autogen, elixir-format
 msgid "Organizer profile is not owned by the user"
 msgstr ""
@@ -895,41 +890,41 @@ msgstr ""
 
 #: lib/graphql/resolvers/group.ex:181
 #: lib/graphql/resolvers/group.ex:223
-#: lib/graphql/resolvers/person.ex:157
-#: lib/graphql/resolvers/person.ex:191
-#: lib/graphql/resolvers/person.ex:324
+#: lib/graphql/resolvers/person.ex:159
+#: lib/graphql/resolvers/person.ex:193
+#: lib/graphql/resolvers/person.ex:326
 #, elixir-autogen, elixir-format
 msgid "The provided picture is too heavy"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:129
+#: lib/graphql/resolvers/resource.ex:131
 #, elixir-autogen, elixir-format
 msgid "Error while creating resource"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:537
+#: lib/graphql/resolvers/user.ex:566
 #, elixir-autogen, elixir-format
 msgid "Invalid activation token"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:226
+#: lib/graphql/resolvers/resource.ex:228
 #, elixir-autogen, elixir-format
 msgid "Unable to fetch resource details from this URL."
 msgstr ""
 
 #: lib/graphql/resolvers/event.ex:165
 #: lib/graphql/resolvers/participant.ex:253
-#: lib/graphql/resolvers/participant.ex:328
+#: lib/graphql/resolvers/participant.ex:335
 #, elixir-autogen, elixir-format
 msgid "Provided profile doesn't have moderator permissions on this event"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:286
+#: lib/graphql/resolvers/event.ex:294
 #, elixir-autogen, elixir-format
 msgid "Organizer profile doesn't have permission to create an event on behalf of this group"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:349
+#: lib/graphql/resolvers/event.ex:369
 #, elixir-autogen, elixir-format
 msgid "This profile doesn't have permission to update an event on behalf of this group"
 msgstr ""
@@ -939,7 +934,7 @@ msgstr ""
 msgid "Your e-mail has been denied registration or uses a disallowed e-mail provider"
 msgstr ""
 
-#: lib/graphql/resolvers/comment.ex:150
+#: lib/graphql/resolvers/comment.ex:156
 #, elixir-autogen, elixir-format
 msgid "Comment not found"
 msgstr ""
@@ -949,12 +944,12 @@ msgstr ""
 msgid "Error while creating a discussion"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:658
+#: lib/graphql/resolvers/user.ex:687
 #, elixir-autogen, elixir-format
 msgid "Error while updating locale"
 msgstr ""
 
-#: lib/graphql/resolvers/person.ex:327
+#: lib/graphql/resolvers/person.ex:329
 #, elixir-autogen, elixir-format
 msgid "Error while uploading pictures"
 msgstr ""
@@ -969,13 +964,13 @@ msgstr ""
 msgid "Failed to update the group"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:333
-#: lib/graphql/resolvers/user.ex:501
+#: lib/graphql/resolvers/admin.ex:357
+#: lib/graphql/resolvers/user.ex:547
 #, elixir-autogen, elixir-format
 msgid "Failed to update user email"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:533
+#: lib/graphql/resolvers/user.ex:562
 #, elixir-autogen, elixir-format
 msgid "Failed to validate user email"
 msgstr ""
@@ -985,37 +980,37 @@ msgstr ""
 msgid "The anonymous actor ID is invalid"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:165
+#: lib/graphql/resolvers/resource.ex:167
 #, elixir-autogen, elixir-format
 msgid "Unknown error while updating resource"
 msgstr ""
 
-#: lib/graphql/resolvers/comment.ex:105
+#: lib/graphql/resolvers/comment.ex:111
 #, elixir-autogen, elixir-format
 msgid "You are not the comment creator"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:458
+#: lib/graphql/resolvers/user.ex:471
 #, elixir-autogen, elixir-format
 msgid "You cannot change your password."
 msgstr ""
 
-#: lib/graphql/resolvers/participant.ex:321
+#: lib/graphql/resolvers/participant.ex:328
 #, elixir-autogen, elixir-format
 msgid "Format not supported"
 msgstr ""
 
-#: lib/graphql/resolvers/participant.ex:305
+#: lib/graphql/resolvers/participant.ex:312
 #, elixir-autogen, elixir-format
 msgid "A dependency needed to export to %{format} is not installed"
 msgstr ""
 
-#: lib/graphql/resolvers/participant.ex:313
+#: lib/graphql/resolvers/participant.ex:320
 #, elixir-autogen, elixir-format
 msgid "An error occured while saving export"
 msgstr ""
 
-#: lib/web/controllers/export_controller.ex:30
+#: lib/web/controllers/export_controller.ex:32
 #, elixir-autogen, elixir-format
 msgid "Export to format %{format} is not enabled on this instance"
 msgstr ""
@@ -1025,17 +1020,17 @@ msgstr ""
 msgid "Only admins can create groups"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:279
+#: lib/graphql/resolvers/event.ex:280
 #, elixir-autogen, elixir-format
 msgid "Only groups can create events"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:305
+#: lib/graphql/resolvers/event.ex:313
 #, elixir-autogen, elixir-format
 msgid "Unknown error while creating event"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:514
+#: lib/graphql/resolvers/user.ex:498
 #, elixir-autogen, elixir-format
 msgid "User cannot change email"
 msgstr ""
@@ -1050,12 +1045,12 @@ msgstr ""
 msgid "Follow not found"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:379
+#: lib/graphql/resolvers/user.ex:392
 #, elixir-autogen, elixir-format
 msgid "Profile with username %{username} not found"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:374
+#: lib/graphql/resolvers/user.ex:387
 #, elixir-autogen, elixir-format
 msgid "This profile does not belong to you"
 msgstr ""
@@ -1100,22 +1095,22 @@ msgstr ""
 msgid "Your email seems to be using an invalid format"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:382
+#: lib/graphql/resolvers/admin.ex:399
 #, elixir-autogen, elixir-format
 msgid "Can't confirm an already confirmed user"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:386
+#: lib/graphql/resolvers/admin.ex:403
 #, elixir-autogen, elixir-format
 msgid "Deconfirming users is not supported"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:358
+#: lib/graphql/resolvers/admin.ex:375
 #, elixir-autogen, elixir-format, fuzzy
 msgid "The new role must be different"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:309
+#: lib/graphql/resolvers/admin.ex:314
 #, elixir-autogen, elixir-format, fuzzy
 msgid "You need to be logged-in and an administrator to edit an user's details"
 msgstr ""
@@ -1125,28 +1120,28 @@ msgstr ""
 msgid "A profile or group with that name already exists"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:519
+#: lib/graphql/resolvers/admin.ex:542
 #, elixir-autogen, elixir-format
 msgid "Unable to find an instance to follow at this address"
 msgstr ""
 
-#: lib/mobilizon/actors/actor.ex:396
+#: lib/mobilizon/actors/actor.ex:397
 #, elixir-autogen, elixir-format
 msgid "Username must only contain alphanumeric lowercased characters and underscores."
 msgstr ""
 
 #: lib/graphql/resolvers/user.ex:303
-#: lib/graphql/resolvers/user.ex:326
+#: lib/graphql/resolvers/user.ex:333
 #, elixir-autogen, elixir-format, fuzzy
 msgid "This email doesn't seem to be valid"
 msgstr ""
 
-#: lib/graphql/resolvers/comment.ex:65
+#: lib/graphql/resolvers/comment.ex:59
 #, elixir-autogen, elixir-format
 msgid "This comment was detected as spam."
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:293
+#: lib/graphql/resolvers/event.ex:301
 #, elixir-autogen, elixir-format
 msgid "This event was detected as spam."
 msgstr ""
@@ -1167,7 +1162,7 @@ msgstr ""
 msgid "You need to be a moderator or an administrator to create a note on a report"
 msgstr ""
 
-#: lib/graphql/resolvers/person.ex:330
+#: lib/graphql/resolvers/person.ex:332
 #, elixir-autogen, elixir-format
 msgid "Your profile was detected as spam."
 msgstr ""
@@ -1177,7 +1172,7 @@ msgstr ""
 msgid "Your registration has been detected as spam and cannot be processed."
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:86
+#: lib/web/controllers/application_controller.ex:88
 #, elixir-autogen, elixir-format
 msgid "All of name, scope and redirect_uri parameters are required to create an application"
 msgstr ""
@@ -1192,171 +1187,227 @@ msgstr ""
 msgid "Application token not found"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:89
+#: lib/graphql/resolvers/application.ex:90
 #, elixir-autogen, elixir-format, fuzzy
 msgid "Error while revoking token"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:59
+#: lib/web/controllers/application_controller.ex:61
 #, elixir-autogen, elixir-format
 msgid "Impossible to create application."
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:356
+#: lib/web/controllers/application_controller.ex:358
 #, elixir-autogen, elixir-format
 msgid "Incorrect parameters sent. You need to provide at least the grant_type and client_id parameters, depending on the grant type being used."
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:329
+#: lib/web/controllers/application_controller.ex:331
 #, elixir-autogen, elixir-format
 msgid "Invalid client credentials provided"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:337
+#: lib/web/controllers/application_controller.ex:339
 #, elixir-autogen, elixir-format
 msgid "Invalid refresh token provided"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:170
-#: lib/web/controllers/application_controller.ex:401
+#: lib/web/controllers/application_controller.ex:172
+#: lib/web/controllers/application_controller.ex:403
 #, elixir-autogen, elixir-format
 msgid "No application was found with this client_id"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:37
+#: lib/graphql/resolvers/application.ex:38
 #, elixir-autogen, elixir-format
 msgid "No application with this client_id was found"
 msgstr ""
 
-#: lib/graphql/authorization.ex:80
+#: lib/graphql/authorization.ex:81
 #, elixir-autogen, elixir-format
 msgid "Not authorized to access field %{field}"
 msgstr ""
 
-#: lib/graphql/authorization.ex:70
-#: lib/graphql/authorization.ex:75
+#: lib/graphql/authorization.ex:71
+#: lib/graphql/authorization.ex:76
 #, elixir-autogen, elixir-format
 msgid "Not authorized to access object %{object}"
 msgstr ""
 
-#: lib/graphql/authorization.ex:63
+#: lib/graphql/authorization.ex:64
 #, elixir-autogen, elixir-format
 msgid "Not authorized to access this %{object_type}"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:279
+#: lib/web/controllers/application_controller.ex:281
 #, elixir-autogen, elixir-format
 msgid "Please slow down the rate of your requests"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:267
+#: lib/web/controllers/application_controller.ex:269
 #, elixir-autogen, elixir-format
 msgid "The authorization request is still pending"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:249
+#: lib/web/controllers/application_controller.ex:251
 #, elixir-autogen, elixir-format
 msgid "The client_id provided or the device_code associated is invalid"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:133
+#: lib/graphql/resolvers/application.ex:139
 #, elixir-autogen, elixir-format
 msgid "The device user code was not provided before approving the application"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:304
+#: lib/web/controllers/application_controller.ex:306
 #, elixir-autogen, elixir-format
 msgid "The given device_code has expired"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:44
+#: lib/graphql/resolvers/application.ex:45
 #, elixir-autogen, elixir-format
 msgid "The given redirect_uri is not in the list of allowed redirect URIs"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:158
+#: lib/web/controllers/application_controller.ex:160
 #, elixir-autogen, elixir-format
 msgid "The given scope is not in the list of the app declared scopes"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:109
-#: lib/graphql/resolvers/application.ex:146
+#: lib/graphql/resolvers/application.ex:112
+#: lib/graphql/resolvers/application.ex:154
 #, elixir-autogen, elixir-format
 msgid "The given user code has expired"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:112
-#: lib/graphql/resolvers/application.ex:140
+#: lib/graphql/resolvers/application.ex:118
+#: lib/graphql/resolvers/application.ex:146
 #, elixir-autogen, elixir-format
 msgid "The given user code is invalid"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:411
+#: lib/web/controllers/application_controller.ex:413
 #, elixir-autogen, elixir-format
 msgid "The provided client_id does not match the provided code"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:414
+#: lib/web/controllers/application_controller.ex:416
 #, elixir-autogen, elixir-format
 msgid "The provided client_secret is invalid"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:407
+#: lib/web/controllers/application_controller.ex:409
 #, elixir-autogen, elixir-format
 msgid "The provided code is invalid or expired"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:418
+#: lib/web/controllers/application_controller.ex:420
 #, elixir-autogen, elixir-format
 msgid "The provided scope is invalid or not included in the app declared scopes"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:45
+#: lib/web/controllers/application_controller.ex:47
 #, elixir-autogen, elixir-format
 msgid "The scope parameter is not a space separated list of valid scopes"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:292
+#: lib/web/controllers/application_controller.ex:294
 #, elixir-autogen, elixir-format
 msgid "The user rejected the requested authorization"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:404
+#: lib/web/controllers/application_controller.ex:406
 #, elixir-autogen, elixir-format
 msgid "This redirect URI is not allowed"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:381
+#: lib/web/controllers/application_controller.ex:383
 #, elixir-autogen, elixir-format, fuzzy
 msgid "Token not found"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:72
+#: lib/web/controllers/application_controller.ex:74
 #, elixir-autogen, elixir-format
 msgid "Too many requests"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:184
+#: lib/web/controllers/application_controller.ex:186
 #, elixir-autogen, elixir-format
 msgid "Unable to produce device code"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:373
+#: lib/web/controllers/application_controller.ex:375
 #, elixir-autogen, elixir-format
 msgid "Unable to revoke token"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:198
+#: lib/web/controllers/application_controller.ex:200
 #, elixir-autogen, elixir-format
 msgid "You need to pass both client_id and scope as parameters to obtain a device code"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:136
+#: lib/web/controllers/application_controller.ex:138
 #, elixir-autogen, elixir-format
 msgid "You need to provide a valid redirect_uri to autorize an application"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:126
+#: lib/web/controllers/application_controller.ex:128
 #, elixir-autogen, elixir-format
 msgid "You need to specify client_id, redirect_uri, scope and state to autorize an application"
 msgstr ""
+
+#: lib/graphql/resolvers/user.ex:306
+#, elixir-autogen, elixir-format
+msgid "Couldn't send an email. Internal error."
+msgstr ""
+
+#: lib/graphql/resolvers/participant.ex:286
+#, elixir-autogen, elixir-format
+msgid "Participation is already confirmed"
+msgstr ""
+
+#: lib/graphql/resolvers/participant.ex:283
+#, elixir-autogen, elixir-format
+msgid "Participation is confirmed but not approved yet by an organizer"
+msgstr ""
+
+#: lib/graphql/resolvers/event.ex:287
+#: lib/graphql/resolvers/event.ex:376
+#, elixir-autogen, elixir-format
+msgid "Providing external registration is not allowed"
+msgstr ""
+
+#: lib/graphql/resolvers/push_subscription.ex:48
+#, elixir-autogen, elixir-format
+msgid "The same push subscription has already been registered"
+msgstr ""
+
+#: lib/graphql/resolvers/admin.ex:536
+#, elixir-autogen, elixir-format
+msgid "This instance is pending follow approval"
+msgstr ""
+
+#: lib/graphql/schema/custom/timezone.ex:23
+#, elixir-autogen, elixir-format
+msgid "Timezone ID %{timezone} is invalid"
+msgstr ""
+
+#: lib/graphql/resolvers/admin.ex:539
+#, elixir-autogen, elixir-format, fuzzy
+msgid "You are already following this instance"
+msgstr ""
+
+#: lib/graphql/resolvers/user.ex:310
+#, elixir-autogen, elixir-format, fuzzy
+msgid "You requested again a confirmation email too soon. Please try again in a few minutes"
+msgstr ""
+
+#: lib/graphql/resolvers/user.ex:341
+#, elixir-autogen, elixir-format
+msgid "You requested again a password reset email too soon. Please try again in a few minutes"
+msgstr ""
+
+#: lib/graphql/resolvers/user.ex:368
+#, elixir-autogen, elixir-format
+msgid "The token you provided is invalid. Make sure that the URL is exactly the one provided inside the email you got."
+msgstr ""
diff --git a/priv/gettext/be/LC_MESSAGES/activity.po b/priv/gettext/be/LC_MESSAGES/activity.po
index d8c3fbc66f558a3664903588e9aa06eba9400b9d..5967c19986430be2c6249cc6478a152a6ebc0a77 100644
--- a/priv/gettext/be/LC_MESSAGES/activity.po
+++ b/priv/gettext/be/LC_MESSAGES/activity.po
@@ -9,7 +9,7 @@
 msgid ""
 msgstr ""
 "Language: be\n"
-"Plural-Forms: nplurals=3\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100 != 11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10||n%100>=20) ? 1 : 2);\n"
 
 #: lib/web/templates/email/activity/_member_activity_item.html.heex:14
 #: lib/web/templates/email/activity/_member_activity_item.text.eex:12
@@ -456,3 +456,15 @@ msgstr ""
 #, elixir-autogen, elixir-format, fuzzy
 msgid "%{profile} approved the member %{member}."
 msgstr ""
+
+#: lib/service/activity/renderer/event.ex:74
+#: lib/web/templates/email/activity/_event_activity_item.html.heex:55
+#: lib/web/templates/email/activity/_event_activity_item.text.eex:31
+#, elixir-autogen, elixir-format
+msgid "%{profile} joined your event %{event}."
+msgstr ""
+
+#: lib/web/views/email_view.ex:45
+#, elixir-autogen, elixir-format
+msgid "An anonymous profile"
+msgstr ""
diff --git a/priv/gettext/be/LC_MESSAGES/default.po b/priv/gettext/be/LC_MESSAGES/default.po
index 733271376265d0f8e638cd1221cacb4c14b1b5c1..8dcb9fae0627aea365150a1f815ec4c80d78b22e 100644
--- a/priv/gettext/be/LC_MESSAGES/default.po
+++ b/priv/gettext/be/LC_MESSAGES/default.po
@@ -7,6 +7,7 @@ msgstr ""
 "Last-Translator: Automatically generated\n"
 "Language-Team: none\n"
 "Language: be\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100 != 11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10||n%100>=20) ? 1 : 2);\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -17,7 +18,7 @@ msgstr ""
 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 ""
 
-#: lib/web/templates/email/report.html.heex:120
+#: lib/web/templates/email/report.html.heex:121
 #, elixir-autogen, elixir-format
 msgid "%{title} by %{creator}"
 msgstr ""
@@ -33,23 +34,17 @@ msgstr ""
 msgid "Ask the community on Framacolibri"
 msgstr ""
 
-#: lib/web/templates/email/report.text.eex:15
+#: lib/web/templates/email/report.text.eex:17
 #, elixir-autogen, elixir-format
 msgid "Comments"
 msgstr ""
 
-#: lib/web/templates/email/report.html.heex:115
-#: lib/web/templates/email/report.text.eex:11
-#, elixir-autogen, elixir-format
-msgid "Event"
-msgstr ""
-
 #: lib/web/email/user.ex:49
 #, elixir-autogen, elixir-format
 msgid "Instructions to reset your password on %{instance}"
 msgstr ""
 
-#: lib/web/templates/email/report.text.eex:21
+#: lib/web/templates/email/report.text.eex:23
 #, elixir-autogen, elixir-format
 msgid "Reason"
 msgstr ""
@@ -309,12 +304,12 @@ msgctxt "terms"
 msgid "What information do we collect?"
 msgstr ""
 
-#: lib/web/email/user.ex:182
+#: lib/web/email/user.ex:188
 #, elixir-autogen, elixir-format
 msgid "Mobilizon on %{instance}: confirm your email address"
 msgstr ""
 
-#: lib/web/email/user.ex:159
+#: lib/web/email/user.ex:165
 #, elixir-autogen, elixir-format
 msgid "Mobilizon on %{instance}: email changed"
 msgstr ""
@@ -811,7 +806,7 @@ msgstr ""
 msgid "Event update!"
 msgstr ""
 
-#: lib/web/templates/email/report.html.heex:155
+#: lib/web/templates/email/report.html.heex:158
 #, elixir-autogen, elixir-format
 msgid "Flagged comments"
 msgstr ""
@@ -892,7 +887,7 @@ msgstr ""
 msgid "New email confirmation"
 msgstr ""
 
-#: lib/web/templates/email/report.html.heex:191
+#: lib/web/templates/email/report.html.heex:194
 #, elixir-autogen, elixir-format
 msgid "Reasons for report"
 msgstr ""
@@ -947,12 +942,12 @@ msgstr ""
 msgid "Verify your email address"
 msgstr ""
 
-#: lib/web/templates/email/report.html.heex:232
+#: lib/web/templates/email/report.html.heex:235
 #, elixir-autogen, elixir-format
 msgid "View report"
 msgstr ""
 
-#: lib/web/templates/email/report.text.eex:24
+#: lib/web/templates/email/report.text.eex:26
 #, elixir-autogen, elixir-format
 msgid "View report:"
 msgstr ""
@@ -1050,12 +1045,6 @@ msgstr ""
 msgid "As this group was located on another instance, it will continue to work for other instances than this one."
 msgstr ""
 
-#: lib/web/templates/email/group_suspension.html.heex:67
-#: lib/web/templates/email/group_suspension.text.eex:5
-#, elixir-autogen, elixir-format
-msgid "As this group was located on this instance, all of it's data has been irretrievably deleted."
-msgstr ""
-
 #: lib/web/templates/email/group_suspension.html.heex:18
 #: lib/web/templates/email/group_suspension.text.eex:1
 #, elixir-autogen, elixir-format
@@ -1067,7 +1056,7 @@ msgstr ""
 msgid "Your instance's moderation team has decided to suspend %{group_name} (%{group_address}). You are no longer a member of this group."
 msgstr ""
 
-#: lib/web/email/group.ex:107
+#: lib/web/email/group.ex:108
 #, elixir-autogen, elixir-format
 msgid "The group %{group} has been suspended on %{instance}"
 msgstr ""
@@ -1349,16 +1338,6 @@ msgstr ""
 msgid "Public feed for %{instance}"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:350
-#, elixir-autogen, elixir-format
-msgid "The password you have choosen is too short. Please make sure your password contains at least 6 charaters."
-msgstr ""
-
-#: lib/graphql/resolvers/user.ex:356
-#, elixir-autogen, elixir-format
-msgid "The token you provided is invalid. Make sure that the URL is exactly the one provided inside the email you got."
-msgstr ""
-
 #: lib/web/email/actor.ex:43
 #, elixir-autogen, elixir-format
 msgid "Your participation to %{event} has been cancelled!"
@@ -1382,63 +1361,63 @@ msgid "Your participation to %{event} on %{instance} has been cancelled!"
 msgstr ""
 
 #. File name template for exported list of participants. Should NOT contain spaces. Make sure the output is going to be something standardized that is acceptable as a file name on most systems.
-#: lib/service/export/participants/csv.ex:81
+#: lib/service/export/participants/csv.ex:97
 #: lib/service/export/participants/ods.ex:86
 #: lib/service/export/participants/pdf.ex:96
 #, elixir-autogen, elixir-format
 msgid "%{event}_participants"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:61
+#: lib/service/export/participants/common.ex:66
 #, elixir-autogen, elixir-format
 msgid "Participant message"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:61
+#: lib/service/export/participants/common.ex:63
 #, elixir-autogen, elixir-format
 msgid "Participant name"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:61
+#: lib/service/export/participants/common.ex:64
 #, elixir-autogen, elixir-format
 msgid "Participant status"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:52
+#: lib/service/export/participants/common.ex:53
 #: lib/web/templates/email/admin/_role.html.heex:3
 #: lib/web/templates/email/admin/_role.text.eex:1
 #, elixir-autogen, elixir-format
 msgid "Administrator"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:55
+#: lib/service/export/participants/common.ex:56
 #, elixir-autogen, elixir-format
 msgid "Creator"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:49
+#: lib/service/export/participants/common.ex:50
 #: lib/web/templates/email/admin/_role.html.heex:5
 #: lib/web/templates/email/admin/_role.text.eex:1
 #, elixir-autogen, elixir-format
 msgid "Moderator"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:37
+#: lib/service/export/participants/common.ex:38
 #, elixir-autogen, elixir-format
 msgid "Not approved"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:40
+#: lib/service/export/participants/common.ex:41
 #, elixir-autogen, elixir-format
 msgid "Not confirmed"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:46
+#: lib/service/export/participants/common.ex:47
 #, elixir-autogen, elixir-format
 msgid "Participant"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:43
+#: lib/service/export/participants/common.ex:44
 #, elixir-autogen, elixir-format
 msgid "Rejected"
 msgstr ""
@@ -1463,7 +1442,7 @@ msgstr ""
 msgid "Participants for %{event}"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:88
+#: lib/service/export/participants/common.ex:95
 #, elixir-autogen, elixir-format
 msgid "Anonymous participant"
 msgstr ""
@@ -1582,7 +1561,7 @@ msgstr ""
 msgid "Title: %{title}"
 msgstr ""
 
-#: lib/web/email/group.ex:46
+#: lib/web/email/group.ex:47
 #, elixir-autogen, elixir-format
 msgid "📅 Just scheduled by %{group}: %{event}"
 msgstr ""
@@ -1996,3 +1975,24 @@ msgstr ""
 #, elixir-autogen, elixir-format
 msgid "Until next time!"
 msgstr ""
+
+#: lib/web/templates/email/group_suspension.html.heex:67
+#: lib/web/templates/email/group_suspension.text.eex:5
+#, elixir-autogen, elixir-format, fuzzy
+msgid "As this group was located on this instance, all of its data has been irretrievably deleted."
+msgstr ""
+
+#: lib/web/templates/email/report.text.eex:11
+#, elixir-autogen, elixir-format, fuzzy
+msgid "Events"
+msgstr ""
+
+#: lib/web/templates/email/report.html.heex:115
+#, elixir-autogen, elixir-format, fuzzy
+msgid "Flagged events"
+msgstr ""
+
+#: lib/service/export/participants/common.ex:65
+#, elixir-autogen, elixir-format, fuzzy
+msgid "Participant registration date"
+msgstr ""
diff --git a/priv/gettext/be/LC_MESSAGES/errors.po b/priv/gettext/be/LC_MESSAGES/errors.po
index cecf8d174912dc26537cce85265ff74523fe529e..27b6bc7039f7dc49f20756f1c1a1cbcc50290ed2 100644
--- a/priv/gettext/be/LC_MESSAGES/errors.po
+++ b/priv/gettext/be/LC_MESSAGES/errors.po
@@ -9,7 +9,7 @@
 msgid ""
 msgstr ""
 "Language: be\n"
-"Plural-Forms: nplurals=3\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100 != 11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10||n%100>=20) ? 1 : 2);\n"
 
 #: lib/mobilizon/discussions/discussion.ex:69
 #, elixir-autogen
@@ -109,7 +109,7 @@ msgstr ""
 msgid "Current profile is not an administrator of the selected group"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:644
+#: lib/graphql/resolvers/user.ex:673
 #, elixir-autogen, elixir-format
 msgid "Error while saving user settings"
 msgstr ""
@@ -152,8 +152,8 @@ msgstr ""
 msgid "No user to validate with this email was found"
 msgstr ""
 
-#: lib/graphql/resolvers/person.ex:337
-#: lib/graphql/resolvers/user.ex:330
+#: lib/graphql/resolvers/person.ex:339
+#: lib/graphql/resolvers/user.ex:337
 #, elixir-autogen, elixir-format
 msgid "No user with this email was found"
 msgstr ""
@@ -161,12 +161,12 @@ msgstr ""
 #: lib/graphql/resolvers/feed_token.ex:28
 #: lib/graphql/resolvers/participant.ex:32
 #: lib/graphql/resolvers/participant.ex:210
-#: lib/graphql/resolvers/person.ex:245
-#: lib/graphql/resolvers/person.ex:376
-#: lib/graphql/resolvers/person.ex:412
-#: lib/graphql/resolvers/person.ex:419
-#: lib/graphql/resolvers/person.ex:448
-#: lib/graphql/resolvers/person.ex:463
+#: lib/graphql/resolvers/person.ex:247
+#: lib/graphql/resolvers/person.ex:378
+#: lib/graphql/resolvers/person.ex:414
+#: lib/graphql/resolvers/person.ex:421
+#: lib/graphql/resolvers/person.ex:450
+#: lib/graphql/resolvers/person.ex:465
 #, elixir-autogen, elixir-format
 msgid "Profile is not owned by authenticated user"
 msgstr ""
@@ -176,41 +176,42 @@ msgstr ""
 msgid "Registrations are not open"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:461
+#: lib/graphql/resolvers/user.ex:474
 #, elixir-autogen, elixir-format
 msgid "The current password is invalid"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:336
-#: lib/graphql/resolvers/user.ex:504
+#: lib/graphql/resolvers/admin.ex:334
+#: lib/graphql/resolvers/user.ex:527
 #, elixir-autogen, elixir-format
 msgid "The new email doesn't seem to be valid"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:339
-#: lib/graphql/resolvers/user.ex:507
+#: lib/graphql/resolvers/admin.ex:323
+#: lib/graphql/resolvers/user.ex:514
 #, elixir-autogen, elixir-format
 msgid "The new email must be different"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:464
+#: lib/graphql/resolvers/user.ex:477
 #, elixir-autogen, elixir-format
 msgid "The new password must be different"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:511
-#: lib/graphql/resolvers/user.ex:573
-#: lib/graphql/resolvers/user.ex:576
+#: lib/graphql/resolvers/user.ex:518
+#: lib/graphql/resolvers/user.ex:602
+#: lib/graphql/resolvers/user.ex:605
 #, elixir-autogen, elixir-format
 msgid "The password provided is invalid"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:468
+#: lib/graphql/resolvers/user.ex:361
+#: lib/graphql/resolvers/user.ex:481
 #, elixir-autogen, elixir-format
 msgid "The password you have chosen is too short. Please make sure your password contains at least 6 characters."
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:323
+#: lib/graphql/resolvers/user.ex:330
 #, elixir-autogen, elixir-format
 msgid "This user can't reset their password"
 msgstr ""
@@ -226,12 +227,12 @@ msgstr ""
 msgid "Unable to validate user"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:554
+#: lib/graphql/resolvers/user.ex:583
 #, elixir-autogen, elixir-format
 msgid "User already disabled"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:619
+#: lib/graphql/resolvers/user.ex:648
 #, elixir-autogen, elixir-format
 msgid "User requested is not logged-in"
 msgstr ""
@@ -256,12 +257,12 @@ msgstr ""
 msgid "You may not list groups unless moderator."
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:519
+#: lib/graphql/resolvers/user.ex:503
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to change your email"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:476
+#: lib/graphql/resolvers/user.ex:489
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to change your password"
 msgstr ""
@@ -271,7 +272,7 @@ msgstr ""
 msgid "You need to be logged-in to delete a group"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:581
+#: lib/graphql/resolvers/user.ex:610
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to delete your account"
 msgstr ""
@@ -296,12 +297,6 @@ msgstr ""
 msgid "You need to have an existing token to get a refresh token"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:306
-#: lib/graphql/resolvers/user.ex:333
-#, elixir-autogen, elixir-format
-msgid "You requested again a confirmation email too soon"
-msgstr ""
-
 #: lib/graphql/resolvers/user.ex:180
 #, elixir-autogen, elixir-format
 msgid "Your email is not on the allowlist"
@@ -354,17 +349,17 @@ msgstr ""
 msgid "Anonymous participation is not enabled"
 msgstr ""
 
-#: lib/graphql/resolvers/person.ex:219
+#: lib/graphql/resolvers/person.ex:221
 #, elixir-autogen, elixir-format
 msgid "Cannot remove the last administrator of a group"
 msgstr ""
 
-#: lib/graphql/resolvers/person.ex:216
+#: lib/graphql/resolvers/person.ex:218
 #, elixir-autogen, elixir-format
 msgid "Cannot remove the last identity of a user"
 msgstr ""
 
-#: lib/graphql/resolvers/comment.ex:147
+#: lib/graphql/resolvers/comment.ex:153
 #, elixir-autogen, elixir-format
 msgid "Comment is already deleted"
 msgstr ""
@@ -392,8 +387,8 @@ msgid "Event id not found"
 msgstr ""
 
 #: lib/graphql/error.ex:114
-#: lib/graphql/resolvers/event.ex:355
-#: lib/graphql/resolvers/event.ex:407
+#: lib/graphql/resolvers/event.ex:382
+#: lib/graphql/resolvers/event.ex:434
 #, elixir-autogen, elixir-format
 msgid "Event not found"
 msgstr ""
@@ -401,7 +396,7 @@ msgstr ""
 #: lib/graphql/resolvers/participant.ex:87
 #: lib/graphql/resolvers/participant.ex:128
 #: lib/graphql/resolvers/participant.ex:155
-#: lib/graphql/resolvers/participant.ex:336
+#: lib/graphql/resolvers/participant.ex:343
 #, elixir-autogen, elixir-format
 msgid "Event with this ID %{id} doesn't exist"
 msgstr ""
@@ -411,7 +406,7 @@ msgstr ""
 msgid "Internal Error"
 msgstr ""
 
-#: lib/graphql/resolvers/discussion.ex:219
+#: lib/graphql/resolvers/discussion.ex:222
 #, elixir-autogen, elixir-format
 msgid "No discussion with ID %{id}"
 msgstr ""
@@ -478,10 +473,10 @@ msgstr ""
 #: lib/graphql/resolvers/post.ex:133
 #: lib/graphql/resolvers/post.ex:175
 #: lib/graphql/resolvers/post.ex:209
-#: lib/graphql/resolvers/resource.ex:90
-#: lib/graphql/resolvers/resource.ex:135
-#: lib/graphql/resolvers/resource.ex:168
-#: lib/graphql/resolvers/resource.ex:202
+#: lib/graphql/resolvers/resource.ex:92
+#: lib/graphql/resolvers/resource.ex:137
+#: lib/graphql/resolvers/resource.ex:170
+#: lib/graphql/resolvers/resource.ex:204
 #: lib/graphql/resolvers/todos.ex:58
 #: lib/graphql/resolvers/todos.ex:83
 #: lib/graphql/resolvers/todos.ex:110
@@ -493,7 +488,7 @@ msgid "Profile is not member of group"
 msgstr ""
 
 #: lib/graphql/resolvers/actor.ex:67
-#: lib/graphql/resolvers/person.ex:242
+#: lib/graphql/resolvers/person.ex:244
 #, elixir-autogen, elixir-format
 msgid "Profile not found"
 msgstr ""
@@ -503,8 +498,8 @@ msgstr ""
 msgid "Report not found"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:172
-#: lib/graphql/resolvers/resource.ex:199
+#: lib/graphql/resolvers/resource.ex:174
+#: lib/graphql/resolvers/resource.ex:201
 #, elixir-autogen, elixir-format
 msgid "Resource doesn't exist"
 msgstr ""
@@ -514,7 +509,7 @@ msgstr ""
 msgid "The event has already reached its maximum capacity"
 msgstr ""
 
-#: lib/graphql/resolvers/participant.ex:282
+#: lib/graphql/resolvers/participant.ex:289
 #, elixir-autogen, elixir-format
 msgid "This token is invalid"
 msgstr ""
@@ -548,7 +543,7 @@ msgstr ""
 msgid "User not found"
 msgstr ""
 
-#: lib/graphql/resolvers/person.ex:333
+#: lib/graphql/resolvers/person.ex:335
 #, elixir-autogen, elixir-format
 msgid "You already have a profile for this user"
 msgstr ""
@@ -570,7 +565,7 @@ msgstr ""
 msgid "You are not a moderator or admin for this group"
 msgstr ""
 
-#: lib/graphql/resolvers/comment.ex:80
+#: lib/graphql/resolvers/comment.ex:74
 #, elixir-autogen, elixir-format
 msgid "You are not allowed to create a comment if not connected"
 msgstr ""
@@ -580,7 +575,7 @@ msgstr ""
 msgid "You are not allowed to create a feed token if not connected"
 msgstr ""
 
-#: lib/graphql/resolvers/comment.ex:155
+#: lib/graphql/resolvers/comment.ex:161
 #, elixir-autogen, elixir-format
 msgid "You are not allowed to delete a comment if not connected"
 msgstr ""
@@ -590,7 +585,7 @@ msgstr ""
 msgid "You are not allowed to delete a feed token if not connected"
 msgstr ""
 
-#: lib/graphql/resolvers/comment.ex:114
+#: lib/graphql/resolvers/comment.ex:120
 #, elixir-autogen, elixir-format
 msgid "You are not allowed to update a comment if not connected"
 msgstr ""
@@ -606,12 +601,12 @@ msgstr ""
 msgid "You can't set yourself to a lower member role for this group because you are the only administrator"
 msgstr ""
 
-#: lib/graphql/resolvers/comment.ex:143
+#: lib/graphql/resolvers/comment.ex:149
 #, elixir-autogen, elixir-format
 msgid "You cannot delete this comment"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:403
+#: lib/graphql/resolvers/event.ex:430
 #, elixir-autogen, elixir-format
 msgid "You cannot delete this event"
 msgstr ""
@@ -646,17 +641,17 @@ msgstr ""
 msgid "You need to be logged-in and a moderator to view a report"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:252
+#: lib/graphql/resolvers/admin.ex:258
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in and an administrator to access admin settings"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:236
+#: lib/graphql/resolvers/admin.ex:242
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in and an administrator to access dashboard statistics"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:278
+#: lib/graphql/resolvers/admin.ex:283
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in and an administrator to save admin settings"
 msgstr ""
@@ -666,12 +661,12 @@ msgstr ""
 msgid "You need to be logged-in to access discussions"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:96
+#: lib/graphql/resolvers/resource.ex:98
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to access resources"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:313
+#: lib/graphql/resolvers/event.ex:321
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to create events"
 msgstr ""
@@ -686,12 +681,12 @@ msgstr ""
 msgid "You need to be logged-in to create reports"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:140
+#: lib/graphql/resolvers/resource.ex:142
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to create resources"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:412
+#: lib/graphql/resolvers/event.ex:439
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to delete an event"
 msgstr ""
@@ -701,7 +696,7 @@ msgstr ""
 msgid "You need to be logged-in to delete posts"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:207
+#: lib/graphql/resolvers/resource.ex:209
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to delete resources"
 msgstr ""
@@ -716,7 +711,7 @@ msgstr ""
 msgid "You need to be logged-in to leave an event"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:369
+#: lib/graphql/resolvers/event.ex:396
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to update an event"
 msgstr ""
@@ -726,17 +721,17 @@ msgstr ""
 msgid "You need to be logged-in to update posts"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:177
+#: lib/graphql/resolvers/resource.ex:179
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to update resources"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:236
+#: lib/graphql/resolvers/resource.ex:233
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to view a resource preview"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:132
+#: lib/graphql/resolvers/resource.ex:134
 #, elixir-autogen, elixir-format
 msgid "Parent resource doesn't belong to this group"
 msgstr ""
@@ -822,12 +817,12 @@ msgstr ""
 msgid "Profile is not administrator for the group"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:358
+#: lib/graphql/resolvers/event.ex:385
 #, elixir-autogen, elixir-format
 msgid "You can't edit this event."
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:361
+#: lib/graphql/resolvers/event.ex:388
 #, elixir-autogen, elixir-format
 msgid "You can't attribute this event to this profile."
 msgstr ""
@@ -847,7 +842,7 @@ msgstr ""
 msgid "You don't have the right to remove this member."
 msgstr ""
 
-#: lib/mobilizon/actors/actor.ex:377
+#: lib/mobilizon/actors/actor.ex:378
 #, elixir-autogen, elixir-format
 msgid "This username is already taken."
 msgstr ""
@@ -857,7 +852,7 @@ msgstr ""
 msgid "You must provide either an ID or a slug to access a discussion"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:275
+#: lib/graphql/resolvers/event.ex:276
 #, elixir-autogen, elixir-format
 msgid "Organizer profile is not owned by the user"
 msgstr ""
@@ -869,41 +864,41 @@ msgstr ""
 
 #: lib/graphql/resolvers/group.ex:181
 #: lib/graphql/resolvers/group.ex:223
-#: lib/graphql/resolvers/person.ex:157
-#: lib/graphql/resolvers/person.ex:191
-#: lib/graphql/resolvers/person.ex:324
+#: lib/graphql/resolvers/person.ex:159
+#: lib/graphql/resolvers/person.ex:193
+#: lib/graphql/resolvers/person.ex:326
 #, elixir-autogen, elixir-format
 msgid "The provided picture is too heavy"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:129
+#: lib/graphql/resolvers/resource.ex:131
 #, elixir-autogen, elixir-format
 msgid "Error while creating resource"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:537
+#: lib/graphql/resolvers/user.ex:566
 #, elixir-autogen, elixir-format
 msgid "Invalid activation token"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:226
+#: lib/graphql/resolvers/resource.ex:228
 #, elixir-autogen, elixir-format
 msgid "Unable to fetch resource details from this URL."
 msgstr ""
 
 #: lib/graphql/resolvers/event.ex:165
 #: lib/graphql/resolvers/participant.ex:253
-#: lib/graphql/resolvers/participant.ex:328
+#: lib/graphql/resolvers/participant.ex:335
 #, elixir-autogen, elixir-format
 msgid "Provided profile doesn't have moderator permissions on this event"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:286
+#: lib/graphql/resolvers/event.ex:294
 #, elixir-autogen, elixir-format
 msgid "Organizer profile doesn't have permission to create an event on behalf of this group"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:349
+#: lib/graphql/resolvers/event.ex:369
 #, elixir-autogen, elixir-format
 msgid "This profile doesn't have permission to update an event on behalf of this group"
 msgstr ""
@@ -913,7 +908,7 @@ msgstr ""
 msgid "Your e-mail has been denied registration or uses a disallowed e-mail provider"
 msgstr ""
 
-#: lib/graphql/resolvers/comment.ex:150
+#: lib/graphql/resolvers/comment.ex:156
 #, elixir-autogen, elixir-format
 msgid "Comment not found"
 msgstr ""
@@ -923,12 +918,12 @@ msgstr ""
 msgid "Error while creating a discussion"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:658
+#: lib/graphql/resolvers/user.ex:687
 #, elixir-autogen, elixir-format
 msgid "Error while updating locale"
 msgstr ""
 
-#: lib/graphql/resolvers/person.ex:327
+#: lib/graphql/resolvers/person.ex:329
 #, elixir-autogen, elixir-format
 msgid "Error while uploading pictures"
 msgstr ""
@@ -943,13 +938,13 @@ msgstr ""
 msgid "Failed to update the group"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:333
-#: lib/graphql/resolvers/user.ex:501
+#: lib/graphql/resolvers/admin.ex:357
+#: lib/graphql/resolvers/user.ex:547
 #, elixir-autogen, elixir-format
 msgid "Failed to update user email"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:533
+#: lib/graphql/resolvers/user.ex:562
 #, elixir-autogen, elixir-format
 msgid "Failed to validate user email"
 msgstr ""
@@ -959,37 +954,37 @@ msgstr ""
 msgid "The anonymous actor ID is invalid"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:165
+#: lib/graphql/resolvers/resource.ex:167
 #, elixir-autogen, elixir-format
 msgid "Unknown error while updating resource"
 msgstr ""
 
-#: lib/graphql/resolvers/comment.ex:105
+#: lib/graphql/resolvers/comment.ex:111
 #, elixir-autogen, elixir-format
 msgid "You are not the comment creator"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:458
+#: lib/graphql/resolvers/user.ex:471
 #, elixir-autogen, elixir-format
 msgid "You cannot change your password."
 msgstr ""
 
-#: lib/graphql/resolvers/participant.ex:321
+#: lib/graphql/resolvers/participant.ex:328
 #, elixir-autogen, elixir-format
 msgid "Format not supported"
 msgstr ""
 
-#: lib/graphql/resolvers/participant.ex:305
+#: lib/graphql/resolvers/participant.ex:312
 #, elixir-autogen, elixir-format
 msgid "A dependency needed to export to %{format} is not installed"
 msgstr ""
 
-#: lib/graphql/resolvers/participant.ex:313
+#: lib/graphql/resolvers/participant.ex:320
 #, elixir-autogen, elixir-format
 msgid "An error occured while saving export"
 msgstr ""
 
-#: lib/web/controllers/export_controller.ex:30
+#: lib/web/controllers/export_controller.ex:32
 #, elixir-autogen, elixir-format
 msgid "Export to format %{format} is not enabled on this instance"
 msgstr ""
@@ -999,17 +994,17 @@ msgstr ""
 msgid "Only admins can create groups"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:279
+#: lib/graphql/resolvers/event.ex:280
 #, elixir-autogen, elixir-format
 msgid "Only groups can create events"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:305
+#: lib/graphql/resolvers/event.ex:313
 #, elixir-autogen, elixir-format
 msgid "Unknown error while creating event"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:514
+#: lib/graphql/resolvers/user.ex:498
 #, elixir-autogen, elixir-format
 msgid "User cannot change email"
 msgstr ""
@@ -1024,12 +1019,12 @@ msgstr ""
 msgid "Follow not found"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:379
+#: lib/graphql/resolvers/user.ex:392
 #, elixir-autogen, elixir-format
 msgid "Profile with username %{username} not found"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:374
+#: lib/graphql/resolvers/user.ex:387
 #, elixir-autogen, elixir-format
 msgid "This profile does not belong to you"
 msgstr ""
@@ -1074,22 +1069,22 @@ msgstr ""
 msgid "Your email seems to be using an invalid format"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:382
+#: lib/graphql/resolvers/admin.ex:399
 #, elixir-autogen, elixir-format
 msgid "Can't confirm an already confirmed user"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:386
+#: lib/graphql/resolvers/admin.ex:403
 #, elixir-autogen, elixir-format
 msgid "Deconfirming users is not supported"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:358
+#: lib/graphql/resolvers/admin.ex:375
 #, elixir-autogen, elixir-format, fuzzy
 msgid "The new role must be different"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:309
+#: lib/graphql/resolvers/admin.ex:314
 #, elixir-autogen, elixir-format, fuzzy
 msgid "You need to be logged-in and an administrator to edit an user's details"
 msgstr ""
@@ -1099,28 +1094,28 @@ msgstr ""
 msgid "A profile or group with that name already exists"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:519
+#: lib/graphql/resolvers/admin.ex:542
 #, elixir-autogen, elixir-format
 msgid "Unable to find an instance to follow at this address"
 msgstr ""
 
-#: lib/mobilizon/actors/actor.ex:396
+#: lib/mobilizon/actors/actor.ex:397
 #, elixir-autogen, elixir-format
 msgid "Username must only contain alphanumeric lowercased characters and underscores."
 msgstr ""
 
 #: lib/graphql/resolvers/user.ex:303
-#: lib/graphql/resolvers/user.ex:326
+#: lib/graphql/resolvers/user.ex:333
 #, elixir-autogen, elixir-format, fuzzy
 msgid "This email doesn't seem to be valid"
 msgstr ""
 
-#: lib/graphql/resolvers/comment.ex:65
+#: lib/graphql/resolvers/comment.ex:59
 #, elixir-autogen, elixir-format
 msgid "This comment was detected as spam."
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:293
+#: lib/graphql/resolvers/event.ex:301
 #, elixir-autogen, elixir-format
 msgid "This event was detected as spam."
 msgstr ""
@@ -1141,7 +1136,7 @@ msgstr ""
 msgid "You need to be a moderator or an administrator to create a note on a report"
 msgstr ""
 
-#: lib/graphql/resolvers/person.ex:330
+#: lib/graphql/resolvers/person.ex:332
 #, elixir-autogen, elixir-format
 msgid "Your profile was detected as spam."
 msgstr ""
@@ -1151,7 +1146,7 @@ msgstr ""
 msgid "Your registration has been detected as spam and cannot be processed."
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:86
+#: lib/web/controllers/application_controller.ex:88
 #, elixir-autogen, elixir-format
 msgid "All of name, scope and redirect_uri parameters are required to create an application"
 msgstr ""
@@ -1166,171 +1161,227 @@ msgstr ""
 msgid "Application token not found"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:89
+#: lib/graphql/resolvers/application.ex:90
 #, elixir-autogen, elixir-format, fuzzy
 msgid "Error while revoking token"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:59
+#: lib/web/controllers/application_controller.ex:61
 #, elixir-autogen, elixir-format
 msgid "Impossible to create application."
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:356
+#: lib/web/controllers/application_controller.ex:358
 #, elixir-autogen, elixir-format
 msgid "Incorrect parameters sent. You need to provide at least the grant_type and client_id parameters, depending on the grant type being used."
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:329
+#: lib/web/controllers/application_controller.ex:331
 #, elixir-autogen, elixir-format
 msgid "Invalid client credentials provided"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:337
+#: lib/web/controllers/application_controller.ex:339
 #, elixir-autogen, elixir-format
 msgid "Invalid refresh token provided"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:170
-#: lib/web/controllers/application_controller.ex:401
+#: lib/web/controllers/application_controller.ex:172
+#: lib/web/controllers/application_controller.ex:403
 #, elixir-autogen, elixir-format
 msgid "No application was found with this client_id"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:37
+#: lib/graphql/resolvers/application.ex:38
 #, elixir-autogen, elixir-format
 msgid "No application with this client_id was found"
 msgstr ""
 
-#: lib/graphql/authorization.ex:80
+#: lib/graphql/authorization.ex:81
 #, elixir-autogen, elixir-format
 msgid "Not authorized to access field %{field}"
 msgstr ""
 
-#: lib/graphql/authorization.ex:70
-#: lib/graphql/authorization.ex:75
+#: lib/graphql/authorization.ex:71
+#: lib/graphql/authorization.ex:76
 #, elixir-autogen, elixir-format
 msgid "Not authorized to access object %{object}"
 msgstr ""
 
-#: lib/graphql/authorization.ex:63
+#: lib/graphql/authorization.ex:64
 #, elixir-autogen, elixir-format
 msgid "Not authorized to access this %{object_type}"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:279
+#: lib/web/controllers/application_controller.ex:281
 #, elixir-autogen, elixir-format
 msgid "Please slow down the rate of your requests"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:267
+#: lib/web/controllers/application_controller.ex:269
 #, elixir-autogen, elixir-format
 msgid "The authorization request is still pending"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:249
+#: lib/web/controllers/application_controller.ex:251
 #, elixir-autogen, elixir-format
 msgid "The client_id provided or the device_code associated is invalid"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:133
+#: lib/graphql/resolvers/application.ex:139
 #, elixir-autogen, elixir-format
 msgid "The device user code was not provided before approving the application"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:304
+#: lib/web/controllers/application_controller.ex:306
 #, elixir-autogen, elixir-format
 msgid "The given device_code has expired"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:44
+#: lib/graphql/resolvers/application.ex:45
 #, elixir-autogen, elixir-format
 msgid "The given redirect_uri is not in the list of allowed redirect URIs"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:158
+#: lib/web/controllers/application_controller.ex:160
 #, elixir-autogen, elixir-format
 msgid "The given scope is not in the list of the app declared scopes"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:109
-#: lib/graphql/resolvers/application.ex:146
+#: lib/graphql/resolvers/application.ex:112
+#: lib/graphql/resolvers/application.ex:154
 #, elixir-autogen, elixir-format
 msgid "The given user code has expired"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:112
-#: lib/graphql/resolvers/application.ex:140
+#: lib/graphql/resolvers/application.ex:118
+#: lib/graphql/resolvers/application.ex:146
 #, elixir-autogen, elixir-format
 msgid "The given user code is invalid"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:411
+#: lib/web/controllers/application_controller.ex:413
 #, elixir-autogen, elixir-format
 msgid "The provided client_id does not match the provided code"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:414
+#: lib/web/controllers/application_controller.ex:416
 #, elixir-autogen, elixir-format
 msgid "The provided client_secret is invalid"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:407
+#: lib/web/controllers/application_controller.ex:409
 #, elixir-autogen, elixir-format
 msgid "The provided code is invalid or expired"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:418
+#: lib/web/controllers/application_controller.ex:420
 #, elixir-autogen, elixir-format
 msgid "The provided scope is invalid or not included in the app declared scopes"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:45
+#: lib/web/controllers/application_controller.ex:47
 #, elixir-autogen, elixir-format
 msgid "The scope parameter is not a space separated list of valid scopes"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:292
+#: lib/web/controllers/application_controller.ex:294
 #, elixir-autogen, elixir-format
 msgid "The user rejected the requested authorization"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:404
+#: lib/web/controllers/application_controller.ex:406
 #, elixir-autogen, elixir-format
 msgid "This redirect URI is not allowed"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:381
+#: lib/web/controllers/application_controller.ex:383
 #, elixir-autogen, elixir-format, fuzzy
 msgid "Token not found"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:72
+#: lib/web/controllers/application_controller.ex:74
 #, elixir-autogen, elixir-format
 msgid "Too many requests"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:184
+#: lib/web/controllers/application_controller.ex:186
 #, elixir-autogen, elixir-format
 msgid "Unable to produce device code"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:373
+#: lib/web/controllers/application_controller.ex:375
 #, elixir-autogen, elixir-format
 msgid "Unable to revoke token"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:198
+#: lib/web/controllers/application_controller.ex:200
 #, elixir-autogen, elixir-format
 msgid "You need to pass both client_id and scope as parameters to obtain a device code"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:136
+#: lib/web/controllers/application_controller.ex:138
 #, elixir-autogen, elixir-format
 msgid "You need to provide a valid redirect_uri to autorize an application"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:126
+#: lib/web/controllers/application_controller.ex:128
 #, elixir-autogen, elixir-format
 msgid "You need to specify client_id, redirect_uri, scope and state to autorize an application"
 msgstr ""
+
+#: lib/graphql/resolvers/user.ex:306
+#, elixir-autogen, elixir-format
+msgid "Couldn't send an email. Internal error."
+msgstr ""
+
+#: lib/graphql/resolvers/participant.ex:286
+#, elixir-autogen, elixir-format
+msgid "Participation is already confirmed"
+msgstr ""
+
+#: lib/graphql/resolvers/participant.ex:283
+#, elixir-autogen, elixir-format
+msgid "Participation is confirmed but not approved yet by an organizer"
+msgstr ""
+
+#: lib/graphql/resolvers/event.ex:287
+#: lib/graphql/resolvers/event.ex:376
+#, elixir-autogen, elixir-format
+msgid "Providing external registration is not allowed"
+msgstr ""
+
+#: lib/graphql/resolvers/push_subscription.ex:48
+#, elixir-autogen, elixir-format
+msgid "The same push subscription has already been registered"
+msgstr ""
+
+#: lib/graphql/resolvers/admin.ex:536
+#, elixir-autogen, elixir-format
+msgid "This instance is pending follow approval"
+msgstr ""
+
+#: lib/graphql/schema/custom/timezone.ex:23
+#, elixir-autogen, elixir-format
+msgid "Timezone ID %{timezone} is invalid"
+msgstr ""
+
+#: lib/graphql/resolvers/admin.ex:539
+#, elixir-autogen, elixir-format, fuzzy
+msgid "You are already following this instance"
+msgstr ""
+
+#: lib/graphql/resolvers/user.ex:310
+#, elixir-autogen, elixir-format, fuzzy
+msgid "You requested again a confirmation email too soon. Please try again in a few minutes"
+msgstr ""
+
+#: lib/graphql/resolvers/user.ex:341
+#, elixir-autogen, elixir-format
+msgid "You requested again a password reset email too soon. Please try again in a few minutes"
+msgstr ""
+
+#: lib/graphql/resolvers/user.ex:368
+#, elixir-autogen, elixir-format
+msgid "The token you provided is invalid. Make sure that the URL is exactly the one provided inside the email you got."
+msgstr ""
diff --git a/priv/gettext/ca/LC_MESSAGES/activity.po b/priv/gettext/ca/LC_MESSAGES/activity.po
index be1722303958cfd19c8525aa62df45749f2f009e..9266a04db6adb13c93d38549d6e5aeed820ca221 100644
--- a/priv/gettext/ca/LC_MESSAGES/activity.po
+++ b/priv/gettext/ca/LC_MESSAGES/activity.po
@@ -461,3 +461,15 @@ msgstr ""
 #, elixir-autogen, elixir-format, fuzzy
 msgid "%{profile} approved the member %{member}."
 msgstr ""
+
+#: lib/service/activity/renderer/event.ex:74
+#: lib/web/templates/email/activity/_event_activity_item.html.heex:55
+#: lib/web/templates/email/activity/_event_activity_item.text.eex:31
+#, elixir-autogen, elixir-format
+msgid "%{profile} joined your event %{event}."
+msgstr ""
+
+#: lib/web/views/email_view.ex:45
+#, elixir-autogen, elixir-format
+msgid "An anonymous profile"
+msgstr ""
diff --git a/priv/gettext/ca/LC_MESSAGES/default.po b/priv/gettext/ca/LC_MESSAGES/default.po
index 86fc513cd3792fbc7669fff9d0755ea55e003204..d9a3f6d744dbdbdf9ab44de900712dbc43090df4 100644
--- a/priv/gettext/ca/LC_MESSAGES/default.po
+++ b/priv/gettext/ca/LC_MESSAGES/default.po
@@ -21,7 +21,7 @@ msgstr ""
 "Si no ho has demanat tu, ignora aquest email. La teva contrasenya només "
 "canviarà si cliques l'enllaç de sota i n'escrius una altra."
 
-#: lib/web/templates/email/report.html.heex:120
+#: lib/web/templates/email/report.html.heex:121
 #, elixir-autogen, elixir-format
 msgid "%{title} by %{creator}"
 msgstr "%{title} de %{creator}"
@@ -37,23 +37,17 @@ msgstr "Activa el meu compte"
 msgid "Ask the community on Framacolibri"
 msgstr "Pregunta a la comunitat a Framacolibri"
 
-#: lib/web/templates/email/report.text.eex:15
+#: lib/web/templates/email/report.text.eex:17
 #, elixir-autogen, elixir-format
 msgid "Comments"
 msgstr "Comentaris"
 
-#: lib/web/templates/email/report.html.heex:115
-#: lib/web/templates/email/report.text.eex:11
-#, elixir-autogen, elixir-format
-msgid "Event"
-msgstr "Activitat"
-
 #: lib/web/email/user.ex:49
 #, elixir-autogen, elixir-format
 msgid "Instructions to reset your password on %{instance}"
 msgstr "Instruccions per canviar la contrasenya a %{instance}"
 
-#: lib/web/templates/email/report.text.eex:21
+#: lib/web/templates/email/report.text.eex:23
 #, elixir-autogen, elixir-format
 msgid "Reason"
 msgstr "Raó"
@@ -353,12 +347,12 @@ msgctxt "terms"
 msgid "What information do we collect?"
 msgstr "Quina informació recollim?"
 
-#: lib/web/email/user.ex:182
+#: lib/web/email/user.ex:188
 #, elixir-autogen, elixir-format
 msgid "Mobilizon on %{instance}: confirm your email address"
 msgstr "Mobilizon a %{instance}: confirma la teva adreça de correu"
 
-#: lib/web/email/user.ex:159
+#: lib/web/email/user.ex:165
 #, elixir-autogen, elixir-format
 msgid "Mobilizon on %{instance}: email changed"
 msgstr "Mobilizon a %{instance}: s'ha canviat l'adreça de correu"
@@ -981,7 +975,7 @@ msgstr "Final"
 msgid "Event update!"
 msgstr "S'ha actualitzat l'activitat!"
 
-#: lib/web/templates/email/report.html.heex:155
+#: lib/web/templates/email/report.html.heex:158
 #, elixir-autogen, elixir-format
 msgid "Flagged comments"
 msgstr "Comentaris denunciats"
@@ -1079,7 +1073,7 @@ msgstr "Hi ets a prop!"
 msgid "New email confirmation"
 msgstr "Nova confirmació de correu"
 
-#: lib/web/templates/email/report.html.heex:191
+#: lib/web/templates/email/report.html.heex:194
 #, elixir-autogen, elixir-format
 msgid "Reasons for report"
 msgstr "Motius de l'informe"
@@ -1136,12 +1130,12 @@ msgstr "Malauradament, les organitzadores han rebutjat la teva participació."
 msgid "Verify your email address"
 msgstr "Verifica l'adreça de correu"
 
-#: lib/web/templates/email/report.html.heex:232
+#: lib/web/templates/email/report.html.heex:235
 #, elixir-autogen, elixir-format
 msgid "View report"
 msgstr "Mostra la denúncia"
 
-#: lib/web/templates/email/report.text.eex:24
+#: lib/web/templates/email/report.text.eex:26
 #, elixir-autogen, elixir-format
 msgid "View report:"
 msgstr "Mostra la denúncia"
@@ -1254,14 +1248,6 @@ msgstr ""
 "Com que aquest grup estava ubicat en una altra instància, només queda suspès "
 "en aquesta."
 
-#: lib/web/templates/email/group_suspension.html.heex:67
-#: lib/web/templates/email/group_suspension.text.eex:5
-#, elixir-autogen, elixir-format
-msgid "As this group was located on this instance, all of it's data has been irretrievably deleted."
-msgstr ""
-"Com que aquest grup estava ubicat en aquesta instància, totes les seves "
-"dades han estat esborrades irreversiblement."
-
 #: lib/web/templates/email/group_suspension.html.heex:18
 #: lib/web/templates/email/group_suspension.text.eex:1
 #, elixir-autogen, elixir-format
@@ -1275,7 +1261,7 @@ msgstr ""
 "L'equip de moderació de la teva instància ha decidit suspendre el grup "
 "%{group_name} (%{group_address}). Ja no formes part del grup."
 
-#: lib/web/email/group.ex:107
+#: lib/web/email/group.ex:108
 #, elixir-autogen, elixir-format
 msgid "The group %{group} has been suspended on %{instance}"
 msgstr "El grup %{group} ha estat suspès a %{instance}"
@@ -1594,16 +1580,6 @@ msgstr "Sembla ser que el servidor de Mobilizon està temporalment inaccessible.
 msgid "Public feed for %{instance}"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:350
-#, elixir-autogen, elixir-format
-msgid "The password you have choosen is too short. Please make sure your password contains at least 6 charaters."
-msgstr ""
-
-#: lib/graphql/resolvers/user.ex:356
-#, elixir-autogen, elixir-format
-msgid "The token you provided is invalid. Make sure that the URL is exactly the one provided inside the email you got."
-msgstr ""
-
 #: lib/web/email/actor.ex:43
 #, elixir-autogen, elixir-format
 msgid "Your participation to %{event} has been cancelled!"
@@ -1631,63 +1607,63 @@ msgid "Your participation to %{event} on %{instance} has been cancelled!"
 msgstr "T'han aprovat la participació a %{title}"
 
 #. File name template for exported list of participants. Should NOT contain spaces. Make sure the output is going to be something standardized that is acceptable as a file name on most systems.
-#: lib/service/export/participants/csv.ex:81
+#: lib/service/export/participants/csv.ex:97
 #: lib/service/export/participants/ods.ex:86
 #: lib/service/export/participants/pdf.ex:96
 #, elixir-autogen, elixir-format
 msgid "%{event}_participants"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:61
+#: lib/service/export/participants/common.ex:66
 #, elixir-autogen, elixir-format
 msgid "Participant message"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:61
+#: lib/service/export/participants/common.ex:63
 #, elixir-autogen, elixir-format
 msgid "Participant name"
 msgstr "S'ha aprovat la participació"
 
-#: lib/service/export/participants/common.ex:61
+#: lib/service/export/participants/common.ex:64
 #, elixir-autogen, elixir-format
 msgid "Participant status"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:52
+#: lib/service/export/participants/common.ex:53
 #: lib/web/templates/email/admin/_role.html.heex:3
 #: lib/web/templates/email/admin/_role.text.eex:1
 #, elixir-autogen, elixir-format
 msgid "Administrator"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:55
+#: lib/service/export/participants/common.ex:56
 #, elixir-autogen, elixir-format
 msgid "Creator"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:49
+#: lib/service/export/participants/common.ex:50
 #: lib/web/templates/email/admin/_role.html.heex:5
 #: lib/web/templates/email/admin/_role.text.eex:1
 #, elixir-autogen, elixir-format
 msgid "Moderator"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:37
+#: lib/service/export/participants/common.ex:38
 #, elixir-autogen, elixir-format
 msgid "Not approved"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:40
+#: lib/service/export/participants/common.ex:41
 #, elixir-autogen, elixir-format
 msgid "Not confirmed"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:46
+#: lib/service/export/participants/common.ex:47
 #, elixir-autogen, elixir-format
 msgid "Participant"
 msgstr "S'ha aprovat la participació"
 
-#: lib/service/export/participants/common.ex:43
+#: lib/service/export/participants/common.ex:44
 #, elixir-autogen, elixir-format
 msgid "Rejected"
 msgstr ""
@@ -1712,7 +1688,7 @@ msgstr ""
 msgid "Participants for %{event}"
 msgstr "S'ha aprovat la participació"
 
-#: lib/service/export/participants/common.ex:88
+#: lib/service/export/participants/common.ex:95
 #, elixir-autogen, elixir-format
 msgid "Anonymous participant"
 msgstr ""
@@ -1831,7 +1807,7 @@ msgstr "S'ha aprovat la participació"
 msgid "Title: %{title}"
 msgstr ""
 
-#: lib/web/email/group.ex:46
+#: lib/web/email/group.ex:47
 #, elixir-autogen, elixir-format
 msgid "📅 Just scheduled by %{group}: %{event}"
 msgstr ""
@@ -2255,3 +2231,26 @@ msgstr ""
 #, elixir-autogen, elixir-format
 msgid "Until next time!"
 msgstr ""
+
+#: lib/web/templates/email/group_suspension.html.heex:67
+#: lib/web/templates/email/group_suspension.text.eex:5
+#, elixir-autogen, elixir-format, fuzzy
+msgid "As this group was located on this instance, all of its data has been irretrievably deleted."
+msgstr ""
+"Com que aquest grup estava ubicat en aquesta instància, totes les seves "
+"dades han estat esborrades irreversiblement."
+
+#: lib/web/templates/email/report.text.eex:11
+#, elixir-autogen, elixir-format, fuzzy
+msgid "Events"
+msgstr "Activitat"
+
+#: lib/web/templates/email/report.html.heex:115
+#, elixir-autogen, elixir-format, fuzzy
+msgid "Flagged events"
+msgstr "Comentaris denunciats"
+
+#: lib/service/export/participants/common.ex:65
+#, elixir-autogen, elixir-format, fuzzy
+msgid "Participant registration date"
+msgstr ""
diff --git a/priv/gettext/ca/LC_MESSAGES/errors.po b/priv/gettext/ca/LC_MESSAGES/errors.po
index ddb8be47cba7e05c612cd86a1e3400c6166b043f..70d27b9914d6abf5c4ba70a18a0341f40c2903fc 100644
--- a/priv/gettext/ca/LC_MESSAGES/errors.po
+++ b/priv/gettext/ca/LC_MESSAGES/errors.po
@@ -110,7 +110,7 @@ msgstr "El perfil actual no pertany a aquest grup"
 msgid "Current profile is not an administrator of the selected group"
 msgstr "El perfil actual no administra el grup seleccionat"
 
-#: lib/graphql/resolvers/user.ex:644
+#: lib/graphql/resolvers/user.ex:673
 #, elixir-autogen, elixir-format
 msgid "Error while saving user settings"
 msgstr "No s'han pogut desar les preferències"
@@ -153,8 +153,8 @@ msgstr ""
 msgid "No user to validate with this email was found"
 msgstr ""
 
-#: lib/graphql/resolvers/person.ex:337
-#: lib/graphql/resolvers/user.ex:330
+#: lib/graphql/resolvers/person.ex:339
+#: lib/graphql/resolvers/user.ex:337
 #, elixir-autogen, elixir-format
 msgid "No user with this email was found"
 msgstr ""
@@ -162,12 +162,12 @@ msgstr ""
 #: lib/graphql/resolvers/feed_token.ex:28
 #: lib/graphql/resolvers/participant.ex:32
 #: lib/graphql/resolvers/participant.ex:210
-#: lib/graphql/resolvers/person.ex:245
-#: lib/graphql/resolvers/person.ex:376
-#: lib/graphql/resolvers/person.ex:412
-#: lib/graphql/resolvers/person.ex:419
-#: lib/graphql/resolvers/person.ex:448
-#: lib/graphql/resolvers/person.ex:463
+#: lib/graphql/resolvers/person.ex:247
+#: lib/graphql/resolvers/person.ex:378
+#: lib/graphql/resolvers/person.ex:414
+#: lib/graphql/resolvers/person.ex:421
+#: lib/graphql/resolvers/person.ex:450
+#: lib/graphql/resolvers/person.ex:465
 #, elixir-autogen, elixir-format
 msgid "Profile is not owned by authenticated user"
 msgstr ""
@@ -177,41 +177,42 @@ msgstr ""
 msgid "Registrations are not open"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:461
+#: lib/graphql/resolvers/user.ex:474
 #, elixir-autogen, elixir-format
 msgid "The current password is invalid"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:336
-#: lib/graphql/resolvers/user.ex:504
+#: lib/graphql/resolvers/admin.ex:334
+#: lib/graphql/resolvers/user.ex:527
 #, elixir-autogen, elixir-format
 msgid "The new email doesn't seem to be valid"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:339
-#: lib/graphql/resolvers/user.ex:507
+#: lib/graphql/resolvers/admin.ex:323
+#: lib/graphql/resolvers/user.ex:514
 #, elixir-autogen, elixir-format
 msgid "The new email must be different"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:464
+#: lib/graphql/resolvers/user.ex:477
 #, elixir-autogen, elixir-format
 msgid "The new password must be different"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:511
-#: lib/graphql/resolvers/user.ex:573
-#: lib/graphql/resolvers/user.ex:576
+#: lib/graphql/resolvers/user.ex:518
+#: lib/graphql/resolvers/user.ex:602
+#: lib/graphql/resolvers/user.ex:605
 #, elixir-autogen, elixir-format
 msgid "The password provided is invalid"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:468
+#: lib/graphql/resolvers/user.ex:361
+#: lib/graphql/resolvers/user.ex:481
 #, elixir-autogen, elixir-format
 msgid "The password you have chosen is too short. Please make sure your password contains at least 6 characters."
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:323
+#: lib/graphql/resolvers/user.ex:330
 #, elixir-autogen, elixir-format
 msgid "This user can't reset their password"
 msgstr ""
@@ -227,12 +228,12 @@ msgstr ""
 msgid "Unable to validate user"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:554
+#: lib/graphql/resolvers/user.ex:583
 #, elixir-autogen, elixir-format
 msgid "User already disabled"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:619
+#: lib/graphql/resolvers/user.ex:648
 #, elixir-autogen, elixir-format
 msgid "User requested is not logged-in"
 msgstr ""
@@ -257,12 +258,12 @@ msgstr ""
 msgid "You may not list groups unless moderator."
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:519
+#: lib/graphql/resolvers/user.ex:503
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to change your email"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:476
+#: lib/graphql/resolvers/user.ex:489
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to change your password"
 msgstr ""
@@ -272,7 +273,7 @@ msgstr ""
 msgid "You need to be logged-in to delete a group"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:581
+#: lib/graphql/resolvers/user.ex:610
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to delete your account"
 msgstr ""
@@ -297,12 +298,6 @@ msgstr ""
 msgid "You need to have an existing token to get a refresh token"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:306
-#: lib/graphql/resolvers/user.ex:333
-#, elixir-autogen, elixir-format
-msgid "You requested again a confirmation email too soon"
-msgstr ""
-
 #: lib/graphql/resolvers/user.ex:180
 #, elixir-autogen, elixir-format
 msgid "Your email is not on the allowlist"
@@ -355,17 +350,17 @@ msgstr ""
 msgid "Anonymous participation is not enabled"
 msgstr ""
 
-#: lib/graphql/resolvers/person.ex:219
+#: lib/graphql/resolvers/person.ex:221
 #, elixir-autogen, elixir-format
 msgid "Cannot remove the last administrator of a group"
 msgstr ""
 
-#: lib/graphql/resolvers/person.ex:216
+#: lib/graphql/resolvers/person.ex:218
 #, elixir-autogen, elixir-format
 msgid "Cannot remove the last identity of a user"
 msgstr ""
 
-#: lib/graphql/resolvers/comment.ex:147
+#: lib/graphql/resolvers/comment.ex:153
 #, elixir-autogen, elixir-format
 msgid "Comment is already deleted"
 msgstr ""
@@ -393,8 +388,8 @@ msgid "Event id not found"
 msgstr ""
 
 #: lib/graphql/error.ex:114
-#: lib/graphql/resolvers/event.ex:355
-#: lib/graphql/resolvers/event.ex:407
+#: lib/graphql/resolvers/event.ex:382
+#: lib/graphql/resolvers/event.ex:434
 #, elixir-autogen, elixir-format
 msgid "Event not found"
 msgstr ""
@@ -402,7 +397,7 @@ msgstr ""
 #: lib/graphql/resolvers/participant.ex:87
 #: lib/graphql/resolvers/participant.ex:128
 #: lib/graphql/resolvers/participant.ex:155
-#: lib/graphql/resolvers/participant.ex:336
+#: lib/graphql/resolvers/participant.ex:343
 #, elixir-autogen, elixir-format
 msgid "Event with this ID %{id} doesn't exist"
 msgstr ""
@@ -412,7 +407,7 @@ msgstr ""
 msgid "Internal Error"
 msgstr ""
 
-#: lib/graphql/resolvers/discussion.ex:219
+#: lib/graphql/resolvers/discussion.ex:222
 #, elixir-autogen, elixir-format
 msgid "No discussion with ID %{id}"
 msgstr ""
@@ -479,10 +474,10 @@ msgstr ""
 #: lib/graphql/resolvers/post.ex:133
 #: lib/graphql/resolvers/post.ex:175
 #: lib/graphql/resolvers/post.ex:209
-#: lib/graphql/resolvers/resource.ex:90
-#: lib/graphql/resolvers/resource.ex:135
-#: lib/graphql/resolvers/resource.ex:168
-#: lib/graphql/resolvers/resource.ex:202
+#: lib/graphql/resolvers/resource.ex:92
+#: lib/graphql/resolvers/resource.ex:137
+#: lib/graphql/resolvers/resource.ex:170
+#: lib/graphql/resolvers/resource.ex:204
 #: lib/graphql/resolvers/todos.ex:58
 #: lib/graphql/resolvers/todos.ex:83
 #: lib/graphql/resolvers/todos.ex:110
@@ -494,7 +489,7 @@ msgid "Profile is not member of group"
 msgstr ""
 
 #: lib/graphql/resolvers/actor.ex:67
-#: lib/graphql/resolvers/person.ex:242
+#: lib/graphql/resolvers/person.ex:244
 #, elixir-autogen, elixir-format
 msgid "Profile not found"
 msgstr ""
@@ -504,8 +499,8 @@ msgstr ""
 msgid "Report not found"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:172
-#: lib/graphql/resolvers/resource.ex:199
+#: lib/graphql/resolvers/resource.ex:174
+#: lib/graphql/resolvers/resource.ex:201
 #, elixir-autogen, elixir-format
 msgid "Resource doesn't exist"
 msgstr ""
@@ -515,7 +510,7 @@ msgstr ""
 msgid "The event has already reached its maximum capacity"
 msgstr ""
 
-#: lib/graphql/resolvers/participant.ex:282
+#: lib/graphql/resolvers/participant.ex:289
 #, elixir-autogen, elixir-format
 msgid "This token is invalid"
 msgstr ""
@@ -549,7 +544,7 @@ msgstr ""
 msgid "User not found"
 msgstr ""
 
-#: lib/graphql/resolvers/person.ex:333
+#: lib/graphql/resolvers/person.ex:335
 #, elixir-autogen, elixir-format
 msgid "You already have a profile for this user"
 msgstr ""
@@ -571,7 +566,7 @@ msgstr ""
 msgid "You are not a moderator or admin for this group"
 msgstr ""
 
-#: lib/graphql/resolvers/comment.ex:80
+#: lib/graphql/resolvers/comment.ex:74
 #, elixir-autogen, elixir-format
 msgid "You are not allowed to create a comment if not connected"
 msgstr ""
@@ -581,7 +576,7 @@ msgstr ""
 msgid "You are not allowed to create a feed token if not connected"
 msgstr ""
 
-#: lib/graphql/resolvers/comment.ex:155
+#: lib/graphql/resolvers/comment.ex:161
 #, elixir-autogen, elixir-format
 msgid "You are not allowed to delete a comment if not connected"
 msgstr ""
@@ -591,7 +586,7 @@ msgstr ""
 msgid "You are not allowed to delete a feed token if not connected"
 msgstr ""
 
-#: lib/graphql/resolvers/comment.ex:114
+#: lib/graphql/resolvers/comment.ex:120
 #, elixir-autogen, elixir-format
 msgid "You are not allowed to update a comment if not connected"
 msgstr ""
@@ -607,12 +602,12 @@ msgstr ""
 msgid "You can't set yourself to a lower member role for this group because you are the only administrator"
 msgstr ""
 
-#: lib/graphql/resolvers/comment.ex:143
+#: lib/graphql/resolvers/comment.ex:149
 #, elixir-autogen, elixir-format
 msgid "You cannot delete this comment"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:403
+#: lib/graphql/resolvers/event.ex:430
 #, elixir-autogen, elixir-format
 msgid "You cannot delete this event"
 msgstr ""
@@ -647,17 +642,17 @@ msgstr ""
 msgid "You need to be logged-in and a moderator to view a report"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:252
+#: lib/graphql/resolvers/admin.ex:258
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in and an administrator to access admin settings"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:236
+#: lib/graphql/resolvers/admin.ex:242
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in and an administrator to access dashboard statistics"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:278
+#: lib/graphql/resolvers/admin.ex:283
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in and an administrator to save admin settings"
 msgstr ""
@@ -667,12 +662,12 @@ msgstr ""
 msgid "You need to be logged-in to access discussions"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:96
+#: lib/graphql/resolvers/resource.ex:98
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to access resources"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:313
+#: lib/graphql/resolvers/event.ex:321
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to create events"
 msgstr ""
@@ -687,12 +682,12 @@ msgstr ""
 msgid "You need to be logged-in to create reports"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:140
+#: lib/graphql/resolvers/resource.ex:142
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to create resources"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:412
+#: lib/graphql/resolvers/event.ex:439
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to delete an event"
 msgstr ""
@@ -702,7 +697,7 @@ msgstr ""
 msgid "You need to be logged-in to delete posts"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:207
+#: lib/graphql/resolvers/resource.ex:209
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to delete resources"
 msgstr ""
@@ -717,7 +712,7 @@ msgstr ""
 msgid "You need to be logged-in to leave an event"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:369
+#: lib/graphql/resolvers/event.ex:396
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to update an event"
 msgstr ""
@@ -727,17 +722,17 @@ msgstr ""
 msgid "You need to be logged-in to update posts"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:177
+#: lib/graphql/resolvers/resource.ex:179
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to update resources"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:236
+#: lib/graphql/resolvers/resource.ex:233
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to view a resource preview"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:132
+#: lib/graphql/resolvers/resource.ex:134
 #, elixir-autogen, elixir-format
 msgid "Parent resource doesn't belong to this group"
 msgstr ""
@@ -823,12 +818,12 @@ msgstr ""
 msgid "Profile is not administrator for the group"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:358
+#: lib/graphql/resolvers/event.ex:385
 #, elixir-autogen, elixir-format
 msgid "You can't edit this event."
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:361
+#: lib/graphql/resolvers/event.ex:388
 #, elixir-autogen, elixir-format
 msgid "You can't attribute this event to this profile."
 msgstr ""
@@ -848,7 +843,7 @@ msgstr ""
 msgid "You don't have the right to remove this member."
 msgstr ""
 
-#: lib/mobilizon/actors/actor.ex:377
+#: lib/mobilizon/actors/actor.ex:378
 #, elixir-autogen, elixir-format
 msgid "This username is already taken."
 msgstr ""
@@ -858,7 +853,7 @@ msgstr ""
 msgid "You must provide either an ID or a slug to access a discussion"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:275
+#: lib/graphql/resolvers/event.ex:276
 #, elixir-autogen, elixir-format
 msgid "Organizer profile is not owned by the user"
 msgstr ""
@@ -870,41 +865,41 @@ msgstr ""
 
 #: lib/graphql/resolvers/group.ex:181
 #: lib/graphql/resolvers/group.ex:223
-#: lib/graphql/resolvers/person.ex:157
-#: lib/graphql/resolvers/person.ex:191
-#: lib/graphql/resolvers/person.ex:324
+#: lib/graphql/resolvers/person.ex:159
+#: lib/graphql/resolvers/person.ex:193
+#: lib/graphql/resolvers/person.ex:326
 #, elixir-autogen, elixir-format
 msgid "The provided picture is too heavy"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:129
+#: lib/graphql/resolvers/resource.ex:131
 #, elixir-autogen, elixir-format
 msgid "Error while creating resource"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:537
+#: lib/graphql/resolvers/user.ex:566
 #, elixir-autogen, elixir-format
 msgid "Invalid activation token"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:226
+#: lib/graphql/resolvers/resource.ex:228
 #, elixir-autogen, elixir-format
 msgid "Unable to fetch resource details from this URL."
 msgstr ""
 
 #: lib/graphql/resolvers/event.ex:165
 #: lib/graphql/resolvers/participant.ex:253
-#: lib/graphql/resolvers/participant.ex:328
+#: lib/graphql/resolvers/participant.ex:335
 #, elixir-autogen, elixir-format
 msgid "Provided profile doesn't have moderator permissions on this event"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:286
+#: lib/graphql/resolvers/event.ex:294
 #, elixir-autogen, elixir-format
 msgid "Organizer profile doesn't have permission to create an event on behalf of this group"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:349
+#: lib/graphql/resolvers/event.ex:369
 #, elixir-autogen, elixir-format
 msgid "This profile doesn't have permission to update an event on behalf of this group"
 msgstr ""
@@ -914,7 +909,7 @@ msgstr ""
 msgid "Your e-mail has been denied registration or uses a disallowed e-mail provider"
 msgstr ""
 
-#: lib/graphql/resolvers/comment.ex:150
+#: lib/graphql/resolvers/comment.ex:156
 #, elixir-autogen, elixir-format
 msgid "Comment not found"
 msgstr ""
@@ -924,12 +919,12 @@ msgstr ""
 msgid "Error while creating a discussion"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:658
+#: lib/graphql/resolvers/user.ex:687
 #, elixir-autogen, elixir-format
 msgid "Error while updating locale"
 msgstr ""
 
-#: lib/graphql/resolvers/person.ex:327
+#: lib/graphql/resolvers/person.ex:329
 #, elixir-autogen, elixir-format
 msgid "Error while uploading pictures"
 msgstr ""
@@ -944,13 +939,13 @@ msgstr ""
 msgid "Failed to update the group"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:333
-#: lib/graphql/resolvers/user.ex:501
+#: lib/graphql/resolvers/admin.ex:357
+#: lib/graphql/resolvers/user.ex:547
 #, elixir-autogen, elixir-format
 msgid "Failed to update user email"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:533
+#: lib/graphql/resolvers/user.ex:562
 #, elixir-autogen, elixir-format
 msgid "Failed to validate user email"
 msgstr ""
@@ -960,37 +955,37 @@ msgstr ""
 msgid "The anonymous actor ID is invalid"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:165
+#: lib/graphql/resolvers/resource.ex:167
 #, elixir-autogen, elixir-format
 msgid "Unknown error while updating resource"
 msgstr ""
 
-#: lib/graphql/resolvers/comment.ex:105
+#: lib/graphql/resolvers/comment.ex:111
 #, elixir-autogen, elixir-format
 msgid "You are not the comment creator"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:458
+#: lib/graphql/resolvers/user.ex:471
 #, elixir-autogen, elixir-format
 msgid "You cannot change your password."
 msgstr ""
 
-#: lib/graphql/resolvers/participant.ex:321
+#: lib/graphql/resolvers/participant.ex:328
 #, elixir-autogen, elixir-format
 msgid "Format not supported"
 msgstr ""
 
-#: lib/graphql/resolvers/participant.ex:305
+#: lib/graphql/resolvers/participant.ex:312
 #, elixir-autogen, elixir-format
 msgid "A dependency needed to export to %{format} is not installed"
 msgstr ""
 
-#: lib/graphql/resolvers/participant.ex:313
+#: lib/graphql/resolvers/participant.ex:320
 #, elixir-autogen, elixir-format
 msgid "An error occured while saving export"
 msgstr ""
 
-#: lib/web/controllers/export_controller.ex:30
+#: lib/web/controllers/export_controller.ex:32
 #, elixir-autogen, elixir-format
 msgid "Export to format %{format} is not enabled on this instance"
 msgstr ""
@@ -1000,17 +995,17 @@ msgstr ""
 msgid "Only admins can create groups"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:279
+#: lib/graphql/resolvers/event.ex:280
 #, elixir-autogen, elixir-format
 msgid "Only groups can create events"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:305
+#: lib/graphql/resolvers/event.ex:313
 #, elixir-autogen, elixir-format
 msgid "Unknown error while creating event"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:514
+#: lib/graphql/resolvers/user.ex:498
 #, elixir-autogen, elixir-format
 msgid "User cannot change email"
 msgstr ""
@@ -1025,12 +1020,12 @@ msgstr ""
 msgid "Follow not found"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:379
+#: lib/graphql/resolvers/user.ex:392
 #, elixir-autogen, elixir-format
 msgid "Profile with username %{username} not found"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:374
+#: lib/graphql/resolvers/user.ex:387
 #, elixir-autogen, elixir-format
 msgid "This profile does not belong to you"
 msgstr ""
@@ -1075,22 +1070,22 @@ msgstr ""
 msgid "Your email seems to be using an invalid format"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:382
+#: lib/graphql/resolvers/admin.ex:399
 #, elixir-autogen, elixir-format
 msgid "Can't confirm an already confirmed user"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:386
+#: lib/graphql/resolvers/admin.ex:403
 #, elixir-autogen, elixir-format
 msgid "Deconfirming users is not supported"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:358
+#: lib/graphql/resolvers/admin.ex:375
 #, elixir-autogen, elixir-format, fuzzy
 msgid "The new role must be different"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:309
+#: lib/graphql/resolvers/admin.ex:314
 #, elixir-autogen, elixir-format, fuzzy
 msgid "You need to be logged-in and an administrator to edit an user's details"
 msgstr ""
@@ -1100,28 +1095,28 @@ msgstr ""
 msgid "A profile or group with that name already exists"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:519
+#: lib/graphql/resolvers/admin.ex:542
 #, elixir-autogen, elixir-format
 msgid "Unable to find an instance to follow at this address"
 msgstr ""
 
-#: lib/mobilizon/actors/actor.ex:396
+#: lib/mobilizon/actors/actor.ex:397
 #, elixir-autogen, elixir-format
 msgid "Username must only contain alphanumeric lowercased characters and underscores."
 msgstr ""
 
 #: lib/graphql/resolvers/user.ex:303
-#: lib/graphql/resolvers/user.ex:326
+#: lib/graphql/resolvers/user.ex:333
 #, elixir-autogen, elixir-format, fuzzy
 msgid "This email doesn't seem to be valid"
 msgstr ""
 
-#: lib/graphql/resolvers/comment.ex:65
+#: lib/graphql/resolvers/comment.ex:59
 #, elixir-autogen, elixir-format
 msgid "This comment was detected as spam."
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:293
+#: lib/graphql/resolvers/event.ex:301
 #, elixir-autogen, elixir-format
 msgid "This event was detected as spam."
 msgstr ""
@@ -1142,7 +1137,7 @@ msgstr ""
 msgid "You need to be a moderator or an administrator to create a note on a report"
 msgstr ""
 
-#: lib/graphql/resolvers/person.ex:330
+#: lib/graphql/resolvers/person.ex:332
 #, elixir-autogen, elixir-format
 msgid "Your profile was detected as spam."
 msgstr ""
@@ -1152,7 +1147,7 @@ msgstr ""
 msgid "Your registration has been detected as spam and cannot be processed."
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:86
+#: lib/web/controllers/application_controller.ex:88
 #, elixir-autogen, elixir-format
 msgid "All of name, scope and redirect_uri parameters are required to create an application"
 msgstr ""
@@ -1167,171 +1162,227 @@ msgstr ""
 msgid "Application token not found"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:89
+#: lib/graphql/resolvers/application.ex:90
 #, elixir-autogen, elixir-format, fuzzy
 msgid "Error while revoking token"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:59
+#: lib/web/controllers/application_controller.ex:61
 #, elixir-autogen, elixir-format
 msgid "Impossible to create application."
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:356
+#: lib/web/controllers/application_controller.ex:358
 #, elixir-autogen, elixir-format
 msgid "Incorrect parameters sent. You need to provide at least the grant_type and client_id parameters, depending on the grant type being used."
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:329
+#: lib/web/controllers/application_controller.ex:331
 #, elixir-autogen, elixir-format
 msgid "Invalid client credentials provided"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:337
+#: lib/web/controllers/application_controller.ex:339
 #, elixir-autogen, elixir-format
 msgid "Invalid refresh token provided"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:170
-#: lib/web/controllers/application_controller.ex:401
+#: lib/web/controllers/application_controller.ex:172
+#: lib/web/controllers/application_controller.ex:403
 #, elixir-autogen, elixir-format
 msgid "No application was found with this client_id"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:37
+#: lib/graphql/resolvers/application.ex:38
 #, elixir-autogen, elixir-format
 msgid "No application with this client_id was found"
 msgstr ""
 
-#: lib/graphql/authorization.ex:80
+#: lib/graphql/authorization.ex:81
 #, elixir-autogen, elixir-format
 msgid "Not authorized to access field %{field}"
 msgstr ""
 
-#: lib/graphql/authorization.ex:70
-#: lib/graphql/authorization.ex:75
+#: lib/graphql/authorization.ex:71
+#: lib/graphql/authorization.ex:76
 #, elixir-autogen, elixir-format
 msgid "Not authorized to access object %{object}"
 msgstr ""
 
-#: lib/graphql/authorization.ex:63
+#: lib/graphql/authorization.ex:64
 #, elixir-autogen, elixir-format
 msgid "Not authorized to access this %{object_type}"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:279
+#: lib/web/controllers/application_controller.ex:281
 #, elixir-autogen, elixir-format
 msgid "Please slow down the rate of your requests"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:267
+#: lib/web/controllers/application_controller.ex:269
 #, elixir-autogen, elixir-format
 msgid "The authorization request is still pending"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:249
+#: lib/web/controllers/application_controller.ex:251
 #, elixir-autogen, elixir-format
 msgid "The client_id provided or the device_code associated is invalid"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:133
+#: lib/graphql/resolvers/application.ex:139
 #, elixir-autogen, elixir-format
 msgid "The device user code was not provided before approving the application"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:304
+#: lib/web/controllers/application_controller.ex:306
 #, elixir-autogen, elixir-format
 msgid "The given device_code has expired"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:44
+#: lib/graphql/resolvers/application.ex:45
 #, elixir-autogen, elixir-format
 msgid "The given redirect_uri is not in the list of allowed redirect URIs"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:158
+#: lib/web/controllers/application_controller.ex:160
 #, elixir-autogen, elixir-format
 msgid "The given scope is not in the list of the app declared scopes"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:109
-#: lib/graphql/resolvers/application.ex:146
+#: lib/graphql/resolvers/application.ex:112
+#: lib/graphql/resolvers/application.ex:154
 #, elixir-autogen, elixir-format
 msgid "The given user code has expired"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:112
-#: lib/graphql/resolvers/application.ex:140
+#: lib/graphql/resolvers/application.ex:118
+#: lib/graphql/resolvers/application.ex:146
 #, elixir-autogen, elixir-format
 msgid "The given user code is invalid"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:411
+#: lib/web/controllers/application_controller.ex:413
 #, elixir-autogen, elixir-format
 msgid "The provided client_id does not match the provided code"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:414
+#: lib/web/controllers/application_controller.ex:416
 #, elixir-autogen, elixir-format
 msgid "The provided client_secret is invalid"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:407
+#: lib/web/controllers/application_controller.ex:409
 #, elixir-autogen, elixir-format
 msgid "The provided code is invalid or expired"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:418
+#: lib/web/controllers/application_controller.ex:420
 #, elixir-autogen, elixir-format
 msgid "The provided scope is invalid or not included in the app declared scopes"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:45
+#: lib/web/controllers/application_controller.ex:47
 #, elixir-autogen, elixir-format
 msgid "The scope parameter is not a space separated list of valid scopes"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:292
+#: lib/web/controllers/application_controller.ex:294
 #, elixir-autogen, elixir-format
 msgid "The user rejected the requested authorization"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:404
+#: lib/web/controllers/application_controller.ex:406
 #, elixir-autogen, elixir-format
 msgid "This redirect URI is not allowed"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:381
+#: lib/web/controllers/application_controller.ex:383
 #, elixir-autogen, elixir-format, fuzzy
 msgid "Token not found"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:72
+#: lib/web/controllers/application_controller.ex:74
 #, elixir-autogen, elixir-format
 msgid "Too many requests"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:184
+#: lib/web/controllers/application_controller.ex:186
 #, elixir-autogen, elixir-format
 msgid "Unable to produce device code"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:373
+#: lib/web/controllers/application_controller.ex:375
 #, elixir-autogen, elixir-format
 msgid "Unable to revoke token"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:198
+#: lib/web/controllers/application_controller.ex:200
 #, elixir-autogen, elixir-format
 msgid "You need to pass both client_id and scope as parameters to obtain a device code"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:136
+#: lib/web/controllers/application_controller.ex:138
 #, elixir-autogen, elixir-format
 msgid "You need to provide a valid redirect_uri to autorize an application"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:126
+#: lib/web/controllers/application_controller.ex:128
 #, elixir-autogen, elixir-format
 msgid "You need to specify client_id, redirect_uri, scope and state to autorize an application"
 msgstr ""
+
+#: lib/graphql/resolvers/user.ex:306
+#, elixir-autogen, elixir-format
+msgid "Couldn't send an email. Internal error."
+msgstr ""
+
+#: lib/graphql/resolvers/participant.ex:286
+#, elixir-autogen, elixir-format
+msgid "Participation is already confirmed"
+msgstr ""
+
+#: lib/graphql/resolvers/participant.ex:283
+#, elixir-autogen, elixir-format
+msgid "Participation is confirmed but not approved yet by an organizer"
+msgstr ""
+
+#: lib/graphql/resolvers/event.ex:287
+#: lib/graphql/resolvers/event.ex:376
+#, elixir-autogen, elixir-format
+msgid "Providing external registration is not allowed"
+msgstr ""
+
+#: lib/graphql/resolvers/push_subscription.ex:48
+#, elixir-autogen, elixir-format
+msgid "The same push subscription has already been registered"
+msgstr ""
+
+#: lib/graphql/resolvers/admin.ex:536
+#, elixir-autogen, elixir-format
+msgid "This instance is pending follow approval"
+msgstr ""
+
+#: lib/graphql/schema/custom/timezone.ex:23
+#, elixir-autogen, elixir-format
+msgid "Timezone ID %{timezone} is invalid"
+msgstr ""
+
+#: lib/graphql/resolvers/admin.ex:539
+#, elixir-autogen, elixir-format, fuzzy
+msgid "You are already following this instance"
+msgstr ""
+
+#: lib/graphql/resolvers/user.ex:310
+#, elixir-autogen, elixir-format, fuzzy
+msgid "You requested again a confirmation email too soon. Please try again in a few minutes"
+msgstr ""
+
+#: lib/graphql/resolvers/user.ex:341
+#, elixir-autogen, elixir-format
+msgid "You requested again a password reset email too soon. Please try again in a few minutes"
+msgstr ""
+
+#: lib/graphql/resolvers/user.ex:368
+#, elixir-autogen, elixir-format
+msgid "The token you provided is invalid. Make sure that the URL is exactly the one provided inside the email you got."
+msgstr ""
diff --git a/priv/gettext/cs/LC_MESSAGES/activity.po b/priv/gettext/cs/LC_MESSAGES/activity.po
index 3840460382dd8efec1c24fcb0c593205e1887a4e..46f421ee8f9bb566a512e55ad4156ee684458ade 100644
--- a/priv/gettext/cs/LC_MESSAGES/activity.po
+++ b/priv/gettext/cs/LC_MESSAGES/activity.po
@@ -473,3 +473,15 @@ msgstr "%{profile} odpověděl na diskusi %{discussion} ve skupině %{group}."
 #, elixir-autogen, elixir-format
 msgid "%{profile} approved the member %{member}."
 msgstr "%{profile} schválil člena %{member}."
+
+#: lib/service/activity/renderer/event.ex:74
+#: lib/web/templates/email/activity/_event_activity_item.html.heex:55
+#: lib/web/templates/email/activity/_event_activity_item.text.eex:31
+#, elixir-autogen, elixir-format
+msgid "%{profile} joined your event %{event}."
+msgstr ""
+
+#: lib/web/views/email_view.ex:45
+#, elixir-autogen, elixir-format
+msgid "An anonymous profile"
+msgstr ""
diff --git a/priv/gettext/cs/LC_MESSAGES/default.po b/priv/gettext/cs/LC_MESSAGES/default.po
index 8abd8fa0e9f76932cb0aec681016672d57a0d4fa..c1dda8c94edcf50b1a11db0c1239c7292f26ce28 100644
--- a/priv/gettext/cs/LC_MESSAGES/default.po
+++ b/priv/gettext/cs/LC_MESSAGES/default.po
@@ -21,7 +21,7 @@ msgstr ""
 "Pokud jste o to nepožádali, ignorujte tento e-mail. Vaše heslo se nezmění, "
 "dokud nepřistoupíte na níže uvedený odkaz a nevytvoříte si nové."
 
-#: lib/web/templates/email/report.html.heex:120
+#: lib/web/templates/email/report.html.heex:121
 #, elixir-autogen, elixir-format
 msgid "%{title} by %{creator}"
 msgstr "%{title} od %{creator}"
@@ -37,23 +37,17 @@ msgstr "Aktivovat můj účet"
 msgid "Ask the community on Framacolibri"
 msgstr "Zeptejte se komunity na Framacolibri"
 
-#: lib/web/templates/email/report.text.eex:15
+#: lib/web/templates/email/report.text.eex:17
 #, elixir-autogen, elixir-format
 msgid "Comments"
 msgstr "Komentáře"
 
-#: lib/web/templates/email/report.html.heex:115
-#: lib/web/templates/email/report.text.eex:11
-#, elixir-autogen, elixir-format
-msgid "Event"
-msgstr "Událost"
-
 #: lib/web/email/user.ex:49
 #, elixir-autogen, elixir-format
 msgid "Instructions to reset your password on %{instance}"
 msgstr "Pokyny k obnovení hesla na %{instance}"
 
-#: lib/web/templates/email/report.text.eex:21
+#: lib/web/templates/email/report.text.eex:23
 #, elixir-autogen, elixir-format
 msgid "Reason"
 msgstr "Důvod"
@@ -350,12 +344,12 @@ msgctxt "terms"
 msgid "What information do we collect?"
 msgstr "Jaké informace shromažďujeme?"
 
-#: lib/web/email/user.ex:182
+#: lib/web/email/user.ex:188
 #, elixir-autogen, elixir-format
 msgid "Mobilizon on %{instance}: confirm your email address"
 msgstr "Mobilizon na %{instance}: potvrďte svou e-mailovou adresu"
 
-#: lib/web/email/user.ex:159
+#: lib/web/email/user.ex:165
 #, elixir-autogen, elixir-format
 msgid "Mobilizon on %{instance}: email changed"
 msgstr "Mobilizon na %{instance}: e-mail změněn"
@@ -993,7 +987,7 @@ msgstr "Konec"
 msgid "Event update!"
 msgstr "Aktualizace události!"
 
-#: lib/web/templates/email/report.html.heex:155
+#: lib/web/templates/email/report.html.heex:158
 #, elixir-autogen, elixir-format
 msgid "Flagged comments"
 msgstr "Označené komentáře"
@@ -1090,7 +1084,7 @@ msgstr "Už to skoro je!"
 msgid "New email confirmation"
 msgstr "Nové e-mailové potvrzení"
 
-#: lib/web/templates/email/report.html.heex:191
+#: lib/web/templates/email/report.html.heex:194
 #, elixir-autogen, elixir-format
 msgid "Reasons for report"
 msgstr "Důvody zprávy"
@@ -1151,12 +1145,12 @@ msgstr "Organizátoři bohužel vaši žádost zamítli."
 msgid "Verify your email address"
 msgstr "Ověření e-mailové adresy"
 
-#: lib/web/templates/email/report.html.heex:232
+#: lib/web/templates/email/report.html.heex:235
 #, elixir-autogen, elixir-format
 msgid "View report"
 msgstr "Zobrazit hlášení"
 
-#: lib/web/templates/email/report.text.eex:24
+#: lib/web/templates/email/report.text.eex:26
 #, elixir-autogen, elixir-format
 msgid "View report:"
 msgstr "Zobrazit hlášení:"
@@ -1271,14 +1265,6 @@ msgstr ""
 "Protože tato skupina byla umístěna v jiné instanci, bude nadále fungovat i v "
 "jiných instancích než v této."
 
-#: lib/web/templates/email/group_suspension.html.heex:67
-#: lib/web/templates/email/group_suspension.text.eex:5
-#, elixir-autogen, elixir-format
-msgid "As this group was located on this instance, all of it's data has been irretrievably deleted."
-msgstr ""
-"Protože se tato skupina nacházela v této instanci, byla všechna její data "
-"nenávratně odstraněna."
-
 #: lib/web/templates/email/group_suspension.html.heex:18
 #: lib/web/templates/email/group_suspension.text.eex:1
 #, elixir-autogen, elixir-format
@@ -1292,7 +1278,7 @@ msgstr ""
 "Moderátorský tým vaší instance se rozhodl pozastavit %{group_name} "
 "(%{group_address}). Již nejste členem této skupiny."
 
-#: lib/web/email/group.ex:107
+#: lib/web/email/group.ex:108
 #, elixir-autogen, elixir-format
 msgid "The group %{group} has been suspended on %{instance}"
 msgstr "Skupina %{group} byla pozastavena na %{instance}"
@@ -1658,20 +1644,6 @@ msgstr "Zdá se, že server Mobilizon %{instance} je dočasně mimo provoz."
 msgid "Public feed for %{instance}"
 msgstr "Veřejný kanál pro %{instance}"
 
-#: lib/graphql/resolvers/user.ex:350
-#, elixir-autogen, elixir-format
-msgid "The password you have choosen is too short. Please make sure your password contains at least 6 charaters."
-msgstr ""
-"Zvolené heslo je příliš krátké. Ujistěte se, že heslo obsahuje alespoň 6 "
-"znaků."
-
-#: lib/graphql/resolvers/user.ex:356
-#, elixir-autogen, elixir-format
-msgid "The token you provided is invalid. Make sure that the URL is exactly the one provided inside the email you got."
-msgstr ""
-"Zadaný token je neplatný. Ujistěte se, že adresa URL je přesně taková, jaká "
-"byla uvedena v e-mailu, který jste obdrželi."
-
 #: lib/web/email/actor.ex:43
 #, elixir-autogen, elixir-format
 msgid "Your participation to %{event} has been cancelled!"
@@ -1700,63 +1672,63 @@ msgid "Your participation to %{event} on %{instance} has been cancelled!"
 msgstr "Vaše účast na %{event} na %{instance} byla zrušena!"
 
 #. File name template for exported list of participants. Should NOT contain spaces. Make sure the output is going to be something standardized that is acceptable as a file name on most systems.
-#: lib/service/export/participants/csv.ex:81
+#: lib/service/export/participants/csv.ex:97
 #: lib/service/export/participants/ods.ex:86
 #: lib/service/export/participants/pdf.ex:96
 #, elixir-autogen, elixir-format
 msgid "%{event}_participants"
 msgstr "%{event}_participants"
 
-#: lib/service/export/participants/common.ex:61
+#: lib/service/export/participants/common.ex:66
 #, elixir-autogen, elixir-format
 msgid "Participant message"
 msgstr "Zpráva účastníka"
 
-#: lib/service/export/participants/common.ex:61
+#: lib/service/export/participants/common.ex:63
 #, elixir-autogen, elixir-format
 msgid "Participant name"
 msgstr "Jméno účastníka"
 
-#: lib/service/export/participants/common.ex:61
+#: lib/service/export/participants/common.ex:64
 #, elixir-autogen, elixir-format
 msgid "Participant status"
 msgstr "Status účastníka"
 
-#: lib/service/export/participants/common.ex:52
+#: lib/service/export/participants/common.ex:53
 #: lib/web/templates/email/admin/_role.html.heex:3
 #: lib/web/templates/email/admin/_role.text.eex:1
 #, elixir-autogen, elixir-format
 msgid "Administrator"
 msgstr "Administrátor"
 
-#: lib/service/export/participants/common.ex:55
+#: lib/service/export/participants/common.ex:56
 #, elixir-autogen, elixir-format
 msgid "Creator"
 msgstr "Tvůrce"
 
-#: lib/service/export/participants/common.ex:49
+#: lib/service/export/participants/common.ex:50
 #: lib/web/templates/email/admin/_role.html.heex:5
 #: lib/web/templates/email/admin/_role.text.eex:1
 #, elixir-autogen, elixir-format
 msgid "Moderator"
 msgstr "Moderátor"
 
-#: lib/service/export/participants/common.ex:37
+#: lib/service/export/participants/common.ex:38
 #, elixir-autogen, elixir-format
 msgid "Not approved"
 msgstr "Neschváleno"
 
-#: lib/service/export/participants/common.ex:40
+#: lib/service/export/participants/common.ex:41
 #, elixir-autogen, elixir-format
 msgid "Not confirmed"
 msgstr "Nepotvrzeno"
 
-#: lib/service/export/participants/common.ex:46
+#: lib/service/export/participants/common.ex:47
 #, elixir-autogen, elixir-format
 msgid "Participant"
 msgstr "Účastník"
 
-#: lib/service/export/participants/common.ex:43
+#: lib/service/export/participants/common.ex:44
 #, elixir-autogen, elixir-format
 msgid "Rejected"
 msgstr "Odmítnuto"
@@ -1781,7 +1753,7 @@ msgstr "Počet účastníků"
 msgid "Participants for %{event}"
 msgstr "Účastníci akce %{event}"
 
-#: lib/service/export/participants/common.ex:88
+#: lib/service/export/participants/common.ex:95
 #, elixir-autogen, elixir-format
 msgid "Anonymous participant"
 msgstr "Anonymní účastník"
@@ -1900,7 +1872,7 @@ msgstr "Účastněte se:"
 msgid "Title: %{title}"
 msgstr "Název: %{title}"
 
-#: lib/web/email/group.ex:46
+#: lib/web/email/group.ex:47
 #, elixir-autogen, elixir-format
 msgid "📅 Just scheduled by %{group}: %{event}"
 msgstr "📅 Právě naplánováno od %{group}: %{event}"
@@ -2352,3 +2324,26 @@ msgstr ""
 #, elixir-autogen, elixir-format
 msgid "Until next time!"
 msgstr "Do příště!"
+
+#: lib/web/templates/email/group_suspension.html.heex:67
+#: lib/web/templates/email/group_suspension.text.eex:5
+#, elixir-autogen, elixir-format, fuzzy
+msgid "As this group was located on this instance, all of its data has been irretrievably deleted."
+msgstr ""
+"Protože se tato skupina nacházela v této instanci, byla všechna její data "
+"nenávratně odstraněna."
+
+#: lib/web/templates/email/report.text.eex:11
+#, elixir-autogen, elixir-format, fuzzy
+msgid "Events"
+msgstr "Událost"
+
+#: lib/web/templates/email/report.html.heex:115
+#, elixir-autogen, elixir-format, fuzzy
+msgid "Flagged events"
+msgstr "Označené komentáře"
+
+#: lib/service/export/participants/common.ex:65
+#, elixir-autogen, elixir-format, fuzzy
+msgid "Participant registration date"
+msgstr "Status účastníka"
diff --git a/priv/gettext/cs/LC_MESSAGES/errors.po b/priv/gettext/cs/LC_MESSAGES/errors.po
index b2651ddf6487b3f24e58312fd257852f080583d6..2a5fd05725be7a0aaa6a5a98bce96684904a5e96 100644
--- a/priv/gettext/cs/LC_MESSAGES/errors.po
+++ b/priv/gettext/cs/LC_MESSAGES/errors.po
@@ -116,7 +116,7 @@ msgstr "Aktuální profil není členem této skupiny"
 msgid "Current profile is not an administrator of the selected group"
 msgstr "Aktuální profil není správcem vybrané skupiny"
 
-#: lib/graphql/resolvers/user.ex:644
+#: lib/graphql/resolvers/user.ex:673
 #, elixir-autogen, elixir-format
 msgid "Error while saving user settings"
 msgstr "Chyba při ukládání uživatelských nastavení"
@@ -161,8 +161,8 @@ msgstr ""
 "Nebyl nalezen žádný uživatel, kterého by bylo možné ověřit pomocí tohoto "
 "e-mailu"
 
-#: lib/graphql/resolvers/person.ex:337
-#: lib/graphql/resolvers/user.ex:330
+#: lib/graphql/resolvers/person.ex:339
+#: lib/graphql/resolvers/user.ex:337
 #, elixir-autogen, elixir-format
 msgid "No user with this email was found"
 msgstr "Nebyl nalezen žádný uživatel s tímto e-mailem"
@@ -170,12 +170,12 @@ msgstr "Nebyl nalezen žádný uživatel s tímto e-mailem"
 #: lib/graphql/resolvers/feed_token.ex:28
 #: lib/graphql/resolvers/participant.ex:32
 #: lib/graphql/resolvers/participant.ex:210
-#: lib/graphql/resolvers/person.ex:245
-#: lib/graphql/resolvers/person.ex:376
-#: lib/graphql/resolvers/person.ex:412
-#: lib/graphql/resolvers/person.ex:419
-#: lib/graphql/resolvers/person.ex:448
-#: lib/graphql/resolvers/person.ex:463
+#: lib/graphql/resolvers/person.ex:247
+#: lib/graphql/resolvers/person.ex:378
+#: lib/graphql/resolvers/person.ex:414
+#: lib/graphql/resolvers/person.ex:421
+#: lib/graphql/resolvers/person.ex:450
+#: lib/graphql/resolvers/person.ex:465
 #, elixir-autogen, elixir-format
 msgid "Profile is not owned by authenticated user"
 msgstr "Profil není vlastněn ověřeným uživatelem"
@@ -185,43 +185,44 @@ msgstr "Profil není vlastněn ověřeným uživatelem"
 msgid "Registrations are not open"
 msgstr "Registrace nejsou otevřeny"
 
-#: lib/graphql/resolvers/user.ex:461
+#: lib/graphql/resolvers/user.ex:474
 #, elixir-autogen, elixir-format
 msgid "The current password is invalid"
 msgstr "Aktuální heslo je neplatné"
 
-#: lib/graphql/resolvers/admin.ex:336
-#: lib/graphql/resolvers/user.ex:504
+#: lib/graphql/resolvers/admin.ex:334
+#: lib/graphql/resolvers/user.ex:527
 #, elixir-autogen, elixir-format
 msgid "The new email doesn't seem to be valid"
 msgstr "Nový e-mail se nezdá být platný"
 
-#: lib/graphql/resolvers/admin.ex:339
-#: lib/graphql/resolvers/user.ex:507
+#: lib/graphql/resolvers/admin.ex:323
+#: lib/graphql/resolvers/user.ex:514
 #, elixir-autogen, elixir-format
 msgid "The new email must be different"
 msgstr "Nový e-mail musí být jiný"
 
-#: lib/graphql/resolvers/user.ex:464
+#: lib/graphql/resolvers/user.ex:477
 #, elixir-autogen, elixir-format
 msgid "The new password must be different"
 msgstr "Nové heslo se musí lišit"
 
-#: lib/graphql/resolvers/user.ex:511
-#: lib/graphql/resolvers/user.ex:573
-#: lib/graphql/resolvers/user.ex:576
+#: lib/graphql/resolvers/user.ex:518
+#: lib/graphql/resolvers/user.ex:602
+#: lib/graphql/resolvers/user.ex:605
 #, elixir-autogen, elixir-format
 msgid "The password provided is invalid"
 msgstr "Zadané heslo je neplatné"
 
-#: lib/graphql/resolvers/user.ex:468
+#: lib/graphql/resolvers/user.ex:361
+#: lib/graphql/resolvers/user.ex:481
 #, elixir-autogen, elixir-format
 msgid "The password you have chosen is too short. Please make sure your password contains at least 6 characters."
 msgstr ""
 "Zvolené heslo je příliš krátké. Ujistěte se, že heslo obsahuje alespoň 6 "
 "znaků."
 
-#: lib/graphql/resolvers/user.ex:323
+#: lib/graphql/resolvers/user.ex:330
 #, elixir-autogen, elixir-format
 msgid "This user can't reset their password"
 msgstr "Tento uživatel nemůže obnovit své heslo"
@@ -237,12 +238,12 @@ msgstr "Tento uživatel byl deaktivován"
 msgid "Unable to validate user"
 msgstr "Nelze ověřit uživatele"
 
-#: lib/graphql/resolvers/user.ex:554
+#: lib/graphql/resolvers/user.ex:583
 #, elixir-autogen, elixir-format
 msgid "User already disabled"
 msgstr "Uživatel je již deaktivován"
 
-#: lib/graphql/resolvers/user.ex:619
+#: lib/graphql/resolvers/user.ex:648
 #, elixir-autogen, elixir-format
 msgid "User requested is not logged-in"
 msgstr "Požadovaný uživatel není přihlášen"
@@ -267,12 +268,12 @@ msgstr "K této skupině se nemůžete připojit"
 msgid "You may not list groups unless moderator."
 msgstr "Skupiny můžete uvádět pouze jako moderátor."
 
-#: lib/graphql/resolvers/user.ex:519
+#: lib/graphql/resolvers/user.ex:503
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to change your email"
 msgstr "Pro změnu e-mailu musíte být přihlášeni"
 
-#: lib/graphql/resolvers/user.ex:476
+#: lib/graphql/resolvers/user.ex:489
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to change your password"
 msgstr "Pro změnu hesla musíte být přihlášeni"
@@ -282,7 +283,7 @@ msgstr "Pro změnu hesla musíte být přihlášeni"
 msgid "You need to be logged-in to delete a group"
 msgstr "Chcete-li skupinu odstranit, musíte být přihlášeni"
 
-#: lib/graphql/resolvers/user.ex:581
+#: lib/graphql/resolvers/user.ex:610
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to delete your account"
 msgstr "Chcete-li odstranit svůj účet, musíte být přihlášeni"
@@ -307,12 +308,6 @@ msgstr "Chcete-li aktualizovat skupinu, musíte být přihlášeni"
 msgid "You need to have an existing token to get a refresh token"
 msgstr "Chcete-li získat token pro obnovení, musíte mít existující token"
 
-#: lib/graphql/resolvers/user.ex:306
-#: lib/graphql/resolvers/user.ex:333
-#, elixir-autogen, elixir-format
-msgid "You requested again a confirmation email too soon"
-msgstr "Znovu jste si vyžádali potvrzovací e-mail příliš brzy"
-
 #: lib/graphql/resolvers/user.ex:180
 #, elixir-autogen, elixir-format
 msgid "Your email is not on the allowlist"
@@ -365,17 +360,17 @@ msgstr "Vaše instance vyžaduje platný e-mail"
 msgid "Anonymous participation is not enabled"
 msgstr "Anonymní účast není povolena"
 
-#: lib/graphql/resolvers/person.ex:219
+#: lib/graphql/resolvers/person.ex:221
 #, elixir-autogen, elixir-format
 msgid "Cannot remove the last administrator of a group"
 msgstr "Nelze odebrat posledního správce skupiny"
 
-#: lib/graphql/resolvers/person.ex:216
+#: lib/graphql/resolvers/person.ex:218
 #, elixir-autogen, elixir-format
 msgid "Cannot remove the last identity of a user"
 msgstr "Nelze odstranit poslední identitu uživatele"
 
-#: lib/graphql/resolvers/comment.ex:147
+#: lib/graphql/resolvers/comment.ex:153
 #, elixir-autogen, elixir-format
 msgid "Comment is already deleted"
 msgstr "Komentář je již smazán"
@@ -403,8 +398,8 @@ msgid "Event id not found"
 msgstr "Id události nebylo nalezeno"
 
 #: lib/graphql/error.ex:114
-#: lib/graphql/resolvers/event.ex:355
-#: lib/graphql/resolvers/event.ex:407
+#: lib/graphql/resolvers/event.ex:382
+#: lib/graphql/resolvers/event.ex:434
 #, elixir-autogen, elixir-format
 msgid "Event not found"
 msgstr "Událost nebyla nalezena"
@@ -412,7 +407,7 @@ msgstr "Událost nebyla nalezena"
 #: lib/graphql/resolvers/participant.ex:87
 #: lib/graphql/resolvers/participant.ex:128
 #: lib/graphql/resolvers/participant.ex:155
-#: lib/graphql/resolvers/participant.ex:336
+#: lib/graphql/resolvers/participant.ex:343
 #, elixir-autogen, elixir-format
 msgid "Event with this ID %{id} doesn't exist"
 msgstr "Událost s tímto ID %{id} neexistuje"
@@ -422,7 +417,7 @@ msgstr "Událost s tímto ID %{id} neexistuje"
 msgid "Internal Error"
 msgstr "Interní chyba"
 
-#: lib/graphql/resolvers/discussion.ex:219
+#: lib/graphql/resolvers/discussion.ex:222
 #, elixir-autogen, elixir-format
 msgid "No discussion with ID %{id}"
 msgstr "Žádná diskuse s ID %{id}"
@@ -489,10 +484,10 @@ msgstr "Profil je již členem této skupiny"
 #: lib/graphql/resolvers/post.ex:133
 #: lib/graphql/resolvers/post.ex:175
 #: lib/graphql/resolvers/post.ex:209
-#: lib/graphql/resolvers/resource.ex:90
-#: lib/graphql/resolvers/resource.ex:135
-#: lib/graphql/resolvers/resource.ex:168
-#: lib/graphql/resolvers/resource.ex:202
+#: lib/graphql/resolvers/resource.ex:92
+#: lib/graphql/resolvers/resource.ex:137
+#: lib/graphql/resolvers/resource.ex:170
+#: lib/graphql/resolvers/resource.ex:204
 #: lib/graphql/resolvers/todos.ex:58
 #: lib/graphql/resolvers/todos.ex:83
 #: lib/graphql/resolvers/todos.ex:110
@@ -504,7 +499,7 @@ msgid "Profile is not member of group"
 msgstr "Profil není členem skupiny"
 
 #: lib/graphql/resolvers/actor.ex:67
-#: lib/graphql/resolvers/person.ex:242
+#: lib/graphql/resolvers/person.ex:244
 #, elixir-autogen, elixir-format
 msgid "Profile not found"
 msgstr "Profil nebyl nalezen"
@@ -514,8 +509,8 @@ msgstr "Profil nebyl nalezen"
 msgid "Report not found"
 msgstr "Zpráva nebyla nalezena"
 
-#: lib/graphql/resolvers/resource.ex:172
-#: lib/graphql/resolvers/resource.ex:199
+#: lib/graphql/resolvers/resource.ex:174
+#: lib/graphql/resolvers/resource.ex:201
 #, elixir-autogen, elixir-format
 msgid "Resource doesn't exist"
 msgstr "Zdroj neexistuje"
@@ -525,7 +520,7 @@ msgstr "Zdroj neexistuje"
 msgid "The event has already reached its maximum capacity"
 msgstr "Kapacita akce již byla naplněna na maximum"
 
-#: lib/graphql/resolvers/participant.ex:282
+#: lib/graphql/resolvers/participant.ex:289
 #, elixir-autogen, elixir-format
 msgid "This token is invalid"
 msgstr "Tento token je neplatný"
@@ -559,7 +554,7 @@ msgstr "Token není platný UUID"
 msgid "User not found"
 msgstr "Uživatel nebyl nalezen"
 
-#: lib/graphql/resolvers/person.ex:333
+#: lib/graphql/resolvers/person.ex:335
 #, elixir-autogen, elixir-format
 msgid "You already have a profile for this user"
 msgstr "Pro tohoto uživatele již máte profil"
@@ -581,7 +576,7 @@ msgstr "Nejste členem této skupiny"
 msgid "You are not a moderator or admin for this group"
 msgstr "Nejste moderátorem ani správcem této skupiny"
 
-#: lib/graphql/resolvers/comment.ex:80
+#: lib/graphql/resolvers/comment.ex:74
 #, elixir-autogen, elixir-format
 msgid "You are not allowed to create a comment if not connected"
 msgstr "Pokud nejste připojeni, nemůžete vytvořit komentář"
@@ -591,7 +586,7 @@ msgstr "Pokud nejste připojeni, nemůžete vytvořit komentář"
 msgid "You are not allowed to create a feed token if not connected"
 msgstr "Pokud nejste připojeni, nemůžete vytvořit token feedu"
 
-#: lib/graphql/resolvers/comment.ex:155
+#: lib/graphql/resolvers/comment.ex:161
 #, elixir-autogen, elixir-format
 msgid "You are not allowed to delete a comment if not connected"
 msgstr "Pokud nejste připojeni, nemůžete komentář smazat"
@@ -601,7 +596,7 @@ msgstr "Pokud nejste připojeni, nemůžete komentář smazat"
 msgid "You are not allowed to delete a feed token if not connected"
 msgstr "Pokud nejste připojeni, nemůžete odstranit token kanálu"
 
-#: lib/graphql/resolvers/comment.ex:114
+#: lib/graphql/resolvers/comment.ex:120
 #, elixir-autogen, elixir-format
 msgid "You are not allowed to update a comment if not connected"
 msgstr "Pokud nejste připojeni, nemůžete komentář aktualizovat"
@@ -620,12 +615,12 @@ msgstr ""
 "Pro tuto skupinu si nemůžete nastavit nižší roli člena, protože jste jediným "
 "správcem"
 
-#: lib/graphql/resolvers/comment.ex:143
+#: lib/graphql/resolvers/comment.ex:149
 #, elixir-autogen, elixir-format
 msgid "You cannot delete this comment"
 msgstr "Tento komentář nelze smazat"
 
-#: lib/graphql/resolvers/event.ex:403
+#: lib/graphql/resolvers/event.ex:430
 #, elixir-autogen, elixir-format
 msgid "You cannot delete this event"
 msgstr "Tuto událost nelze odstranit"
@@ -661,19 +656,19 @@ msgstr "Chcete-li aktualizovat zprávu, musíte být přihlášeni a být moder
 msgid "You need to be logged-in and a moderator to view a report"
 msgstr "Pro zobrazení zprávy musíte být přihlášeni a být moderátorem"
 
-#: lib/graphql/resolvers/admin.ex:252
+#: lib/graphql/resolvers/admin.ex:258
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in and an administrator to access admin settings"
 msgstr "Pro přístup k nastavení správce musíte být přihlášeni jako správce"
 
-#: lib/graphql/resolvers/admin.ex:236
+#: lib/graphql/resolvers/admin.ex:242
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in and an administrator to access dashboard statistics"
 msgstr ""
 "Pro přístup ke statistikám ovládacího panelu musíte být přihlášeni jako "
 "správce"
 
-#: lib/graphql/resolvers/admin.ex:278
+#: lib/graphql/resolvers/admin.ex:283
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in and an administrator to save admin settings"
 msgstr ""
@@ -684,12 +679,12 @@ msgstr ""
 msgid "You need to be logged-in to access discussions"
 msgstr "Pro přístup do diskuzí musíte být přihlášeni"
 
-#: lib/graphql/resolvers/resource.ex:96
+#: lib/graphql/resolvers/resource.ex:98
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to access resources"
 msgstr "Pro přístup ke zdrojům musíte být přihlášeni"
 
-#: lib/graphql/resolvers/event.ex:313
+#: lib/graphql/resolvers/event.ex:321
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to create events"
 msgstr "Chcete-li vytvářet události, musíte být přihlášeni"
@@ -704,12 +699,12 @@ msgstr "Pro vytváření příspěvků musíte být přihlášeni"
 msgid "You need to be logged-in to create reports"
 msgstr "Chcete-li vytvářet hlášení, musíte být přihlášeni"
 
-#: lib/graphql/resolvers/resource.ex:140
+#: lib/graphql/resolvers/resource.ex:142
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to create resources"
 msgstr "Chcete-li vytvářet zdroje, musíte být přihlášeni"
 
-#: lib/graphql/resolvers/event.ex:412
+#: lib/graphql/resolvers/event.ex:439
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to delete an event"
 msgstr "Chcete-li odstranit událost, musíte být přihlášeni"
@@ -719,7 +714,7 @@ msgstr "Chcete-li odstranit událost, musíte být přihlášeni"
 msgid "You need to be logged-in to delete posts"
 msgstr "Pro mazání příspěvků musíte být přihlášeni"
 
-#: lib/graphql/resolvers/resource.ex:207
+#: lib/graphql/resolvers/resource.ex:209
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to delete resources"
 msgstr "Chcete-li odstranit zdroje, musíte být přihlášeni"
@@ -734,7 +729,7 @@ msgstr "Chcete-li se připojit k události, musíte být přihlášeni"
 msgid "You need to be logged-in to leave an event"
 msgstr "Chcete-li opustit událost, musíte být přihlášeni"
 
-#: lib/graphql/resolvers/event.ex:369
+#: lib/graphql/resolvers/event.ex:396
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to update an event"
 msgstr "Chcete-li aktualizovat událost, musíte být přihlášeni"
@@ -744,17 +739,17 @@ msgstr "Chcete-li aktualizovat událost, musíte být přihlášeni"
 msgid "You need to be logged-in to update posts"
 msgstr "Pro aktualizaci příspěvků musíte být přihlášeni"
 
-#: lib/graphql/resolvers/resource.ex:177
+#: lib/graphql/resolvers/resource.ex:179
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to update resources"
 msgstr "Chcete-li aktualizovat zdroje, musíte být přihlášeni"
 
-#: lib/graphql/resolvers/resource.ex:236
+#: lib/graphql/resolvers/resource.ex:233
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to view a resource preview"
 msgstr "Pro zobrazení náhledu zdroje musíte být přihlášeni"
 
-#: lib/graphql/resolvers/resource.ex:132
+#: lib/graphql/resolvers/resource.ex:134
 #, elixir-autogen, elixir-format
 msgid "Parent resource doesn't belong to this group"
 msgstr "Nadřazený prostředek nepatří do této skupiny"
@@ -840,12 +835,12 @@ msgstr "Soubor nemá povolený typ MIME."
 msgid "Profile is not administrator for the group"
 msgstr "Profil není správcem skupiny"
 
-#: lib/graphql/resolvers/event.ex:358
+#: lib/graphql/resolvers/event.ex:385
 #, elixir-autogen, elixir-format
 msgid "You can't edit this event."
 msgstr "Tuto událost nelze upravovat."
 
-#: lib/graphql/resolvers/event.ex:361
+#: lib/graphql/resolvers/event.ex:388
 #, elixir-autogen, elixir-format
 msgid "You can't attribute this event to this profile."
 msgstr "Tuto událost nelze přiřadit k tomuto profilu."
@@ -865,7 +860,7 @@ msgstr "Tento člen již byl odmítnut."
 msgid "You don't have the right to remove this member."
 msgstr "Nemáte oprávnění tohoto člena odstranit."
 
-#: lib/mobilizon/actors/actor.ex:377
+#: lib/mobilizon/actors/actor.ex:378
 #, elixir-autogen, elixir-format
 msgid "This username is already taken."
 msgstr "Toto uživatelské jméno je již obsazeno."
@@ -875,7 +870,7 @@ msgstr "Toto uživatelské jméno je již obsazeno."
 msgid "You must provide either an ID or a slug to access a discussion"
 msgstr "Pro přístup do diskuse je nutné zadat ID nebo slug"
 
-#: lib/graphql/resolvers/event.ex:275
+#: lib/graphql/resolvers/event.ex:276
 #, elixir-autogen, elixir-format
 msgid "Organizer profile is not owned by the user"
 msgstr "Profil organizátora není ve vlastnictví uživatele"
@@ -887,42 +882,42 @@ msgstr "Poskytnuté ID profilu není anonymní ID profilu"
 
 #: lib/graphql/resolvers/group.ex:181
 #: lib/graphql/resolvers/group.ex:223
-#: lib/graphql/resolvers/person.ex:157
-#: lib/graphql/resolvers/person.ex:191
-#: lib/graphql/resolvers/person.ex:324
+#: lib/graphql/resolvers/person.ex:159
+#: lib/graphql/resolvers/person.ex:193
+#: lib/graphql/resolvers/person.ex:326
 #, elixir-autogen, elixir-format
 msgid "The provided picture is too heavy"
 msgstr "Poskytnutý obrázek je příliš velký"
 
-#: lib/graphql/resolvers/resource.ex:129
+#: lib/graphql/resolvers/resource.ex:131
 #, elixir-autogen, elixir-format
 msgid "Error while creating resource"
 msgstr "Chyba při vytváření prostředku"
 
-#: lib/graphql/resolvers/user.ex:537
+#: lib/graphql/resolvers/user.ex:566
 #, elixir-autogen, elixir-format
 msgid "Invalid activation token"
 msgstr "Neplatný aktivační token"
 
-#: lib/graphql/resolvers/resource.ex:226
+#: lib/graphql/resolvers/resource.ex:228
 #, elixir-autogen, elixir-format
 msgid "Unable to fetch resource details from this URL."
 msgstr "Z této adresy URL nelze načíst podrobnosti o prostředku."
 
 #: lib/graphql/resolvers/event.ex:165
 #: lib/graphql/resolvers/participant.ex:253
-#: lib/graphql/resolvers/participant.ex:328
+#: lib/graphql/resolvers/participant.ex:335
 #, elixir-autogen, elixir-format
 msgid "Provided profile doesn't have moderator permissions on this event"
 msgstr "Za předpokladu, že profil nemá oprávnění moderátora této události"
 
-#: lib/graphql/resolvers/event.ex:286
+#: lib/graphql/resolvers/event.ex:294
 #, elixir-autogen, elixir-format
 msgid "Organizer profile doesn't have permission to create an event on behalf of this group"
 msgstr ""
 "Profil organizátora nemá oprávnění k vytvoření události jménem této skupiny"
 
-#: lib/graphql/resolvers/event.ex:349
+#: lib/graphql/resolvers/event.ex:369
 #, elixir-autogen, elixir-format
 msgid "This profile doesn't have permission to update an event on behalf of this group"
 msgstr "Tento profil nemá oprávnění aktualizovat událost jménem této skupiny"
@@ -934,7 +929,7 @@ msgstr ""
 "Váš e-mail byl odmítnut k registraci nebo používá nepovoleného poskytovatele "
 "e-mailu"
 
-#: lib/graphql/resolvers/comment.ex:150
+#: lib/graphql/resolvers/comment.ex:156
 #, elixir-autogen, elixir-format
 msgid "Comment not found"
 msgstr "Komentář nebyl nalezen"
@@ -944,12 +939,12 @@ msgstr "Komentář nebyl nalezen"
 msgid "Error while creating a discussion"
 msgstr "Chyba při vytváření diskuse"
 
-#: lib/graphql/resolvers/user.ex:658
+#: lib/graphql/resolvers/user.ex:687
 #, elixir-autogen, elixir-format
 msgid "Error while updating locale"
 msgstr "Chyba při aktualizaci locale"
 
-#: lib/graphql/resolvers/person.ex:327
+#: lib/graphql/resolvers/person.ex:329
 #, elixir-autogen, elixir-format
 msgid "Error while uploading pictures"
 msgstr "Chyba při nahrávání obrázků"
@@ -964,13 +959,13 @@ msgstr "Nepodařilo se opustit událost"
 msgid "Failed to update the group"
 msgstr "Nepodařilo se aktualizovat skupinu"
 
-#: lib/graphql/resolvers/admin.ex:333
-#: lib/graphql/resolvers/user.ex:501
+#: lib/graphql/resolvers/admin.ex:357
+#: lib/graphql/resolvers/user.ex:547
 #, elixir-autogen, elixir-format
 msgid "Failed to update user email"
 msgstr "Nepodařilo se aktualizovat e-mail uživatele"
 
-#: lib/graphql/resolvers/user.ex:533
+#: lib/graphql/resolvers/user.ex:562
 #, elixir-autogen, elixir-format
 msgid "Failed to validate user email"
 msgstr "Nepodařilo se ověřit e-mail uživatele"
@@ -980,37 +975,37 @@ msgstr "Nepodařilo se ověřit e-mail uživatele"
 msgid "The anonymous actor ID is invalid"
 msgstr "Anonymní ID aktéra je neplatné"
 
-#: lib/graphql/resolvers/resource.ex:165
+#: lib/graphql/resolvers/resource.ex:167
 #, elixir-autogen, elixir-format
 msgid "Unknown error while updating resource"
 msgstr "Neznámá chyba při aktualizaci prostředku"
 
-#: lib/graphql/resolvers/comment.ex:105
+#: lib/graphql/resolvers/comment.ex:111
 #, elixir-autogen, elixir-format
 msgid "You are not the comment creator"
 msgstr "Nejste autorem komentáře"
 
-#: lib/graphql/resolvers/user.ex:458
+#: lib/graphql/resolvers/user.ex:471
 #, elixir-autogen, elixir-format
 msgid "You cannot change your password."
 msgstr "Heslo nelze změnit."
 
-#: lib/graphql/resolvers/participant.ex:321
+#: lib/graphql/resolvers/participant.ex:328
 #, elixir-autogen, elixir-format
 msgid "Format not supported"
 msgstr "Formát není podporován"
 
-#: lib/graphql/resolvers/participant.ex:305
+#: lib/graphql/resolvers/participant.ex:312
 #, elixir-autogen, elixir-format
 msgid "A dependency needed to export to %{format} is not installed"
 msgstr "Závislost potřebná k exportu do %{format} není nainstalována"
 
-#: lib/graphql/resolvers/participant.ex:313
+#: lib/graphql/resolvers/participant.ex:320
 #, elixir-autogen, elixir-format
 msgid "An error occured while saving export"
 msgstr "Při ukládání exportu došlo k chybě"
 
-#: lib/web/controllers/export_controller.ex:30
+#: lib/web/controllers/export_controller.ex:32
 #, elixir-autogen, elixir-format
 msgid "Export to format %{format} is not enabled on this instance"
 msgstr "Export do formátu %{format} není v této instanci povolen"
@@ -1020,17 +1015,17 @@ msgstr "Export do formátu %{format} není v této instanci povolen"
 msgid "Only admins can create groups"
 msgstr "Skupiny mohou vytvářet pouze správci"
 
-#: lib/graphql/resolvers/event.ex:279
+#: lib/graphql/resolvers/event.ex:280
 #, elixir-autogen, elixir-format
 msgid "Only groups can create events"
 msgstr "Události mohou vytvářet pouze skupiny"
 
-#: lib/graphql/resolvers/event.ex:305
+#: lib/graphql/resolvers/event.ex:313
 #, elixir-autogen, elixir-format
 msgid "Unknown error while creating event"
 msgstr "Neznámá chyba při vytváření události"
 
-#: lib/graphql/resolvers/user.ex:514
+#: lib/graphql/resolvers/user.ex:498
 #, elixir-autogen, elixir-format
 msgid "User cannot change email"
 msgstr "Uživatel nemůže změnit e-mail"
@@ -1045,12 +1040,12 @@ msgstr "Sledování neodpovídá vašemu účtu"
 msgid "Follow not found"
 msgstr "Sledování nebylo nalezeno"
 
-#: lib/graphql/resolvers/user.ex:379
+#: lib/graphql/resolvers/user.ex:392
 #, elixir-autogen, elixir-format
 msgid "Profile with username %{username} not found"
 msgstr "Profil s uživatelským jménem %{username} nebyl nalezen"
 
-#: lib/graphql/resolvers/user.ex:374
+#: lib/graphql/resolvers/user.ex:387
 #, elixir-autogen, elixir-format
 msgid "This profile does not belong to you"
 msgstr "Tento profil vám nepatří"
@@ -1095,22 +1090,22 @@ msgstr "Chcete-li odebrat člena, musíte být přihlášeni"
 msgid "Your email seems to be using an invalid format"
 msgstr "Váš e-mail zřejmě používá nesprávný formát"
 
-#: lib/graphql/resolvers/admin.ex:382
+#: lib/graphql/resolvers/admin.ex:399
 #, elixir-autogen, elixir-format
 msgid "Can't confirm an already confirmed user"
 msgstr "Nelze potvrdit již potvrzeného uživatele"
 
-#: lib/graphql/resolvers/admin.ex:386
+#: lib/graphql/resolvers/admin.ex:403
 #, elixir-autogen, elixir-format
 msgid "Deconfirming users is not supported"
 msgstr "Zrušení potvrzení uživatelů není podporováno"
 
-#: lib/graphql/resolvers/admin.ex:358
+#: lib/graphql/resolvers/admin.ex:375
 #, elixir-autogen, elixir-format
 msgid "The new role must be different"
 msgstr "Nová role musí být jiná"
 
-#: lib/graphql/resolvers/admin.ex:309
+#: lib/graphql/resolvers/admin.ex:314
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in and an administrator to edit an user's details"
 msgstr ""
@@ -1121,13 +1116,13 @@ msgstr ""
 msgid "A profile or group with that name already exists"
 msgstr "Profil nebo skupina s tímto názvem již existuje"
 
-#: lib/graphql/resolvers/admin.ex:519
+#: lib/graphql/resolvers/admin.ex:542
 #, elixir-autogen, elixir-format
 msgid "Unable to find an instance to follow at this address"
 msgstr ""
 "Na této adrese se nepodařilo najít instanci, kterou by bylo možné sledovat"
 
-#: lib/mobilizon/actors/actor.ex:396
+#: lib/mobilizon/actors/actor.ex:397
 #, elixir-autogen, elixir-format
 msgid "Username must only contain alphanumeric lowercased characters and underscores."
 msgstr ""
@@ -1135,17 +1130,17 @@ msgstr ""
 "písmeny a podtržítka."
 
 #: lib/graphql/resolvers/user.ex:303
-#: lib/graphql/resolvers/user.ex:326
+#: lib/graphql/resolvers/user.ex:333
 #, elixir-autogen, elixir-format
 msgid "This email doesn't seem to be valid"
 msgstr "Tento e-mail se nezdá být platný"
 
-#: lib/graphql/resolvers/comment.ex:65
+#: lib/graphql/resolvers/comment.ex:59
 #, elixir-autogen, elixir-format
 msgid "This comment was detected as spam."
 msgstr "Tento komentář byl detekován jako spam."
 
-#: lib/graphql/resolvers/event.ex:293
+#: lib/graphql/resolvers/event.ex:301
 #, elixir-autogen, elixir-format
 msgid "This event was detected as spam."
 msgstr "Tato událost byla detekována jako spam."
@@ -1167,7 +1162,7 @@ msgid "You need to be a moderator or an administrator to create a note on a repo
 msgstr ""
 "Chcete-li vytvořit poznámku k hlášení, musíte být moderátorem nebo správcem"
 
-#: lib/graphql/resolvers/person.ex:330
+#: lib/graphql/resolvers/person.ex:332
 #, elixir-autogen, elixir-format
 msgid "Your profile was detected as spam."
 msgstr "Váš profil byl detekován jako spam."
@@ -1177,7 +1172,7 @@ msgstr "Váš profil byl detekován jako spam."
 msgid "Your registration has been detected as spam and cannot be processed."
 msgstr "Vaše registrace byla detekována jako spam a nemůže být zpracována."
 
-#: lib/web/controllers/application_controller.ex:86
+#: lib/web/controllers/application_controller.ex:88
 #, elixir-autogen, elixir-format
 msgid "All of name, scope and redirect_uri parameters are required to create an application"
 msgstr ""
@@ -1194,176 +1189,232 @@ msgstr "Aplikace nebyla nalezena"
 msgid "Application token not found"
 msgstr "Token aplikace nebyl nalezen"
 
-#: lib/graphql/resolvers/application.ex:89
+#: lib/graphql/resolvers/application.ex:90
 #, elixir-autogen, elixir-format
 msgid "Error while revoking token"
 msgstr "Chyba při odebírání tokenu"
 
-#: lib/web/controllers/application_controller.ex:59
+#: lib/web/controllers/application_controller.ex:61
 #, elixir-autogen, elixir-format
 msgid "Impossible to create application."
 msgstr "Nelze vytvořit aplikaci."
 
-#: lib/web/controllers/application_controller.ex:356
+#: lib/web/controllers/application_controller.ex:358
 #, elixir-autogen, elixir-format
 msgid "Incorrect parameters sent. You need to provide at least the grant_type and client_id parameters, depending on the grant type being used."
 msgstr ""
 "Odeslány nesprávné parametry. V závislosti na použitém typu grantu je třeba "
 "zadat alespoň parametry grant_type a client_id."
 
-#: lib/web/controllers/application_controller.ex:329
+#: lib/web/controllers/application_controller.ex:331
 #, elixir-autogen, elixir-format
 msgid "Invalid client credentials provided"
 msgstr "Zadání neplatných pověření klienta"
 
-#: lib/web/controllers/application_controller.ex:337
+#: lib/web/controllers/application_controller.ex:339
 #, elixir-autogen, elixir-format
 msgid "Invalid refresh token provided"
 msgstr "Zadán neplatný token obnovení"
 
-#: lib/web/controllers/application_controller.ex:170
-#: lib/web/controllers/application_controller.ex:401
+#: lib/web/controllers/application_controller.ex:172
+#: lib/web/controllers/application_controller.ex:403
 #, elixir-autogen, elixir-format
 msgid "No application was found with this client_id"
 msgstr "Nebyla nalezena žádná aplikace s tímto client_id"
 
-#: lib/graphql/resolvers/application.ex:37
+#: lib/graphql/resolvers/application.ex:38
 #, elixir-autogen, elixir-format
 msgid "No application with this client_id was found"
 msgstr "Nebyla nalezena žádná aplikace s tímto client_id"
 
-#: lib/graphql/authorization.ex:80
+#: lib/graphql/authorization.ex:81
 #, elixir-autogen, elixir-format
 msgid "Not authorized to access field %{field}"
 msgstr "Není oprávněn přistupovat k poli %{field}"
 
-#: lib/graphql/authorization.ex:70
-#: lib/graphql/authorization.ex:75
+#: lib/graphql/authorization.ex:71
+#: lib/graphql/authorization.ex:76
 #, elixir-autogen, elixir-format
 msgid "Not authorized to access object %{object}"
 msgstr "Není oprávněn přistupovat k objektu %{objekt}"
 
-#: lib/graphql/authorization.ex:63
+#: lib/graphql/authorization.ex:64
 #, elixir-autogen, elixir-format
 msgid "Not authorized to access this %{object_type}"
 msgstr "Není oprávněn k přístupu k tomuto %{object_type}"
 
-#: lib/web/controllers/application_controller.ex:279
+#: lib/web/controllers/application_controller.ex:281
 #, elixir-autogen, elixir-format
 msgid "Please slow down the rate of your requests"
 msgstr "Zpomalte prosím tempo svých požadavků"
 
-#: lib/web/controllers/application_controller.ex:267
+#: lib/web/controllers/application_controller.ex:269
 #, elixir-autogen, elixir-format
 msgid "The authorization request is still pending"
 msgstr "Na žádost o povolení se stále čeká"
 
-#: lib/web/controllers/application_controller.ex:249
+#: lib/web/controllers/application_controller.ex:251
 #, elixir-autogen, elixir-format
 msgid "The client_id provided or the device_code associated is invalid"
 msgstr "Zadané client_id nebo přiřazený device_code jsou neplatné"
 
-#: lib/graphql/resolvers/application.ex:133
+#: lib/graphql/resolvers/application.ex:139
 #, elixir-autogen, elixir-format
 msgid "The device user code was not provided before approving the application"
 msgstr "Před schválením žádosti nebyl uveden kód uživatele zařízení"
 
-#: lib/web/controllers/application_controller.ex:304
+#: lib/web/controllers/application_controller.ex:306
 #, elixir-autogen, elixir-format
 msgid "The given device_code has expired"
 msgstr "Platnost daného device_code vypršela"
 
-#: lib/graphql/resolvers/application.ex:44
+#: lib/graphql/resolvers/application.ex:45
 #, elixir-autogen, elixir-format
 msgid "The given redirect_uri is not in the list of allowed redirect URIs"
 msgstr "Zadané redirect_uri není v seznamu povolených URI pro přesměrování"
 
-#: lib/web/controllers/application_controller.ex:158
+#: lib/web/controllers/application_controller.ex:160
 #, elixir-autogen, elixir-format
 msgid "The given scope is not in the list of the app declared scopes"
 msgstr "Daný rozsah není v seznamu deklarovaných rozsahů aplikace"
 
-#: lib/graphql/resolvers/application.ex:109
-#: lib/graphql/resolvers/application.ex:146
+#: lib/graphql/resolvers/application.ex:112
+#: lib/graphql/resolvers/application.ex:154
 #, elixir-autogen, elixir-format
 msgid "The given user code has expired"
 msgstr "Platnost daného kódu uživatele vypršela"
 
-#: lib/graphql/resolvers/application.ex:112
-#: lib/graphql/resolvers/application.ex:140
+#: lib/graphql/resolvers/application.ex:118
+#: lib/graphql/resolvers/application.ex:146
 #, elixir-autogen, elixir-format
 msgid "The given user code is invalid"
 msgstr "Zadaný kód uživatele je neplatný"
 
-#: lib/web/controllers/application_controller.ex:411
+#: lib/web/controllers/application_controller.ex:413
 #, elixir-autogen, elixir-format
 msgid "The provided client_id does not match the provided code"
 msgstr "Zadané client_id neodpovídá zadanému kódu"
 
-#: lib/web/controllers/application_controller.ex:414
+#: lib/web/controllers/application_controller.ex:416
 #, elixir-autogen, elixir-format
 msgid "The provided client_secret is invalid"
 msgstr "Zadaný client_secret je neplatný"
 
-#: lib/web/controllers/application_controller.ex:407
+#: lib/web/controllers/application_controller.ex:409
 #, elixir-autogen, elixir-format
 msgid "The provided code is invalid or expired"
 msgstr "Poskytnutý kód je neplatný nebo jeho platnost vypršela"
 
-#: lib/web/controllers/application_controller.ex:418
+#: lib/web/controllers/application_controller.ex:420
 #, elixir-autogen, elixir-format
 msgid "The provided scope is invalid or not included in the app declared scopes"
 msgstr ""
 "Zadaný rozsah je neplatný nebo není součástí deklarovaných rozsahů aplikace"
 
-#: lib/web/controllers/application_controller.ex:45
+#: lib/web/controllers/application_controller.ex:47
 #, elixir-autogen, elixir-format
 msgid "The scope parameter is not a space separated list of valid scopes"
 msgstr "Parametr rozsah není seznam platných rozsahů oddělený mezerou"
 
-#: lib/web/controllers/application_controller.ex:292
+#: lib/web/controllers/application_controller.ex:294
 #, elixir-autogen, elixir-format
 msgid "The user rejected the requested authorization"
 msgstr "Uživatel odmítl požadovanou autorizaci"
 
-#: lib/web/controllers/application_controller.ex:404
+#: lib/web/controllers/application_controller.ex:406
 #, elixir-autogen, elixir-format
 msgid "This redirect URI is not allowed"
 msgstr "Toto přesměrování URI není povoleno"
 
-#: lib/web/controllers/application_controller.ex:381
+#: lib/web/controllers/application_controller.ex:383
 #, elixir-autogen, elixir-format
 msgid "Token not found"
 msgstr "Token nebyl nalezen"
 
-#: lib/web/controllers/application_controller.ex:72
+#: lib/web/controllers/application_controller.ex:74
 #, elixir-autogen, elixir-format
 msgid "Too many requests"
 msgstr "Příliš mnoho požadavků"
 
-#: lib/web/controllers/application_controller.ex:184
+#: lib/web/controllers/application_controller.ex:186
 #, elixir-autogen, elixir-format
 msgid "Unable to produce device code"
 msgstr "Nelze vytvořit kód zařízení"
 
-#: lib/web/controllers/application_controller.ex:373
+#: lib/web/controllers/application_controller.ex:375
 #, elixir-autogen, elixir-format
 msgid "Unable to revoke token"
 msgstr "Nelze odvolat token"
 
-#: lib/web/controllers/application_controller.ex:198
+#: lib/web/controllers/application_controller.ex:200
 #, elixir-autogen, elixir-format
 msgid "You need to pass both client_id and scope as parameters to obtain a device code"
 msgstr ""
 "Chcete-li získat kód zařízení, musíte jako parametry předat client_id a scope"
 
-#: lib/web/controllers/application_controller.ex:136
+#: lib/web/controllers/application_controller.ex:138
 #, elixir-autogen, elixir-format
 msgid "You need to provide a valid redirect_uri to autorize an application"
 msgstr "Pro autorizaci aplikace je třeba zadat platnou redirect_uri"
 
-#: lib/web/controllers/application_controller.ex:126
+#: lib/web/controllers/application_controller.ex:128
 #, elixir-autogen, elixir-format
 msgid "You need to specify client_id, redirect_uri, scope and state to autorize an application"
 msgstr ""
 "Pro autorizaci aplikace je třeba zadat client_id, redirect_uri, rozsah a stav"
+
+#: lib/graphql/resolvers/user.ex:306
+#, elixir-autogen, elixir-format
+msgid "Couldn't send an email. Internal error."
+msgstr ""
+
+#: lib/graphql/resolvers/participant.ex:286
+#, elixir-autogen, elixir-format
+msgid "Participation is already confirmed"
+msgstr ""
+
+#: lib/graphql/resolvers/participant.ex:283
+#, elixir-autogen, elixir-format
+msgid "Participation is confirmed but not approved yet by an organizer"
+msgstr ""
+
+#: lib/graphql/resolvers/event.ex:287
+#: lib/graphql/resolvers/event.ex:376
+#, elixir-autogen, elixir-format
+msgid "Providing external registration is not allowed"
+msgstr ""
+
+#: lib/graphql/resolvers/push_subscription.ex:48
+#, elixir-autogen, elixir-format
+msgid "The same push subscription has already been registered"
+msgstr ""
+
+#: lib/graphql/resolvers/admin.ex:536
+#, elixir-autogen, elixir-format
+msgid "This instance is pending follow approval"
+msgstr ""
+
+#: lib/graphql/schema/custom/timezone.ex:23
+#, elixir-autogen, elixir-format
+msgid "Timezone ID %{timezone} is invalid"
+msgstr ""
+
+#: lib/graphql/resolvers/admin.ex:539
+#, elixir-autogen, elixir-format, fuzzy
+msgid "You are already following this instance"
+msgstr "Tuto skupinu již sledujete"
+
+#: lib/graphql/resolvers/user.ex:310
+#, elixir-autogen, elixir-format, fuzzy
+msgid "You requested again a confirmation email too soon. Please try again in a few minutes"
+msgstr "Znovu jste si vyžádali potvrzovací e-mail příliš brzy"
+
+#: lib/graphql/resolvers/user.ex:341
+#, elixir-autogen, elixir-format
+msgid "You requested again a password reset email too soon. Please try again in a few minutes"
+msgstr ""
+
+#: lib/graphql/resolvers/user.ex:368
+#, elixir-autogen, elixir-format
+msgid "The token you provided is invalid. Make sure that the URL is exactly the one provided inside the email you got."
+msgstr ""
diff --git a/priv/gettext/de/LC_MESSAGES/activity.po b/priv/gettext/de/LC_MESSAGES/activity.po
index 1c51805e2204950871bb3d4095a97d5e50cff973..1df44fd92eb9f6b1ecc608ec424c0ee2d84cc6ce 100644
--- a/priv/gettext/de/LC_MESSAGES/activity.po
+++ b/priv/gettext/de/LC_MESSAGES/activity.po
@@ -489,3 +489,15 @@ msgstr "%{profile} hat auf die Diskussion %{discussion} geantwortet."
 #, elixir-autogen, elixir-format
 msgid "%{profile} approved the member %{member}."
 msgstr "%{profile} hat das Mitglied %{member} bestätigt."
+
+#: lib/service/activity/renderer/event.ex:74
+#: lib/web/templates/email/activity/_event_activity_item.html.heex:55
+#: lib/web/templates/email/activity/_event_activity_item.text.eex:31
+#, elixir-autogen, elixir-format
+msgid "%{profile} joined your event %{event}."
+msgstr ""
+
+#: lib/web/views/email_view.ex:45
+#, elixir-autogen, elixir-format
+msgid "An anonymous profile"
+msgstr ""
diff --git a/priv/gettext/de/LC_MESSAGES/default.po b/priv/gettext/de/LC_MESSAGES/default.po
index 33399d13c9d1cb4f3dc14022a0af57f30c103dac..8a3b252a8f5de5d5285dfd277a3aa03e4f572c69 100644
--- a/priv/gettext/de/LC_MESSAGES/default.po
+++ b/priv/gettext/de/LC_MESSAGES/default.po
@@ -22,7 +22,7 @@ msgstr ""
 "Passwort wird sich nicht ändern, solange Sie den Link unten nicht öffnen und "
 "ein neues erstellen."
 
-#: lib/web/templates/email/report.html.heex:120
+#: lib/web/templates/email/report.html.heex:121
 #, elixir-autogen, elixir-format
 msgid "%{title} by %{creator}"
 msgstr "%{title} von %{creator}"
@@ -38,23 +38,17 @@ msgstr "Mein Konto aktivieren"
 msgid "Ask the community on Framacolibri"
 msgstr "Richten Sie Ihre Fragen an die Framacolibri-Gemeinschaft"
 
-#: lib/web/templates/email/report.text.eex:15
+#: lib/web/templates/email/report.text.eex:17
 #, elixir-autogen, elixir-format
 msgid "Comments"
 msgstr "Kommentare"
 
-#: lib/web/templates/email/report.html.heex:115
-#: lib/web/templates/email/report.text.eex:11
-#, elixir-autogen, elixir-format
-msgid "Event"
-msgstr "Veranstaltung"
-
 #: lib/web/email/user.ex:49
 #, elixir-autogen, elixir-format
 msgid "Instructions to reset your password on %{instance}"
 msgstr "Anweisungen um Ihr Passwort auf %{instance} zurückzusetzen"
 
-#: lib/web/templates/email/report.text.eex:21
+#: lib/web/templates/email/report.text.eex:23
 #, elixir-autogen, elixir-format
 msgid "Reason"
 msgstr "Begründung"
@@ -360,12 +354,12 @@ msgctxt "terms"
 msgid "What information do we collect?"
 msgstr "Welche Informationen sammeln wir?"
 
-#: lib/web/email/user.ex:182
+#: lib/web/email/user.ex:188
 #, elixir-autogen, elixir-format
 msgid "Mobilizon on %{instance}: confirm your email address"
 msgstr "Mobilizon auf %{instance}: Bestätige deine E-Mail Adresse"
 
-#: lib/web/email/user.ex:159
+#: lib/web/email/user.ex:165
 #, elixir-autogen, elixir-format
 msgid "Mobilizon on %{instance}: email changed"
 msgstr "Mobilizon auf %{instance}: E-Mail geändert"
@@ -1017,7 +1011,7 @@ msgstr "Ende"
 msgid "Event update!"
 msgstr "Veranstaltung aktualisiert!"
 
-#: lib/web/templates/email/report.html.heex:155
+#: lib/web/templates/email/report.html.heex:158
 #, elixir-autogen, elixir-format
 msgid "Flagged comments"
 msgstr "Markierte Kommentare"
@@ -1116,7 +1110,7 @@ msgstr "Fast fertig!"
 msgid "New email confirmation"
 msgstr "Neue E-Mail Bestätigung"
 
-#: lib/web/templates/email/report.html.heex:191
+#: lib/web/templates/email/report.html.heex:194
 #, elixir-autogen, elixir-format
 msgid "Reasons for report"
 msgstr "Gründe für Benachrichtigung"
@@ -1178,12 +1172,12 @@ msgstr "Leider hat der Organisator deine Teilnahme abgelehnt."
 msgid "Verify your email address"
 msgstr "Bestätig E-Mail Adresse"
 
-#: lib/web/templates/email/report.html.heex:232
+#: lib/web/templates/email/report.html.heex:235
 #, elixir-autogen, elixir-format
 msgid "View report"
 msgstr "Meldung ansehen"
 
-#: lib/web/templates/email/report.text.eex:24
+#: lib/web/templates/email/report.text.eex:26
 #, elixir-autogen, elixir-format
 msgid "View report:"
 msgstr "Meldung ansehen:"
@@ -1301,14 +1295,6 @@ msgstr ""
 "Da sich diese Gruppe auf einer anderen Instanz befand, funktioniert sie auch "
 "weiterhin für andere Instanzen als diese."
 
-#: lib/web/templates/email/group_suspension.html.heex:67
-#: lib/web/templates/email/group_suspension.text.eex:5
-#, elixir-autogen, elixir-format
-msgid "As this group was located on this instance, all of it's data has been irretrievably deleted."
-msgstr ""
-"Da sich diese Gruppe auf dieser Instanz befand, wurden alle Ihre Daten "
-"unwiederbringlich gelöscht."
-
 #: lib/web/templates/email/group_suspension.html.heex:18
 #: lib/web/templates/email/group_suspension.text.eex:1
 #, elixir-autogen, elixir-format
@@ -1323,7 +1309,7 @@ msgstr ""
 "(%{group_address}) zu suspendieren. Sie sind nicht länger ein Mitglied "
 "dieser Gruppe."
 
-#: lib/web/email/group.ex:107
+#: lib/web/email/group.ex:108
 #, elixir-autogen, elixir-format
 msgid "The group %{group} has been suspended on %{instance}"
 msgstr "Die Gruppe %{group} wurde auf %{instance} ausgesetzt"
@@ -1710,19 +1696,6 @@ msgstr ""
 msgid "Public feed for %{instance}"
 msgstr "Öffentlicher Newsfeed für %{instance}"
 
-#: lib/graphql/resolvers/user.ex:350
-#, elixir-autogen, elixir-format
-msgid "The password you have choosen is too short. Please make sure your password contains at least 6 charaters."
-msgstr ""
-"Das gewählte Passwort ist zu kurz. Es muss aus wenigstens 6 Zeichen bestehen."
-
-#: lib/graphql/resolvers/user.ex:356
-#, elixir-autogen, elixir-format
-msgid "The token you provided is invalid. Make sure that the URL is exactly the one provided inside the email you got."
-msgstr ""
-"Das von Ihnen angegebene Token ist ungültig. Vergewissern Sie sich, dass die "
-"URL genau derjenigen entspricht, die Sie in der E-Mail erhalten haben."
-
 #: lib/web/email/actor.ex:43
 #, elixir-autogen, elixir-format
 msgid "Your participation to %{event} has been cancelled!"
@@ -1752,63 +1725,63 @@ msgid "Your participation to %{event} on %{instance} has been cancelled!"
 msgstr "Ihre Teilnahme an %{title} auf %{instance} wurde storniert!"
 
 #. File name template for exported list of participants. Should NOT contain spaces. Make sure the output is going to be something standardized that is acceptable as a file name on most systems.
-#: lib/service/export/participants/csv.ex:81
+#: lib/service/export/participants/csv.ex:97
 #: lib/service/export/participants/ods.ex:86
 #: lib/service/export/participants/pdf.ex:96
 #, elixir-autogen, elixir-format
 msgid "%{event}_participants"
 msgstr "%{event}-Teilnehmer"
 
-#: lib/service/export/participants/common.ex:61
+#: lib/service/export/participants/common.ex:66
 #, elixir-autogen, elixir-format
 msgid "Participant message"
 msgstr "Nachricht des Teilnehmers"
 
-#: lib/service/export/participants/common.ex:61
+#: lib/service/export/participants/common.ex:63
 #, elixir-autogen, elixir-format
 msgid "Participant name"
 msgstr "Teilnahme bestätigt"
 
-#: lib/service/export/participants/common.ex:61
+#: lib/service/export/participants/common.ex:64
 #, elixir-autogen, elixir-format
 msgid "Participant status"
 msgstr "Teilnehmerstatus"
 
-#: lib/service/export/participants/common.ex:52
+#: lib/service/export/participants/common.ex:53
 #: lib/web/templates/email/admin/_role.html.heex:3
 #: lib/web/templates/email/admin/_role.text.eex:1
 #, elixir-autogen, elixir-format
 msgid "Administrator"
 msgstr "Administrator"
 
-#: lib/service/export/participants/common.ex:55
+#: lib/service/export/participants/common.ex:56
 #, elixir-autogen, elixir-format
 msgid "Creator"
 msgstr "Ersteller"
 
-#: lib/service/export/participants/common.ex:49
+#: lib/service/export/participants/common.ex:50
 #: lib/web/templates/email/admin/_role.html.heex:5
 #: lib/web/templates/email/admin/_role.text.eex:1
 #, elixir-autogen, elixir-format
 msgid "Moderator"
 msgstr "Moderator"
 
-#: lib/service/export/participants/common.ex:37
+#: lib/service/export/participants/common.ex:38
 #, elixir-autogen, elixir-format
 msgid "Not approved"
 msgstr "Nicht zugelassen"
 
-#: lib/service/export/participants/common.ex:40
+#: lib/service/export/participants/common.ex:41
 #, elixir-autogen, elixir-format
 msgid "Not confirmed"
 msgstr "Nicht bestätigt"
 
-#: lib/service/export/participants/common.ex:46
+#: lib/service/export/participants/common.ex:47
 #, elixir-autogen, elixir-format
 msgid "Participant"
 msgstr "Teilnahme bestätigt"
 
-#: lib/service/export/participants/common.ex:43
+#: lib/service/export/participants/common.ex:44
 #, elixir-autogen, elixir-format
 msgid "Rejected"
 msgstr "Abgelehnt"
@@ -1833,7 +1806,7 @@ msgstr "Anzahl der Teilnehmer"
 msgid "Participants for %{event}"
 msgstr "Teilnahme bestätigt"
 
-#: lib/service/export/participants/common.ex:88
+#: lib/service/export/participants/common.ex:95
 #, elixir-autogen, elixir-format
 msgid "Anonymous participant"
 msgstr "Anonymer Teilnehmer"
@@ -1952,7 +1925,7 @@ msgstr "Teilnehmen:"
 msgid "Title: %{title}"
 msgstr "Titel: %{title}"
 
-#: lib/web/email/group.ex:46
+#: lib/web/email/group.ex:47
 #, elixir-autogen, elixir-format
 msgid "📅 Just scheduled by %{group}: %{event}"
 msgstr "📅 Gerade erstellt von %{group}: %{event}"
@@ -2410,3 +2383,26 @@ msgstr ""
 #, elixir-autogen, elixir-format
 msgid "Until next time!"
 msgstr "Bis zum nächsten mal!"
+
+#: lib/web/templates/email/group_suspension.html.heex:67
+#: lib/web/templates/email/group_suspension.text.eex:5
+#, elixir-autogen, elixir-format, fuzzy
+msgid "As this group was located on this instance, all of its data has been irretrievably deleted."
+msgstr ""
+"Da sich diese Gruppe auf dieser Instanz befand, wurden alle Ihre Daten "
+"unwiederbringlich gelöscht."
+
+#: lib/web/templates/email/report.text.eex:11
+#, elixir-autogen, elixir-format, fuzzy
+msgid "Events"
+msgstr "Veranstaltung"
+
+#: lib/web/templates/email/report.html.heex:115
+#, elixir-autogen, elixir-format, fuzzy
+msgid "Flagged events"
+msgstr "Markierte Kommentare"
+
+#: lib/service/export/participants/common.ex:65
+#, elixir-autogen, elixir-format, fuzzy
+msgid "Participant registration date"
+msgstr "Teilnehmerstatus"
diff --git a/priv/gettext/de/LC_MESSAGES/errors.po b/priv/gettext/de/LC_MESSAGES/errors.po
index 7a3fcbec0cd420aff18e453d17c18b17f6d94ae5..dda8b2dd4f851dd62dfd33d943d4ec512248d890 100644
--- a/priv/gettext/de/LC_MESSAGES/errors.po
+++ b/priv/gettext/de/LC_MESSAGES/errors.po
@@ -110,7 +110,7 @@ msgstr "Aktuelles Profil ist nicht Mitglied dieser Gruppe"
 msgid "Current profile is not an administrator of the selected group"
 msgstr "Aktuelles Profil ist kein Administrator der ausgewählten Gruppe"
 
-#: lib/graphql/resolvers/user.ex:644
+#: lib/graphql/resolvers/user.ex:673
 #, elixir-autogen, elixir-format
 msgid "Error while saving user settings"
 msgstr "Fehler beim Speichern von Benutzereinstellungen"
@@ -156,8 +156,8 @@ msgid "No user to validate with this email was found"
 msgstr ""
 "Es wurde kein Benutzer gefunden, der mit dieser E-Mail validiert werden kann"
 
-#: lib/graphql/resolvers/person.ex:337
-#: lib/graphql/resolvers/user.ex:330
+#: lib/graphql/resolvers/person.ex:339
+#: lib/graphql/resolvers/user.ex:337
 #, elixir-autogen, elixir-format
 msgid "No user with this email was found"
 msgstr "Es wurde kein Benutzer mit dieser E-Mail gefunden"
@@ -165,12 +165,12 @@ msgstr "Es wurde kein Benutzer mit dieser E-Mail gefunden"
 #: lib/graphql/resolvers/feed_token.ex:28
 #: lib/graphql/resolvers/participant.ex:32
 #: lib/graphql/resolvers/participant.ex:210
-#: lib/graphql/resolvers/person.ex:245
-#: lib/graphql/resolvers/person.ex:376
-#: lib/graphql/resolvers/person.ex:412
-#: lib/graphql/resolvers/person.ex:419
-#: lib/graphql/resolvers/person.ex:448
-#: lib/graphql/resolvers/person.ex:463
+#: lib/graphql/resolvers/person.ex:247
+#: lib/graphql/resolvers/person.ex:378
+#: lib/graphql/resolvers/person.ex:414
+#: lib/graphql/resolvers/person.ex:421
+#: lib/graphql/resolvers/person.ex:450
+#: lib/graphql/resolvers/person.ex:465
 #, elixir-autogen, elixir-format
 msgid "Profile is not owned by authenticated user"
 msgstr "Profil ist nicht im Besitz des authentifizierten Benutzers"
@@ -180,43 +180,44 @@ msgstr "Profil ist nicht im Besitz des authentifizierten Benutzers"
 msgid "Registrations are not open"
 msgstr "Registrierungen sind nicht geöffnet"
 
-#: lib/graphql/resolvers/user.ex:461
+#: lib/graphql/resolvers/user.ex:474
 #, elixir-autogen, elixir-format
 msgid "The current password is invalid"
 msgstr "Das aktuelle Passwort ist ungültig"
 
-#: lib/graphql/resolvers/admin.ex:336
-#: lib/graphql/resolvers/user.ex:504
+#: lib/graphql/resolvers/admin.ex:334
+#: lib/graphql/resolvers/user.ex:527
 #, elixir-autogen, elixir-format
 msgid "The new email doesn't seem to be valid"
 msgstr "Die neue E-Mail scheint nicht gültig zu sein"
 
-#: lib/graphql/resolvers/admin.ex:339
-#: lib/graphql/resolvers/user.ex:507
+#: lib/graphql/resolvers/admin.ex:323
+#: lib/graphql/resolvers/user.ex:514
 #, elixir-autogen, elixir-format
 msgid "The new email must be different"
 msgstr "Die neue E-Mail muss anders lauten"
 
-#: lib/graphql/resolvers/user.ex:464
+#: lib/graphql/resolvers/user.ex:477
 #, elixir-autogen, elixir-format
 msgid "The new password must be different"
 msgstr "Das neue Passwort muss anders lauten"
 
-#: lib/graphql/resolvers/user.ex:511
-#: lib/graphql/resolvers/user.ex:573
-#: lib/graphql/resolvers/user.ex:576
+#: lib/graphql/resolvers/user.ex:518
+#: lib/graphql/resolvers/user.ex:602
+#: lib/graphql/resolvers/user.ex:605
 #, elixir-autogen, elixir-format
 msgid "The password provided is invalid"
 msgstr "Das angegebene Passwort ist ungültig"
 
-#: lib/graphql/resolvers/user.ex:468
+#: lib/graphql/resolvers/user.ex:361
+#: lib/graphql/resolvers/user.ex:481
 #, elixir-autogen, elixir-format
 msgid "The password you have chosen is too short. Please make sure your password contains at least 6 characters."
 msgstr ""
 "Das von Ihnen gewählte Passwort ist zu kurz. Bitte stellen Sie sicher, dass "
 "Ihr Passwort mindestens 6 Zeichen enthält."
 
-#: lib/graphql/resolvers/user.ex:323
+#: lib/graphql/resolvers/user.ex:330
 #, elixir-autogen, elixir-format
 msgid "This user can't reset their password"
 msgstr "Dieser Benutzer kann sein Passwort nicht zurücksetzen"
@@ -232,12 +233,12 @@ msgstr "Dieser Benutzer wurde deaktiviert"
 msgid "Unable to validate user"
 msgstr "Benutzer kann nicht validiert werden"
 
-#: lib/graphql/resolvers/user.ex:554
+#: lib/graphql/resolvers/user.ex:583
 #, elixir-autogen, elixir-format
 msgid "User already disabled"
 msgstr "Benutzer bereits deaktiviert"
 
-#: lib/graphql/resolvers/user.ex:619
+#: lib/graphql/resolvers/user.ex:648
 #, elixir-autogen, elixir-format
 msgid "User requested is not logged-in"
 msgstr "Angeforderter Benutzer ist nicht eingeloggt"
@@ -264,12 +265,12 @@ msgstr "Sie können dieser Gruppe nicht beitreten"
 msgid "You may not list groups unless moderator."
 msgstr "Sie dürfen keine Gruppen auflisten, es sei denn, Sie sind Moderator."
 
-#: lib/graphql/resolvers/user.ex:519
+#: lib/graphql/resolvers/user.ex:503
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to change your email"
 msgstr "Sie müssen eingeloggt sein, um Ihre E-Mail zu ändern"
 
-#: lib/graphql/resolvers/user.ex:476
+#: lib/graphql/resolvers/user.ex:489
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to change your password"
 msgstr "Sie müssen eingeloggt sein, um Ihr Passwort zu ändern"
@@ -279,7 +280,7 @@ msgstr "Sie müssen eingeloggt sein, um Ihr Passwort zu ändern"
 msgid "You need to be logged-in to delete a group"
 msgstr "Sie müssen eingeloggt sein, um eine Gruppe zu löschen"
 
-#: lib/graphql/resolvers/user.ex:581
+#: lib/graphql/resolvers/user.ex:610
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to delete your account"
 msgstr "Sie müssen eingeloggt sein, um Ihr Konto zu löschen"
@@ -305,12 +306,6 @@ msgid "You need to have an existing token to get a refresh token"
 msgstr ""
 "Sie müssen ein bestehendes Token haben, um ein Refresh-Token zu erhalten"
 
-#: lib/graphql/resolvers/user.ex:306
-#: lib/graphql/resolvers/user.ex:333
-#, elixir-autogen, elixir-format
-msgid "You requested again a confirmation email too soon"
-msgstr "Sie haben erneut eine Bestätigungs-E-Mail zu früh angefordert"
-
 #: lib/graphql/resolvers/user.ex:180
 #, elixir-autogen, elixir-format
 msgid "Your email is not on the allowlist"
@@ -363,17 +358,17 @@ msgstr "Eine gültige E-Mail wird von Ihrer Instanz benötigt"
 msgid "Anonymous participation is not enabled"
 msgstr "Anonyme Teilnahme ist nicht möglich"
 
-#: lib/graphql/resolvers/person.ex:219
+#: lib/graphql/resolvers/person.ex:221
 #, elixir-autogen, elixir-format
 msgid "Cannot remove the last administrator of a group"
 msgstr "Der letzte Administrator einer Gruppe kann nicht entfernt werden"
 
-#: lib/graphql/resolvers/person.ex:216
+#: lib/graphql/resolvers/person.ex:218
 #, elixir-autogen, elixir-format
 msgid "Cannot remove the last identity of a user"
 msgstr "Kann die letzte Identität eines Benutzers nicht entfernen"
 
-#: lib/graphql/resolvers/comment.ex:147
+#: lib/graphql/resolvers/comment.ex:153
 #, elixir-autogen, elixir-format
 msgid "Comment is already deleted"
 msgstr "Kommentar ist bereits gelöscht"
@@ -401,8 +396,8 @@ msgid "Event id not found"
 msgstr "Veranstaltungs-ID nicht gefunden"
 
 #: lib/graphql/error.ex:114
-#: lib/graphql/resolvers/event.ex:355
-#: lib/graphql/resolvers/event.ex:407
+#: lib/graphql/resolvers/event.ex:382
+#: lib/graphql/resolvers/event.ex:434
 #, elixir-autogen, elixir-format
 msgid "Event not found"
 msgstr "Veranstaltung nicht gefunden"
@@ -410,7 +405,7 @@ msgstr "Veranstaltung nicht gefunden"
 #: lib/graphql/resolvers/participant.ex:87
 #: lib/graphql/resolvers/participant.ex:128
 #: lib/graphql/resolvers/participant.ex:155
-#: lib/graphql/resolvers/participant.ex:336
+#: lib/graphql/resolvers/participant.ex:343
 #, elixir-autogen, elixir-format
 msgid "Event with this ID %{id} doesn't exist"
 msgstr "Veranstaltung mit dieser ID %{id} existiert nicht"
@@ -420,7 +415,7 @@ msgstr "Veranstaltung mit dieser ID %{id} existiert nicht"
 msgid "Internal Error"
 msgstr "Interner Fehler"
 
-#: lib/graphql/resolvers/discussion.ex:219
+#: lib/graphql/resolvers/discussion.ex:222
 #, elixir-autogen, elixir-format
 msgid "No discussion with ID %{id}"
 msgstr "Keine Diskussion mit ID %{id}"
@@ -489,10 +484,10 @@ msgstr ""
 #: lib/graphql/resolvers/post.ex:133
 #: lib/graphql/resolvers/post.ex:175
 #: lib/graphql/resolvers/post.ex:209
-#: lib/graphql/resolvers/resource.ex:90
-#: lib/graphql/resolvers/resource.ex:135
-#: lib/graphql/resolvers/resource.ex:168
-#: lib/graphql/resolvers/resource.ex:202
+#: lib/graphql/resolvers/resource.ex:92
+#: lib/graphql/resolvers/resource.ex:137
+#: lib/graphql/resolvers/resource.ex:170
+#: lib/graphql/resolvers/resource.ex:204
 #: lib/graphql/resolvers/todos.ex:58
 #: lib/graphql/resolvers/todos.ex:83
 #: lib/graphql/resolvers/todos.ex:110
@@ -504,7 +499,7 @@ msgid "Profile is not member of group"
 msgstr "Profil ist nicht Mitglied der Gruppe"
 
 #: lib/graphql/resolvers/actor.ex:67
-#: lib/graphql/resolvers/person.ex:242
+#: lib/graphql/resolvers/person.ex:244
 #, elixir-autogen, elixir-format
 msgid "Profile not found"
 msgstr "Profil nicht gefunden"
@@ -514,8 +509,8 @@ msgstr "Profil nicht gefunden"
 msgid "Report not found"
 msgstr "Meldung nicht gefunden"
 
-#: lib/graphql/resolvers/resource.ex:172
-#: lib/graphql/resolvers/resource.ex:199
+#: lib/graphql/resolvers/resource.ex:174
+#: lib/graphql/resolvers/resource.ex:201
 #, elixir-autogen, elixir-format
 msgid "Resource doesn't exist"
 msgstr "Ressource ist nicht vorhanden"
@@ -525,7 +520,7 @@ msgstr "Ressource ist nicht vorhanden"
 msgid "The event has already reached its maximum capacity"
 msgstr "Die Veranstaltung hat bereits ihre maximale Kapazität erreicht"
 
-#: lib/graphql/resolvers/participant.ex:282
+#: lib/graphql/resolvers/participant.ex:289
 #, elixir-autogen, elixir-format
 msgid "This token is invalid"
 msgstr "Dieses Token ist ungültig"
@@ -559,7 +554,7 @@ msgstr "Token ist keine gültige UUID"
 msgid "User not found"
 msgstr "User nicht gefunden"
 
-#: lib/graphql/resolvers/person.ex:333
+#: lib/graphql/resolvers/person.ex:335
 #, elixir-autogen, elixir-format
 msgid "You already have a profile for this user"
 msgstr "Sie haben bereits ein Profil für diesen Benutzer"
@@ -581,7 +576,7 @@ msgstr "Sie sind nicht Mitglied in dieser Gruppe"
 msgid "You are not a moderator or admin for this group"
 msgstr "Sie sind kein Moderator oder Admin für diese Gruppe"
 
-#: lib/graphql/resolvers/comment.ex:80
+#: lib/graphql/resolvers/comment.ex:74
 #, elixir-autogen, elixir-format
 msgid "You are not allowed to create a comment if not connected"
 msgstr "Wenn Sie nicht verbunden sind, dürfen Sie keinen Kommentar erstellen"
@@ -591,7 +586,7 @@ msgstr "Wenn Sie nicht verbunden sind, dürfen Sie keinen Kommentar erstellen"
 msgid "You are not allowed to create a feed token if not connected"
 msgstr "Sie dürfen kein Feed-Token erstellen, wenn Sie nicht verbunden sind"
 
-#: lib/graphql/resolvers/comment.ex:155
+#: lib/graphql/resolvers/comment.ex:161
 #, elixir-autogen, elixir-format
 msgid "You are not allowed to delete a comment if not connected"
 msgstr "Sie dürfen einen Kommentar nicht löschen, wenn Sie nicht verbunden sind"
@@ -601,7 +596,7 @@ msgstr "Sie dürfen einen Kommentar nicht löschen, wenn Sie nicht verbunden sin
 msgid "You are not allowed to delete a feed token if not connected"
 msgstr "Sie dürfen ein Feed-Token nicht löschen, wenn keine Verbindung besteht"
 
-#: lib/graphql/resolvers/comment.ex:114
+#: lib/graphql/resolvers/comment.ex:120
 #, elixir-autogen, elixir-format
 msgid "You are not allowed to update a comment if not connected"
 msgstr ""
@@ -622,12 +617,12 @@ msgstr ""
 "Sie können sich nicht auf eine niedrigere Mitgliedsrolle für diese Gruppe "
 "einstellen, da Sie der einzige Administrator sind"
 
-#: lib/graphql/resolvers/comment.ex:143
+#: lib/graphql/resolvers/comment.ex:149
 #, elixir-autogen, elixir-format
 msgid "You cannot delete this comment"
 msgstr "Sie können diesen Kommentar nicht löschen"
 
-#: lib/graphql/resolvers/event.ex:403
+#: lib/graphql/resolvers/event.ex:430
 #, elixir-autogen, elixir-format
 msgid "You cannot delete this event"
 msgstr "Sie können diese Veranstaltung nicht löschen"
@@ -666,21 +661,21 @@ msgstr ""
 msgid "You need to be logged-in and a moderator to view a report"
 msgstr "Sie müssen eingeloggt und ein Moderator sein, um einen Bericht zu sehen"
 
-#: lib/graphql/resolvers/admin.ex:252
+#: lib/graphql/resolvers/admin.ex:258
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in and an administrator to access admin settings"
 msgstr ""
 "Sie müssen angemeldet und ein Administrator sein, um auf die Admin-"
 "Einstellungen zugreifen zu können"
 
-#: lib/graphql/resolvers/admin.ex:236
+#: lib/graphql/resolvers/admin.ex:242
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in and an administrator to access dashboard statistics"
 msgstr ""
 "Sie müssen angemeldet und ein Administrator sein, um auf die Dashboard-"
 "Statistiken zugreifen zu können"
 
-#: lib/graphql/resolvers/admin.ex:278
+#: lib/graphql/resolvers/admin.ex:283
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in and an administrator to save admin settings"
 msgstr ""
@@ -692,12 +687,12 @@ msgstr ""
 msgid "You need to be logged-in to access discussions"
 msgstr "Sie müssen eingeloggt sein, um auf Diskussionen zugreifen zu können"
 
-#: lib/graphql/resolvers/resource.ex:96
+#: lib/graphql/resolvers/resource.ex:98
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to access resources"
 msgstr "Sie müssen eingeloggt sein, um auf Ressourcen zugreifen zu können"
 
-#: lib/graphql/resolvers/event.ex:313
+#: lib/graphql/resolvers/event.ex:321
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to create events"
 msgstr "Sie müssen eingeloggt sein, um Ereignisse zu erstellen"
@@ -712,12 +707,12 @@ msgstr "Sie müssen eingeloggt sein, um Beiträge zu erstellen"
 msgid "You need to be logged-in to create reports"
 msgstr "Sie müssen eingeloggt sein, um Berichte zu erstellen"
 
-#: lib/graphql/resolvers/resource.ex:140
+#: lib/graphql/resolvers/resource.ex:142
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to create resources"
 msgstr "Sie müssen eingeloggt sein, um Ressourcen zu erstellen"
 
-#: lib/graphql/resolvers/event.ex:412
+#: lib/graphql/resolvers/event.ex:439
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to delete an event"
 msgstr "Sie müssen eingeloggt sein, um ein Ereignis zu löschen"
@@ -727,7 +722,7 @@ msgstr "Sie müssen eingeloggt sein, um ein Ereignis zu löschen"
 msgid "You need to be logged-in to delete posts"
 msgstr "Sie müssen eingeloggt sein, um Beiträge zu löschen"
 
-#: lib/graphql/resolvers/resource.ex:207
+#: lib/graphql/resolvers/resource.ex:209
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to delete resources"
 msgstr "Sie müssen eingeloggt sein, um Ressourcen zu löschen"
@@ -742,7 +737,7 @@ msgstr "Sie müssen eingeloggt sein, um einer Veranstaltung beizutreten"
 msgid "You need to be logged-in to leave an event"
 msgstr "Sie müssen eingeloggt sein, um eine Veranstaltung zu verlassen"
 
-#: lib/graphql/resolvers/event.ex:369
+#: lib/graphql/resolvers/event.ex:396
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to update an event"
 msgstr "Sie müssen eingeloggt sein, um ein Ereignis zu aktualisieren"
@@ -752,17 +747,17 @@ msgstr "Sie müssen eingeloggt sein, um ein Ereignis zu aktualisieren"
 msgid "You need to be logged-in to update posts"
 msgstr "Sie müssen eingeloggt sein, um Beiträge zu aktualisieren"
 
-#: lib/graphql/resolvers/resource.ex:177
+#: lib/graphql/resolvers/resource.ex:179
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to update resources"
 msgstr "Sie müssen eingeloggt sein, um Ressourcen zu aktualisieren"
 
-#: lib/graphql/resolvers/resource.ex:236
+#: lib/graphql/resolvers/resource.ex:233
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to view a resource preview"
 msgstr "Sie müssen eingeloggt sein, um eine Ressourcenvorschau zu sehen"
 
-#: lib/graphql/resolvers/resource.ex:132
+#: lib/graphql/resolvers/resource.ex:134
 #, elixir-autogen, elixir-format
 msgid "Parent resource doesn't belong to this group"
 msgstr "Die übergeordnete Ressource gehört nicht zu dieser Gruppe"
@@ -850,12 +845,12 @@ msgstr "Die Datei hat keinen zulässigen MIME-Typ."
 msgid "Profile is not administrator for the group"
 msgstr "Profil ist nicht Administrator für die Gruppe"
 
-#: lib/graphql/resolvers/event.ex:358
+#: lib/graphql/resolvers/event.ex:385
 #, elixir-autogen, elixir-format
 msgid "You can't edit this event."
 msgstr "Sie können dieses Ereignis nicht bearbeiten."
 
-#: lib/graphql/resolvers/event.ex:361
+#: lib/graphql/resolvers/event.ex:388
 #, elixir-autogen, elixir-format
 msgid "You can't attribute this event to this profile."
 msgstr "Sie können dieses Ereignis nicht diesem Profil zuordnen."
@@ -875,7 +870,7 @@ msgstr "Dieses Mitglied ist bereits abgelehnt worden."
 msgid "You don't have the right to remove this member."
 msgstr "Sie haben nicht das Recht, dieses Mitglied zu entfernen."
 
-#: lib/mobilizon/actors/actor.ex:377
+#: lib/mobilizon/actors/actor.ex:378
 #, elixir-autogen, elixir-format
 msgid "This username is already taken."
 msgstr "Dieser Benutzername ist bereits vergeben."
@@ -887,7 +882,7 @@ msgstr ""
 "Sie müssen entweder eine ID oder einen Slug angeben, um auf eine Diskussion "
 "zuzugreifen"
 
-#: lib/graphql/resolvers/event.ex:275
+#: lib/graphql/resolvers/event.ex:276
 #, elixir-autogen, elixir-format
 msgid "Organizer profile is not owned by the user"
 msgstr "Organizer-Profil ist nicht im Besitz des Benutzers"
@@ -899,43 +894,43 @@ msgstr "Die angegebene Profil-ID ist nicht die des anonymen Profils"
 
 #: lib/graphql/resolvers/group.ex:181
 #: lib/graphql/resolvers/group.ex:223
-#: lib/graphql/resolvers/person.ex:157
-#: lib/graphql/resolvers/person.ex:191
-#: lib/graphql/resolvers/person.ex:324
+#: lib/graphql/resolvers/person.ex:159
+#: lib/graphql/resolvers/person.ex:193
+#: lib/graphql/resolvers/person.ex:326
 #, elixir-autogen, elixir-format
 msgid "The provided picture is too heavy"
 msgstr "Das Bild ist zu groß"
 
-#: lib/graphql/resolvers/resource.ex:129
+#: lib/graphql/resolvers/resource.ex:131
 #, elixir-autogen, elixir-format
 msgid "Error while creating resource"
 msgstr "Fehler beim Speichern des Reports"
 
-#: lib/graphql/resolvers/user.ex:537
+#: lib/graphql/resolvers/user.ex:566
 #, elixir-autogen, elixir-format
 msgid "Invalid activation token"
 msgstr "Ungültiges Aktivierungstoken"
 
-#: lib/graphql/resolvers/resource.ex:226
+#: lib/graphql/resolvers/resource.ex:228
 #, elixir-autogen, elixir-format
 msgid "Unable to fetch resource details from this URL."
 msgstr "Die Ressourcendetails können von dieser URL nicht abgerufen werden."
 
 #: lib/graphql/resolvers/event.ex:165
 #: lib/graphql/resolvers/participant.ex:253
-#: lib/graphql/resolvers/participant.ex:328
+#: lib/graphql/resolvers/participant.ex:335
 #, elixir-autogen, elixir-format
 msgid "Provided profile doesn't have moderator permissions on this event"
 msgstr "Dieses Moderatorenprofil hat keine Berechtigung für diese Veranstaltung"
 
-#: lib/graphql/resolvers/event.ex:286
+#: lib/graphql/resolvers/event.ex:294
 #, elixir-autogen, elixir-format
 msgid "Organizer profile doesn't have permission to create an event on behalf of this group"
 msgstr ""
 "Das Veranstalterprofil hat nicht die Berechtigung, eine Veranstaltung im "
 "Namen dieser Gruppe zu erstellen"
 
-#: lib/graphql/resolvers/event.ex:349
+#: lib/graphql/resolvers/event.ex:369
 #, elixir-autogen, elixir-format
 msgid "This profile doesn't have permission to update an event on behalf of this group"
 msgstr ""
@@ -949,7 +944,7 @@ msgstr ""
 "Ihre E-Mail wurde für die Registrierung abgelehnt oder Sie verwenden einen "
 "nicht zugelassenen E-Mail-Anbieter"
 
-#: lib/graphql/resolvers/comment.ex:150
+#: lib/graphql/resolvers/comment.ex:156
 #, elixir-autogen, elixir-format
 msgid "Comment not found"
 msgstr "Veranstaltung nicht gefunden"
@@ -959,12 +954,12 @@ msgstr "Veranstaltung nicht gefunden"
 msgid "Error while creating a discussion"
 msgstr "Fehler beim Speichern des Reports"
 
-#: lib/graphql/resolvers/user.ex:658
+#: lib/graphql/resolvers/user.ex:687
 #, elixir-autogen, elixir-format
 msgid "Error while updating locale"
 msgstr "Fehler beim Aktualisieren des Reports"
 
-#: lib/graphql/resolvers/person.ex:327
+#: lib/graphql/resolvers/person.ex:329
 #, elixir-autogen, elixir-format
 msgid "Error while uploading pictures"
 msgstr "Fehler beim Aktualisieren des Reports"
@@ -979,13 +974,13 @@ msgstr "Das Verlassen der Veranstaltung fehlgeschlagen"
 msgid "Failed to update the group"
 msgstr "Aktualisierung der Gruppe fehlgeschlagen"
 
-#: lib/graphql/resolvers/admin.ex:333
-#: lib/graphql/resolvers/user.ex:501
+#: lib/graphql/resolvers/admin.ex:357
+#: lib/graphql/resolvers/user.ex:547
 #, elixir-autogen, elixir-format
 msgid "Failed to update user email"
 msgstr "Das Aktualisieren der E-Mail des Benutzers fehlgeschlagen"
 
-#: lib/graphql/resolvers/user.ex:533
+#: lib/graphql/resolvers/user.ex:562
 #, elixir-autogen, elixir-format
 msgid "Failed to validate user email"
 msgstr "Benutzer kann nicht validiert werden"
@@ -995,39 +990,39 @@ msgstr "Benutzer kann nicht validiert werden"
 msgid "The anonymous actor ID is invalid"
 msgstr "Die ID des anonymen Akteurs ist ungültig"
 
-#: lib/graphql/resolvers/resource.ex:165
+#: lib/graphql/resolvers/resource.ex:167
 #, elixir-autogen, elixir-format
 msgid "Unknown error while updating resource"
 msgstr "Unbekannter Fehler beim Aktualisieren der Ressource"
 
-#: lib/graphql/resolvers/comment.ex:105
+#: lib/graphql/resolvers/comment.ex:111
 #, elixir-autogen, elixir-format
 msgid "You are not the comment creator"
 msgstr "Sie sind nicht der Ersteller des Kommentars"
 
-#: lib/graphql/resolvers/user.ex:458
+#: lib/graphql/resolvers/user.ex:471
 #, elixir-autogen, elixir-format
 msgid "You cannot change your password."
 msgstr "Sie können Ihr Passwort nicht ändern."
 
-#: lib/graphql/resolvers/participant.ex:321
+#: lib/graphql/resolvers/participant.ex:328
 #, elixir-autogen, elixir-format
 msgid "Format not supported"
 msgstr "Format nicht unterstützt"
 
-#: lib/graphql/resolvers/participant.ex:305
+#: lib/graphql/resolvers/participant.ex:312
 #, elixir-autogen, elixir-format
 msgid "A dependency needed to export to %{format} is not installed"
 msgstr ""
 "Eine für den Export in %{format} erforderliche Abhängigkeit ist nicht "
 "installiert"
 
-#: lib/graphql/resolvers/participant.ex:313
+#: lib/graphql/resolvers/participant.ex:320
 #, elixir-autogen, elixir-format
 msgid "An error occured while saving export"
 msgstr "Beim Speichern des Exports ist ein Fehler aufgetreten"
 
-#: lib/web/controllers/export_controller.ex:30
+#: lib/web/controllers/export_controller.ex:32
 #, elixir-autogen, elixir-format
 msgid "Export to format %{format} is not enabled on this instance"
 msgstr "Export in Format %{format} ist auf dieser Instanz nicht aktivier"
@@ -1037,17 +1032,17 @@ msgstr "Export in Format %{format} ist auf dieser Instanz nicht aktivier"
 msgid "Only admins can create groups"
 msgstr "Nur Administratoren können Gruppen erstellen"
 
-#: lib/graphql/resolvers/event.ex:279
+#: lib/graphql/resolvers/event.ex:280
 #, elixir-autogen, elixir-format
 msgid "Only groups can create events"
 msgstr "Nur Gruppen können Veranstaltungen erstellen"
 
-#: lib/graphql/resolvers/event.ex:305
+#: lib/graphql/resolvers/event.ex:313
 #, elixir-autogen, elixir-format
 msgid "Unknown error while creating event"
 msgstr "Unbekannter Fehler beim Erstellen einer Veranstaltung"
 
-#: lib/graphql/resolvers/user.ex:514
+#: lib/graphql/resolvers/user.ex:498
 #, elixir-autogen, elixir-format
 msgid "User cannot change email"
 msgstr "Benutzer kann E-Mail nicht ändern"
@@ -1062,12 +1057,12 @@ msgstr "Follower stimmt nicht mit Ihrem Konto überein"
 msgid "Follow not found"
 msgstr "Follower nicht gefunden"
 
-#: lib/graphql/resolvers/user.ex:379
+#: lib/graphql/resolvers/user.ex:392
 #, elixir-autogen, elixir-format
 msgid "Profile with username %{username} not found"
 msgstr "Person mit Benutzernamen %{username} nicht gefunden"
 
-#: lib/graphql/resolvers/user.ex:374
+#: lib/graphql/resolvers/user.ex:387
 #, elixir-autogen, elixir-format
 msgid "This profile does not belong to you"
 msgstr "Dieses Profil gehört nicht Ihnen"
@@ -1112,22 +1107,22 @@ msgstr "Sie müssen angemeldet sein, um ein Mitglied zu entfernen"
 msgid "Your email seems to be using an invalid format"
 msgstr "Ihre E-Mail scheint ein ungültiges Format zu verwenden"
 
-#: lib/graphql/resolvers/admin.ex:382
+#: lib/graphql/resolvers/admin.ex:399
 #, elixir-autogen, elixir-format
 msgid "Can't confirm an already confirmed user"
 msgstr "Kann einen bereits bestätigten Benutzer nicht bestätigen"
 
-#: lib/graphql/resolvers/admin.ex:386
+#: lib/graphql/resolvers/admin.ex:403
 #, elixir-autogen, elixir-format
 msgid "Deconfirming users is not supported"
 msgstr "Das Zurücknehmen einer Bestätigung von Benutzern wird nicht unterstützt"
 
-#: lib/graphql/resolvers/admin.ex:358
+#: lib/graphql/resolvers/admin.ex:375
 #, elixir-autogen, elixir-format
 msgid "The new role must be different"
 msgstr "Die neue Rolle muss anders sein"
 
-#: lib/graphql/resolvers/admin.ex:309
+#: lib/graphql/resolvers/admin.ex:314
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in and an administrator to edit an user's details"
 msgstr ""
@@ -1139,12 +1134,12 @@ msgstr ""
 msgid "A profile or group with that name already exists"
 msgstr "Ein Profil oder eine Gruppe mit diesem Namen existiert bereits"
 
-#: lib/graphql/resolvers/admin.ex:519
+#: lib/graphql/resolvers/admin.ex:542
 #, elixir-autogen, elixir-format
 msgid "Unable to find an instance to follow at this address"
 msgstr "Keine Instanz gefunden um dieser Adresse zu folgen"
 
-#: lib/mobilizon/actors/actor.ex:396
+#: lib/mobilizon/actors/actor.ex:397
 #, elixir-autogen, elixir-format
 msgid "Username must only contain alphanumeric lowercased characters and underscores."
 msgstr ""
@@ -1152,17 +1147,17 @@ msgstr ""
 "enthalten."
 
 #: lib/graphql/resolvers/user.ex:303
-#: lib/graphql/resolvers/user.ex:326
+#: lib/graphql/resolvers/user.ex:333
 #, elixir-autogen, elixir-format
 msgid "This email doesn't seem to be valid"
 msgstr "Diese E-Mail scheint nicht gültig zu sein"
 
-#: lib/graphql/resolvers/comment.ex:65
+#: lib/graphql/resolvers/comment.ex:59
 #, elixir-autogen, elixir-format
 msgid "This comment was detected as spam."
 msgstr "Dieser Kommentar wurde als Spam erkannt."
 
-#: lib/graphql/resolvers/event.ex:293
+#: lib/graphql/resolvers/event.ex:301
 #, elixir-autogen, elixir-format
 msgid "This event was detected as spam."
 msgstr "Diese Veranstaltung wurde als Spam erkannt."
@@ -1185,7 +1180,7 @@ msgstr ""
 "Sie müssen Moderator oder Administrator zum Erstellen von Meldungsnotizen "
 "sein"
 
-#: lib/graphql/resolvers/person.ex:330
+#: lib/graphql/resolvers/person.ex:332
 #, elixir-autogen, elixir-format
 msgid "Your profile was detected as spam."
 msgstr "Ihr Profil wurde als Spam erkannt."
@@ -1196,7 +1191,7 @@ msgid "Your registration has been detected as spam and cannot be processed."
 msgstr ""
 "Ihre Registrierung wurde als Spam erkannt und kann nicht verarbeitet werden."
 
-#: lib/web/controllers/application_controller.ex:86
+#: lib/web/controllers/application_controller.ex:88
 #, elixir-autogen, elixir-format
 msgid "All of name, scope and redirect_uri parameters are required to create an application"
 msgstr ""
@@ -1211,171 +1206,227 @@ msgstr ""
 msgid "Application token not found"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:89
+#: lib/graphql/resolvers/application.ex:90
 #, elixir-autogen, elixir-format, fuzzy
 msgid "Error while revoking token"
 msgstr "Fehler beim Speichern des Reports"
 
-#: lib/web/controllers/application_controller.ex:59
+#: lib/web/controllers/application_controller.ex:61
 #, elixir-autogen, elixir-format
 msgid "Impossible to create application."
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:356
+#: lib/web/controllers/application_controller.ex:358
 #, elixir-autogen, elixir-format
 msgid "Incorrect parameters sent. You need to provide at least the grant_type and client_id parameters, depending on the grant type being used."
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:329
+#: lib/web/controllers/application_controller.ex:331
 #, elixir-autogen, elixir-format
 msgid "Invalid client credentials provided"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:337
+#: lib/web/controllers/application_controller.ex:339
 #, elixir-autogen, elixir-format
 msgid "Invalid refresh token provided"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:170
-#: lib/web/controllers/application_controller.ex:401
+#: lib/web/controllers/application_controller.ex:172
+#: lib/web/controllers/application_controller.ex:403
 #, elixir-autogen, elixir-format
 msgid "No application was found with this client_id"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:37
+#: lib/graphql/resolvers/application.ex:38
 #, elixir-autogen, elixir-format
 msgid "No application with this client_id was found"
 msgstr ""
 
-#: lib/graphql/authorization.ex:80
+#: lib/graphql/authorization.ex:81
 #, elixir-autogen, elixir-format
 msgid "Not authorized to access field %{field}"
 msgstr ""
 
-#: lib/graphql/authorization.ex:70
-#: lib/graphql/authorization.ex:75
+#: lib/graphql/authorization.ex:71
+#: lib/graphql/authorization.ex:76
 #, elixir-autogen, elixir-format
 msgid "Not authorized to access object %{object}"
 msgstr ""
 
-#: lib/graphql/authorization.ex:63
+#: lib/graphql/authorization.ex:64
 #, elixir-autogen, elixir-format
 msgid "Not authorized to access this %{object_type}"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:279
+#: lib/web/controllers/application_controller.ex:281
 #, elixir-autogen, elixir-format
 msgid "Please slow down the rate of your requests"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:267
+#: lib/web/controllers/application_controller.ex:269
 #, elixir-autogen, elixir-format
 msgid "The authorization request is still pending"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:249
+#: lib/web/controllers/application_controller.ex:251
 #, elixir-autogen, elixir-format
 msgid "The client_id provided or the device_code associated is invalid"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:133
+#: lib/graphql/resolvers/application.ex:139
 #, elixir-autogen, elixir-format
 msgid "The device user code was not provided before approving the application"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:304
+#: lib/web/controllers/application_controller.ex:306
 #, elixir-autogen, elixir-format
 msgid "The given device_code has expired"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:44
+#: lib/graphql/resolvers/application.ex:45
 #, elixir-autogen, elixir-format
 msgid "The given redirect_uri is not in the list of allowed redirect URIs"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:158
+#: lib/web/controllers/application_controller.ex:160
 #, elixir-autogen, elixir-format
 msgid "The given scope is not in the list of the app declared scopes"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:109
-#: lib/graphql/resolvers/application.ex:146
+#: lib/graphql/resolvers/application.ex:112
+#: lib/graphql/resolvers/application.ex:154
 #, elixir-autogen, elixir-format
 msgid "The given user code has expired"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:112
-#: lib/graphql/resolvers/application.ex:140
+#: lib/graphql/resolvers/application.ex:118
+#: lib/graphql/resolvers/application.ex:146
 #, elixir-autogen, elixir-format
 msgid "The given user code is invalid"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:411
+#: lib/web/controllers/application_controller.ex:413
 #, elixir-autogen, elixir-format
 msgid "The provided client_id does not match the provided code"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:414
+#: lib/web/controllers/application_controller.ex:416
 #, elixir-autogen, elixir-format
 msgid "The provided client_secret is invalid"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:407
+#: lib/web/controllers/application_controller.ex:409
 #, elixir-autogen, elixir-format
 msgid "The provided code is invalid or expired"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:418
+#: lib/web/controllers/application_controller.ex:420
 #, elixir-autogen, elixir-format
 msgid "The provided scope is invalid or not included in the app declared scopes"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:45
+#: lib/web/controllers/application_controller.ex:47
 #, elixir-autogen, elixir-format
 msgid "The scope parameter is not a space separated list of valid scopes"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:292
+#: lib/web/controllers/application_controller.ex:294
 #, elixir-autogen, elixir-format
 msgid "The user rejected the requested authorization"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:404
+#: lib/web/controllers/application_controller.ex:406
 #, elixir-autogen, elixir-format
 msgid "This redirect URI is not allowed"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:381
+#: lib/web/controllers/application_controller.ex:383
 #, elixir-autogen, elixir-format, fuzzy
 msgid "Token not found"
 msgstr "Veranstaltung nicht gefunden"
 
-#: lib/web/controllers/application_controller.ex:72
+#: lib/web/controllers/application_controller.ex:74
 #, elixir-autogen, elixir-format
 msgid "Too many requests"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:184
+#: lib/web/controllers/application_controller.ex:186
 #, elixir-autogen, elixir-format
 msgid "Unable to produce device code"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:373
+#: lib/web/controllers/application_controller.ex:375
 #, elixir-autogen, elixir-format
 msgid "Unable to revoke token"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:198
+#: lib/web/controllers/application_controller.ex:200
 #, elixir-autogen, elixir-format
 msgid "You need to pass both client_id and scope as parameters to obtain a device code"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:136
+#: lib/web/controllers/application_controller.ex:138
 #, elixir-autogen, elixir-format
 msgid "You need to provide a valid redirect_uri to autorize an application"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:126
+#: lib/web/controllers/application_controller.ex:128
 #, elixir-autogen, elixir-format
 msgid "You need to specify client_id, redirect_uri, scope and state to autorize an application"
 msgstr ""
+
+#: lib/graphql/resolvers/user.ex:306
+#, elixir-autogen, elixir-format
+msgid "Couldn't send an email. Internal error."
+msgstr ""
+
+#: lib/graphql/resolvers/participant.ex:286
+#, elixir-autogen, elixir-format
+msgid "Participation is already confirmed"
+msgstr ""
+
+#: lib/graphql/resolvers/participant.ex:283
+#, elixir-autogen, elixir-format
+msgid "Participation is confirmed but not approved yet by an organizer"
+msgstr ""
+
+#: lib/graphql/resolvers/event.ex:287
+#: lib/graphql/resolvers/event.ex:376
+#, elixir-autogen, elixir-format
+msgid "Providing external registration is not allowed"
+msgstr ""
+
+#: lib/graphql/resolvers/push_subscription.ex:48
+#, elixir-autogen, elixir-format
+msgid "The same push subscription has already been registered"
+msgstr ""
+
+#: lib/graphql/resolvers/admin.ex:536
+#, elixir-autogen, elixir-format
+msgid "This instance is pending follow approval"
+msgstr ""
+
+#: lib/graphql/schema/custom/timezone.ex:23
+#, elixir-autogen, elixir-format
+msgid "Timezone ID %{timezone} is invalid"
+msgstr ""
+
+#: lib/graphql/resolvers/admin.ex:539
+#, elixir-autogen, elixir-format, fuzzy
+msgid "You are already following this instance"
+msgstr "Sie folgen dieser Gruppe bereits"
+
+#: lib/graphql/resolvers/user.ex:310
+#, elixir-autogen, elixir-format, fuzzy
+msgid "You requested again a confirmation email too soon. Please try again in a few minutes"
+msgstr "Sie haben erneut eine Bestätigungs-E-Mail zu früh angefordert"
+
+#: lib/graphql/resolvers/user.ex:341
+#, elixir-autogen, elixir-format
+msgid "You requested again a password reset email too soon. Please try again in a few minutes"
+msgstr ""
+
+#: lib/graphql/resolvers/user.ex:368
+#, elixir-autogen, elixir-format
+msgid "The token you provided is invalid. Make sure that the URL is exactly the one provided inside the email you got."
+msgstr ""
diff --git a/priv/gettext/default.pot b/priv/gettext/default.pot
index 350e208e8282b23ed20a343eefad8b9c2f2de608..70defd3774d59fa528bc09c3b988bd6b5aeab8ba 100644
--- a/priv/gettext/default.pot
+++ b/priv/gettext/default.pot
@@ -1317,16 +1317,6 @@ msgstr ""
 msgid "Public feed for %{instance}"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:361
-#, elixir-autogen, elixir-format
-msgid "The password you have choosen is too short. Please make sure your password contains at least 6 charaters."
-msgstr ""
-
-#: lib/graphql/resolvers/user.ex:367
-#, elixir-autogen, elixir-format
-msgid "The token you provided is invalid. Make sure that the URL is exactly the one provided inside the email you got."
-msgstr ""
-
 #: lib/web/email/actor.ex:43
 #, elixir-autogen, elixir-format
 msgid "Your participation to %{event} has been cancelled!"
diff --git a/priv/gettext/en/LC_MESSAGES/activity.po b/priv/gettext/en/LC_MESSAGES/activity.po
index 75a979099db23fd5a40bf27b1a7b3425c0948d48..98c8d337307f6b2b25ab8b5ca5cdbfbfd99a5aa4 100644
--- a/priv/gettext/en/LC_MESSAGES/activity.po
+++ b/priv/gettext/en/LC_MESSAGES/activity.po
@@ -9,7 +9,7 @@
 msgid ""
 msgstr ""
 "Language: en\n"
-"Plural-Forms: nplurals=2\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
 
 #: lib/web/templates/email/activity/_member_activity_item.html.heex:14
 #: lib/web/templates/email/activity/_member_activity_item.text.eex:12
@@ -454,3 +454,15 @@ msgstr ""
 #, elixir-autogen, elixir-format, fuzzy
 msgid "%{profile} approved the member %{member}."
 msgstr ""
+
+#: lib/service/activity/renderer/event.ex:74
+#: lib/web/templates/email/activity/_event_activity_item.html.heex:55
+#: lib/web/templates/email/activity/_event_activity_item.text.eex:31
+#, elixir-autogen, elixir-format
+msgid "%{profile} joined your event %{event}."
+msgstr ""
+
+#: lib/web/views/email_view.ex:45
+#, elixir-autogen, elixir-format
+msgid "An anonymous profile"
+msgstr ""
diff --git a/priv/gettext/en/LC_MESSAGES/default.po b/priv/gettext/en/LC_MESSAGES/default.po
index 80f342ee3e8892487ba0b8f8b8e3ae9930f5efdb..ca15b70c5ee1a5afb1b84010fa9acc3baf49715b 100644
--- a/priv/gettext/en/LC_MESSAGES/default.po
+++ b/priv/gettext/en/LC_MESSAGES/default.po
@@ -26,7 +26,7 @@ msgstr ""
 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 "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."
 
-#: lib/web/templates/email/report.html.heex:120
+#: lib/web/templates/email/report.html.heex:121
 #, elixir-autogen, elixir-format
 msgid "%{title} by %{creator}"
 msgstr "%{title} by %{creator}"
@@ -42,23 +42,17 @@ msgstr "Activate my account"
 msgid "Ask the community on Framacolibri"
 msgstr "Ask the community on Framacolibri"
 
-#: lib/web/templates/email/report.text.eex:15
+#: lib/web/templates/email/report.text.eex:17
 #, elixir-autogen, elixir-format
 msgid "Comments"
 msgstr "Comments"
 
-#: lib/web/templates/email/report.html.heex:115
-#: lib/web/templates/email/report.text.eex:11
-#, elixir-autogen, elixir-format
-msgid "Event"
-msgstr "Event"
-
 #: lib/web/email/user.ex:49
 #, elixir-autogen, elixir-format
 msgid "Instructions to reset your password on %{instance}"
 msgstr "Instructions to reset your password on %{instance}"
 
-#: lib/web/templates/email/report.text.eex:21
+#: lib/web/templates/email/report.text.eex:23
 #, elixir-autogen, elixir-format
 msgid "Reason"
 msgstr "Reason"
@@ -348,12 +342,12 @@ msgctxt "terms"
 msgid "What information do we collect?"
 msgstr "What information do we collect?"
 
-#: lib/web/email/user.ex:182
+#: lib/web/email/user.ex:188
 #, elixir-autogen, elixir-format
 msgid "Mobilizon on %{instance}: confirm your email address"
 msgstr ""
 
-#: lib/web/email/user.ex:159
+#: lib/web/email/user.ex:165
 #, elixir-autogen, elixir-format
 msgid "Mobilizon on %{instance}: email changed"
 msgstr ""
@@ -844,7 +838,7 @@ msgstr ""
 msgid "Event update!"
 msgstr "Event updated!"
 
-#: lib/web/templates/email/report.html.heex:155
+#: lib/web/templates/email/report.html.heex:158
 #, elixir-autogen, elixir-format
 msgid "Flagged comments"
 msgstr ""
@@ -925,7 +919,7 @@ msgstr "Nearly there!"
 msgid "New email confirmation"
 msgstr ""
 
-#: lib/web/templates/email/report.html.heex:191
+#: lib/web/templates/email/report.html.heex:194
 #, elixir-autogen, elixir-format
 msgid "Reasons for report"
 msgstr ""
@@ -980,12 +974,12 @@ msgstr "Unfortunately, the organizers rejected your participation."
 msgid "Verify your email address"
 msgstr ""
 
-#: lib/web/templates/email/report.html.heex:232
+#: lib/web/templates/email/report.html.heex:235
 #, elixir-autogen, elixir-format
 msgid "View report"
 msgstr "View the report"
 
-#: lib/web/templates/email/report.text.eex:24
+#: lib/web/templates/email/report.text.eex:26
 #, elixir-autogen, elixir-format
 msgid "View report:"
 msgstr "View the report"
@@ -1083,12 +1077,6 @@ msgstr ""
 msgid "As this group was located on another instance, it will continue to work for other instances than this one."
 msgstr ""
 
-#: lib/web/templates/email/group_suspension.html.heex:67
-#: lib/web/templates/email/group_suspension.text.eex:5
-#, elixir-autogen, elixir-format
-msgid "As this group was located on this instance, all of it's data has been irretrievably deleted."
-msgstr ""
-
 #: lib/web/templates/email/group_suspension.html.heex:18
 #: lib/web/templates/email/group_suspension.text.eex:1
 #, elixir-autogen, elixir-format
@@ -1100,7 +1088,7 @@ msgstr ""
 msgid "Your instance's moderation team has decided to suspend %{group_name} (%{group_address}). You are no longer a member of this group."
 msgstr ""
 
-#: lib/web/email/group.ex:107
+#: lib/web/email/group.ex:108
 #, elixir-autogen, elixir-format
 msgid "The group %{group} has been suspended on %{instance}"
 msgstr ""
@@ -1382,16 +1370,6 @@ msgstr ""
 msgid "Public feed for %{instance}"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:350
-#, elixir-autogen, elixir-format
-msgid "The password you have choosen is too short. Please make sure your password contains at least 6 charaters."
-msgstr ""
-
-#: lib/graphql/resolvers/user.ex:356
-#, elixir-autogen, elixir-format
-msgid "The token you provided is invalid. Make sure that the URL is exactly the one provided inside the email you got."
-msgstr ""
-
 #: lib/web/email/actor.ex:43
 #, elixir-autogen, elixir-format
 msgid "Your participation to %{event} has been cancelled!"
@@ -1415,63 +1393,63 @@ msgid "Your participation to %{event} on %{instance} has been cancelled!"
 msgstr "Your participation to event %{title} has been approved"
 
 #. File name template for exported list of participants. Should NOT contain spaces. Make sure the output is going to be something standardized that is acceptable as a file name on most systems.
-#: lib/service/export/participants/csv.ex:81
+#: lib/service/export/participants/csv.ex:97
 #: lib/service/export/participants/ods.ex:86
 #: lib/service/export/participants/pdf.ex:96
 #, elixir-autogen, elixir-format
 msgid "%{event}_participants"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:61
+#: lib/service/export/participants/common.ex:66
 #, elixir-autogen, elixir-format
 msgid "Participant message"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:61
+#: lib/service/export/participants/common.ex:63
 #, elixir-autogen, elixir-format
 msgid "Participant name"
 msgstr "Participant name"
 
-#: lib/service/export/participants/common.ex:61
+#: lib/service/export/participants/common.ex:64
 #, elixir-autogen, elixir-format
 msgid "Participant status"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:52
+#: lib/service/export/participants/common.ex:53
 #: lib/web/templates/email/admin/_role.html.heex:3
 #: lib/web/templates/email/admin/_role.text.eex:1
 #, elixir-autogen, elixir-format
 msgid "Administrator"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:55
+#: lib/service/export/participants/common.ex:56
 #, elixir-autogen, elixir-format
 msgid "Creator"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:49
+#: lib/service/export/participants/common.ex:50
 #: lib/web/templates/email/admin/_role.html.heex:5
 #: lib/web/templates/email/admin/_role.text.eex:1
 #, elixir-autogen, elixir-format
 msgid "Moderator"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:37
+#: lib/service/export/participants/common.ex:38
 #, elixir-autogen, elixir-format
 msgid "Not approved"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:40
+#: lib/service/export/participants/common.ex:41
 #, elixir-autogen, elixir-format
 msgid "Not confirmed"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:46
+#: lib/service/export/participants/common.ex:47
 #, elixir-autogen, elixir-format
 msgid "Participant"
 msgstr "Participant"
 
-#: lib/service/export/participants/common.ex:43
+#: lib/service/export/participants/common.ex:44
 #, elixir-autogen, elixir-format
 msgid "Rejected"
 msgstr ""
@@ -1496,7 +1474,7 @@ msgstr ""
 msgid "Participants for %{event}"
 msgstr "Participant"
 
-#: lib/service/export/participants/common.ex:88
+#: lib/service/export/participants/common.ex:95
 #, elixir-autogen, elixir-format
 msgid "Anonymous participant"
 msgstr ""
@@ -1615,7 +1593,7 @@ msgstr "Participant"
 msgid "Title: %{title}"
 msgstr ""
 
-#: lib/web/email/group.ex:46
+#: lib/web/email/group.ex:47
 #, elixir-autogen, elixir-format
 msgid "📅 Just scheduled by %{group}: %{event}"
 msgstr ""
@@ -2028,3 +2006,24 @@ msgstr ""
 #, elixir-autogen, elixir-format
 msgid "Until next time!"
 msgstr ""
+
+#: lib/web/templates/email/group_suspension.html.heex:67
+#: lib/web/templates/email/group_suspension.text.eex:5
+#, elixir-autogen, elixir-format, fuzzy
+msgid "As this group was located on this instance, all of its data has been irretrievably deleted."
+msgstr ""
+
+#: lib/web/templates/email/report.text.eex:11
+#, elixir-autogen, elixir-format, fuzzy
+msgid "Events"
+msgstr "Event"
+
+#: lib/web/templates/email/report.html.heex:115
+#, elixir-autogen, elixir-format, fuzzy
+msgid "Flagged events"
+msgstr ""
+
+#: lib/service/export/participants/common.ex:65
+#, elixir-autogen, elixir-format, fuzzy
+msgid "Participant registration date"
+msgstr ""
diff --git a/priv/gettext/en/LC_MESSAGES/errors.po b/priv/gettext/en/LC_MESSAGES/errors.po
index 0df870b30685b43cfc5b1224a0a27716aae93983..a20c4de869d74f4c2909a77d29b1e0b9321390cf 100644
--- a/priv/gettext/en/LC_MESSAGES/errors.po
+++ b/priv/gettext/en/LC_MESSAGES/errors.po
@@ -113,7 +113,7 @@ msgstr ""
 msgid "Current profile is not an administrator of the selected group"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:644
+#: lib/graphql/resolvers/user.ex:673
 #, elixir-autogen, elixir-format
 msgid "Error while saving user settings"
 msgstr ""
@@ -156,8 +156,8 @@ msgstr ""
 msgid "No user to validate with this email was found"
 msgstr ""
 
-#: lib/graphql/resolvers/person.ex:337
-#: lib/graphql/resolvers/user.ex:330
+#: lib/graphql/resolvers/person.ex:339
+#: lib/graphql/resolvers/user.ex:337
 #, elixir-autogen, elixir-format
 msgid "No user with this email was found"
 msgstr ""
@@ -165,12 +165,12 @@ msgstr ""
 #: lib/graphql/resolvers/feed_token.ex:28
 #: lib/graphql/resolvers/participant.ex:32
 #: lib/graphql/resolvers/participant.ex:210
-#: lib/graphql/resolvers/person.ex:245
-#: lib/graphql/resolvers/person.ex:376
-#: lib/graphql/resolvers/person.ex:412
-#: lib/graphql/resolvers/person.ex:419
-#: lib/graphql/resolvers/person.ex:448
-#: lib/graphql/resolvers/person.ex:463
+#: lib/graphql/resolvers/person.ex:247
+#: lib/graphql/resolvers/person.ex:378
+#: lib/graphql/resolvers/person.ex:414
+#: lib/graphql/resolvers/person.ex:421
+#: lib/graphql/resolvers/person.ex:450
+#: lib/graphql/resolvers/person.ex:465
 #, elixir-autogen, elixir-format
 msgid "Profile is not owned by authenticated user"
 msgstr ""
@@ -180,41 +180,42 @@ msgstr ""
 msgid "Registrations are not open"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:461
+#: lib/graphql/resolvers/user.ex:474
 #, elixir-autogen, elixir-format
 msgid "The current password is invalid"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:336
-#: lib/graphql/resolvers/user.ex:504
+#: lib/graphql/resolvers/admin.ex:334
+#: lib/graphql/resolvers/user.ex:527
 #, elixir-autogen, elixir-format
 msgid "The new email doesn't seem to be valid"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:339
-#: lib/graphql/resolvers/user.ex:507
+#: lib/graphql/resolvers/admin.ex:323
+#: lib/graphql/resolvers/user.ex:514
 #, elixir-autogen, elixir-format
 msgid "The new email must be different"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:464
+#: lib/graphql/resolvers/user.ex:477
 #, elixir-autogen, elixir-format
 msgid "The new password must be different"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:511
-#: lib/graphql/resolvers/user.ex:573
-#: lib/graphql/resolvers/user.ex:576
+#: lib/graphql/resolvers/user.ex:518
+#: lib/graphql/resolvers/user.ex:602
+#: lib/graphql/resolvers/user.ex:605
 #, elixir-autogen, elixir-format
 msgid "The password provided is invalid"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:468
+#: lib/graphql/resolvers/user.ex:361
+#: lib/graphql/resolvers/user.ex:481
 #, elixir-autogen, elixir-format
 msgid "The password you have chosen is too short. Please make sure your password contains at least 6 characters."
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:323
+#: lib/graphql/resolvers/user.ex:330
 #, elixir-autogen, elixir-format
 msgid "This user can't reset their password"
 msgstr ""
@@ -230,12 +231,12 @@ msgstr ""
 msgid "Unable to validate user"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:554
+#: lib/graphql/resolvers/user.ex:583
 #, elixir-autogen, elixir-format
 msgid "User already disabled"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:619
+#: lib/graphql/resolvers/user.ex:648
 #, elixir-autogen, elixir-format
 msgid "User requested is not logged-in"
 msgstr ""
@@ -260,12 +261,12 @@ msgstr ""
 msgid "You may not list groups unless moderator."
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:519
+#: lib/graphql/resolvers/user.ex:503
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to change your email"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:476
+#: lib/graphql/resolvers/user.ex:489
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to change your password"
 msgstr ""
@@ -275,7 +276,7 @@ msgstr ""
 msgid "You need to be logged-in to delete a group"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:581
+#: lib/graphql/resolvers/user.ex:610
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to delete your account"
 msgstr ""
@@ -300,12 +301,6 @@ msgstr ""
 msgid "You need to have an existing token to get a refresh token"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:306
-#: lib/graphql/resolvers/user.ex:333
-#, elixir-autogen, elixir-format
-msgid "You requested again a confirmation email too soon"
-msgstr ""
-
 #: lib/graphql/resolvers/user.ex:180
 #, elixir-autogen, elixir-format
 msgid "Your email is not on the allowlist"
@@ -358,17 +353,17 @@ msgstr ""
 msgid "Anonymous participation is not enabled"
 msgstr ""
 
-#: lib/graphql/resolvers/person.ex:219
+#: lib/graphql/resolvers/person.ex:221
 #, elixir-autogen, elixir-format
 msgid "Cannot remove the last administrator of a group"
 msgstr ""
 
-#: lib/graphql/resolvers/person.ex:216
+#: lib/graphql/resolvers/person.ex:218
 #, elixir-autogen, elixir-format
 msgid "Cannot remove the last identity of a user"
 msgstr ""
 
-#: lib/graphql/resolvers/comment.ex:147
+#: lib/graphql/resolvers/comment.ex:153
 #, elixir-autogen, elixir-format
 msgid "Comment is already deleted"
 msgstr ""
@@ -396,8 +391,8 @@ msgid "Event id not found"
 msgstr ""
 
 #: lib/graphql/error.ex:114
-#: lib/graphql/resolvers/event.ex:355
-#: lib/graphql/resolvers/event.ex:407
+#: lib/graphql/resolvers/event.ex:382
+#: lib/graphql/resolvers/event.ex:434
 #, elixir-autogen, elixir-format
 msgid "Event not found"
 msgstr ""
@@ -405,7 +400,7 @@ msgstr ""
 #: lib/graphql/resolvers/participant.ex:87
 #: lib/graphql/resolvers/participant.ex:128
 #: lib/graphql/resolvers/participant.ex:155
-#: lib/graphql/resolvers/participant.ex:336
+#: lib/graphql/resolvers/participant.ex:343
 #, elixir-autogen, elixir-format
 msgid "Event with this ID %{id} doesn't exist"
 msgstr ""
@@ -415,7 +410,7 @@ msgstr ""
 msgid "Internal Error"
 msgstr ""
 
-#: lib/graphql/resolvers/discussion.ex:219
+#: lib/graphql/resolvers/discussion.ex:222
 #, elixir-autogen, elixir-format
 msgid "No discussion with ID %{id}"
 msgstr ""
@@ -482,10 +477,10 @@ msgstr ""
 #: lib/graphql/resolvers/post.ex:133
 #: lib/graphql/resolvers/post.ex:175
 #: lib/graphql/resolvers/post.ex:209
-#: lib/graphql/resolvers/resource.ex:90
-#: lib/graphql/resolvers/resource.ex:135
-#: lib/graphql/resolvers/resource.ex:168
-#: lib/graphql/resolvers/resource.ex:202
+#: lib/graphql/resolvers/resource.ex:92
+#: lib/graphql/resolvers/resource.ex:137
+#: lib/graphql/resolvers/resource.ex:170
+#: lib/graphql/resolvers/resource.ex:204
 #: lib/graphql/resolvers/todos.ex:58
 #: lib/graphql/resolvers/todos.ex:83
 #: lib/graphql/resolvers/todos.ex:110
@@ -497,7 +492,7 @@ msgid "Profile is not member of group"
 msgstr ""
 
 #: lib/graphql/resolvers/actor.ex:67
-#: lib/graphql/resolvers/person.ex:242
+#: lib/graphql/resolvers/person.ex:244
 #, elixir-autogen, elixir-format
 msgid "Profile not found"
 msgstr ""
@@ -507,8 +502,8 @@ msgstr ""
 msgid "Report not found"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:172
-#: lib/graphql/resolvers/resource.ex:199
+#: lib/graphql/resolvers/resource.ex:174
+#: lib/graphql/resolvers/resource.ex:201
 #, elixir-autogen, elixir-format
 msgid "Resource doesn't exist"
 msgstr ""
@@ -518,7 +513,7 @@ msgstr ""
 msgid "The event has already reached its maximum capacity"
 msgstr ""
 
-#: lib/graphql/resolvers/participant.ex:282
+#: lib/graphql/resolvers/participant.ex:289
 #, elixir-autogen, elixir-format
 msgid "This token is invalid"
 msgstr ""
@@ -552,7 +547,7 @@ msgstr ""
 msgid "User not found"
 msgstr ""
 
-#: lib/graphql/resolvers/person.ex:333
+#: lib/graphql/resolvers/person.ex:335
 #, elixir-autogen, elixir-format
 msgid "You already have a profile for this user"
 msgstr ""
@@ -574,7 +569,7 @@ msgstr ""
 msgid "You are not a moderator or admin for this group"
 msgstr ""
 
-#: lib/graphql/resolvers/comment.ex:80
+#: lib/graphql/resolvers/comment.ex:74
 #, elixir-autogen, elixir-format
 msgid "You are not allowed to create a comment if not connected"
 msgstr ""
@@ -584,7 +579,7 @@ msgstr ""
 msgid "You are not allowed to create a feed token if not connected"
 msgstr ""
 
-#: lib/graphql/resolvers/comment.ex:155
+#: lib/graphql/resolvers/comment.ex:161
 #, elixir-autogen, elixir-format
 msgid "You are not allowed to delete a comment if not connected"
 msgstr ""
@@ -594,7 +589,7 @@ msgstr ""
 msgid "You are not allowed to delete a feed token if not connected"
 msgstr ""
 
-#: lib/graphql/resolvers/comment.ex:114
+#: lib/graphql/resolvers/comment.ex:120
 #, elixir-autogen, elixir-format
 msgid "You are not allowed to update a comment if not connected"
 msgstr ""
@@ -610,12 +605,12 @@ msgstr ""
 msgid "You can't set yourself to a lower member role for this group because you are the only administrator"
 msgstr ""
 
-#: lib/graphql/resolvers/comment.ex:143
+#: lib/graphql/resolvers/comment.ex:149
 #, elixir-autogen, elixir-format
 msgid "You cannot delete this comment"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:403
+#: lib/graphql/resolvers/event.ex:430
 #, elixir-autogen, elixir-format
 msgid "You cannot delete this event"
 msgstr ""
@@ -650,17 +645,17 @@ msgstr ""
 msgid "You need to be logged-in and a moderator to view a report"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:252
+#: lib/graphql/resolvers/admin.ex:258
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in and an administrator to access admin settings"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:236
+#: lib/graphql/resolvers/admin.ex:242
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in and an administrator to access dashboard statistics"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:278
+#: lib/graphql/resolvers/admin.ex:283
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in and an administrator to save admin settings"
 msgstr ""
@@ -670,12 +665,12 @@ msgstr ""
 msgid "You need to be logged-in to access discussions"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:96
+#: lib/graphql/resolvers/resource.ex:98
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to access resources"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:313
+#: lib/graphql/resolvers/event.ex:321
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to create events"
 msgstr ""
@@ -690,12 +685,12 @@ msgstr ""
 msgid "You need to be logged-in to create reports"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:140
+#: lib/graphql/resolvers/resource.ex:142
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to create resources"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:412
+#: lib/graphql/resolvers/event.ex:439
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to delete an event"
 msgstr ""
@@ -705,7 +700,7 @@ msgstr ""
 msgid "You need to be logged-in to delete posts"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:207
+#: lib/graphql/resolvers/resource.ex:209
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to delete resources"
 msgstr ""
@@ -720,7 +715,7 @@ msgstr ""
 msgid "You need to be logged-in to leave an event"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:369
+#: lib/graphql/resolvers/event.ex:396
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to update an event"
 msgstr ""
@@ -730,17 +725,17 @@ msgstr ""
 msgid "You need to be logged-in to update posts"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:177
+#: lib/graphql/resolvers/resource.ex:179
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to update resources"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:236
+#: lib/graphql/resolvers/resource.ex:233
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to view a resource preview"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:132
+#: lib/graphql/resolvers/resource.ex:134
 #, elixir-autogen, elixir-format
 msgid "Parent resource doesn't belong to this group"
 msgstr ""
@@ -826,12 +821,12 @@ msgstr ""
 msgid "Profile is not administrator for the group"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:358
+#: lib/graphql/resolvers/event.ex:385
 #, elixir-autogen, elixir-format
 msgid "You can't edit this event."
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:361
+#: lib/graphql/resolvers/event.ex:388
 #, elixir-autogen, elixir-format
 msgid "You can't attribute this event to this profile."
 msgstr ""
@@ -851,7 +846,7 @@ msgstr ""
 msgid "You don't have the right to remove this member."
 msgstr ""
 
-#: lib/mobilizon/actors/actor.ex:377
+#: lib/mobilizon/actors/actor.ex:378
 #, elixir-autogen, elixir-format
 msgid "This username is already taken."
 msgstr ""
@@ -861,7 +856,7 @@ msgstr ""
 msgid "You must provide either an ID or a slug to access a discussion"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:275
+#: lib/graphql/resolvers/event.ex:276
 #, elixir-autogen, elixir-format
 msgid "Organizer profile is not owned by the user"
 msgstr ""
@@ -873,41 +868,41 @@ msgstr ""
 
 #: lib/graphql/resolvers/group.ex:181
 #: lib/graphql/resolvers/group.ex:223
-#: lib/graphql/resolvers/person.ex:157
-#: lib/graphql/resolvers/person.ex:191
-#: lib/graphql/resolvers/person.ex:324
+#: lib/graphql/resolvers/person.ex:159
+#: lib/graphql/resolvers/person.ex:193
+#: lib/graphql/resolvers/person.ex:326
 #, elixir-autogen, elixir-format
 msgid "The provided picture is too heavy"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:129
+#: lib/graphql/resolvers/resource.ex:131
 #, elixir-autogen, elixir-format
 msgid "Error while creating resource"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:537
+#: lib/graphql/resolvers/user.ex:566
 #, elixir-autogen, elixir-format
 msgid "Invalid activation token"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:226
+#: lib/graphql/resolvers/resource.ex:228
 #, elixir-autogen, elixir-format
 msgid "Unable to fetch resource details from this URL."
 msgstr ""
 
 #: lib/graphql/resolvers/event.ex:165
 #: lib/graphql/resolvers/participant.ex:253
-#: lib/graphql/resolvers/participant.ex:328
+#: lib/graphql/resolvers/participant.ex:335
 #, elixir-autogen, elixir-format
 msgid "Provided profile doesn't have moderator permissions on this event"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:286
+#: lib/graphql/resolvers/event.ex:294
 #, elixir-autogen, elixir-format
 msgid "Organizer profile doesn't have permission to create an event on behalf of this group"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:349
+#: lib/graphql/resolvers/event.ex:369
 #, elixir-autogen, elixir-format
 msgid "This profile doesn't have permission to update an event on behalf of this group"
 msgstr ""
@@ -917,7 +912,7 @@ msgstr ""
 msgid "Your e-mail has been denied registration or uses a disallowed e-mail provider"
 msgstr ""
 
-#: lib/graphql/resolvers/comment.ex:150
+#: lib/graphql/resolvers/comment.ex:156
 #, elixir-autogen, elixir-format
 msgid "Comment not found"
 msgstr ""
@@ -927,12 +922,12 @@ msgstr ""
 msgid "Error while creating a discussion"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:658
+#: lib/graphql/resolvers/user.ex:687
 #, elixir-autogen, elixir-format
 msgid "Error while updating locale"
 msgstr ""
 
-#: lib/graphql/resolvers/person.ex:327
+#: lib/graphql/resolvers/person.ex:329
 #, elixir-autogen, elixir-format
 msgid "Error while uploading pictures"
 msgstr ""
@@ -947,13 +942,13 @@ msgstr ""
 msgid "Failed to update the group"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:333
-#: lib/graphql/resolvers/user.ex:501
+#: lib/graphql/resolvers/admin.ex:357
+#: lib/graphql/resolvers/user.ex:547
 #, elixir-autogen, elixir-format
 msgid "Failed to update user email"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:533
+#: lib/graphql/resolvers/user.ex:562
 #, elixir-autogen, elixir-format
 msgid "Failed to validate user email"
 msgstr ""
@@ -963,37 +958,37 @@ msgstr ""
 msgid "The anonymous actor ID is invalid"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:165
+#: lib/graphql/resolvers/resource.ex:167
 #, elixir-autogen, elixir-format
 msgid "Unknown error while updating resource"
 msgstr ""
 
-#: lib/graphql/resolvers/comment.ex:105
+#: lib/graphql/resolvers/comment.ex:111
 #, elixir-autogen, elixir-format
 msgid "You are not the comment creator"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:458
+#: lib/graphql/resolvers/user.ex:471
 #, elixir-autogen, elixir-format
 msgid "You cannot change your password."
 msgstr ""
 
-#: lib/graphql/resolvers/participant.ex:321
+#: lib/graphql/resolvers/participant.ex:328
 #, elixir-autogen, elixir-format
 msgid "Format not supported"
 msgstr ""
 
-#: lib/graphql/resolvers/participant.ex:305
+#: lib/graphql/resolvers/participant.ex:312
 #, elixir-autogen, elixir-format
 msgid "A dependency needed to export to %{format} is not installed"
 msgstr ""
 
-#: lib/graphql/resolvers/participant.ex:313
+#: lib/graphql/resolvers/participant.ex:320
 #, elixir-autogen, elixir-format
 msgid "An error occured while saving export"
 msgstr ""
 
-#: lib/web/controllers/export_controller.ex:30
+#: lib/web/controllers/export_controller.ex:32
 #, elixir-autogen, elixir-format
 msgid "Export to format %{format} is not enabled on this instance"
 msgstr ""
@@ -1003,17 +998,17 @@ msgstr ""
 msgid "Only admins can create groups"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:279
+#: lib/graphql/resolvers/event.ex:280
 #, elixir-autogen, elixir-format
 msgid "Only groups can create events"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:305
+#: lib/graphql/resolvers/event.ex:313
 #, elixir-autogen, elixir-format
 msgid "Unknown error while creating event"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:514
+#: lib/graphql/resolvers/user.ex:498
 #, elixir-autogen, elixir-format
 msgid "User cannot change email"
 msgstr ""
@@ -1028,12 +1023,12 @@ msgstr ""
 msgid "Follow not found"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:379
+#: lib/graphql/resolvers/user.ex:392
 #, elixir-autogen, elixir-format
 msgid "Profile with username %{username} not found"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:374
+#: lib/graphql/resolvers/user.ex:387
 #, elixir-autogen, elixir-format
 msgid "This profile does not belong to you"
 msgstr ""
@@ -1078,22 +1073,22 @@ msgstr ""
 msgid "Your email seems to be using an invalid format"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:382
+#: lib/graphql/resolvers/admin.ex:399
 #, elixir-autogen, elixir-format
 msgid "Can't confirm an already confirmed user"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:386
+#: lib/graphql/resolvers/admin.ex:403
 #, elixir-autogen, elixir-format
 msgid "Deconfirming users is not supported"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:358
+#: lib/graphql/resolvers/admin.ex:375
 #, elixir-autogen, elixir-format, fuzzy
 msgid "The new role must be different"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:309
+#: lib/graphql/resolvers/admin.ex:314
 #, elixir-autogen, elixir-format, fuzzy
 msgid "You need to be logged-in and an administrator to edit an user's details"
 msgstr ""
@@ -1103,28 +1098,28 @@ msgstr ""
 msgid "A profile or group with that name already exists"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:519
+#: lib/graphql/resolvers/admin.ex:542
 #, elixir-autogen, elixir-format
 msgid "Unable to find an instance to follow at this address"
 msgstr ""
 
-#: lib/mobilizon/actors/actor.ex:396
+#: lib/mobilizon/actors/actor.ex:397
 #, elixir-autogen, elixir-format
 msgid "Username must only contain alphanumeric lowercased characters and underscores."
 msgstr ""
 
 #: lib/graphql/resolvers/user.ex:303
-#: lib/graphql/resolvers/user.ex:326
+#: lib/graphql/resolvers/user.ex:333
 #, elixir-autogen, elixir-format, fuzzy
 msgid "This email doesn't seem to be valid"
 msgstr ""
 
-#: lib/graphql/resolvers/comment.ex:65
+#: lib/graphql/resolvers/comment.ex:59
 #, elixir-autogen, elixir-format
 msgid "This comment was detected as spam."
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:293
+#: lib/graphql/resolvers/event.ex:301
 #, elixir-autogen, elixir-format
 msgid "This event was detected as spam."
 msgstr ""
@@ -1145,7 +1140,7 @@ msgstr ""
 msgid "You need to be a moderator or an administrator to create a note on a report"
 msgstr ""
 
-#: lib/graphql/resolvers/person.ex:330
+#: lib/graphql/resolvers/person.ex:332
 #, elixir-autogen, elixir-format
 msgid "Your profile was detected as spam."
 msgstr ""
@@ -1155,7 +1150,7 @@ msgstr ""
 msgid "Your registration has been detected as spam and cannot be processed."
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:86
+#: lib/web/controllers/application_controller.ex:88
 #, elixir-autogen, elixir-format
 msgid "All of name, scope and redirect_uri parameters are required to create an application"
 msgstr ""
@@ -1170,171 +1165,227 @@ msgstr ""
 msgid "Application token not found"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:89
+#: lib/graphql/resolvers/application.ex:90
 #, elixir-autogen, elixir-format, fuzzy
 msgid "Error while revoking token"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:59
+#: lib/web/controllers/application_controller.ex:61
 #, elixir-autogen, elixir-format
 msgid "Impossible to create application."
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:356
+#: lib/web/controllers/application_controller.ex:358
 #, elixir-autogen, elixir-format
 msgid "Incorrect parameters sent. You need to provide at least the grant_type and client_id parameters, depending on the grant type being used."
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:329
+#: lib/web/controllers/application_controller.ex:331
 #, elixir-autogen, elixir-format
 msgid "Invalid client credentials provided"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:337
+#: lib/web/controllers/application_controller.ex:339
 #, elixir-autogen, elixir-format
 msgid "Invalid refresh token provided"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:170
-#: lib/web/controllers/application_controller.ex:401
+#: lib/web/controllers/application_controller.ex:172
+#: lib/web/controllers/application_controller.ex:403
 #, elixir-autogen, elixir-format
 msgid "No application was found with this client_id"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:37
+#: lib/graphql/resolvers/application.ex:38
 #, elixir-autogen, elixir-format
 msgid "No application with this client_id was found"
 msgstr ""
 
-#: lib/graphql/authorization.ex:80
+#: lib/graphql/authorization.ex:81
 #, elixir-autogen, elixir-format
 msgid "Not authorized to access field %{field}"
 msgstr ""
 
-#: lib/graphql/authorization.ex:70
-#: lib/graphql/authorization.ex:75
+#: lib/graphql/authorization.ex:71
+#: lib/graphql/authorization.ex:76
 #, elixir-autogen, elixir-format
 msgid "Not authorized to access object %{object}"
 msgstr ""
 
-#: lib/graphql/authorization.ex:63
+#: lib/graphql/authorization.ex:64
 #, elixir-autogen, elixir-format
 msgid "Not authorized to access this %{object_type}"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:279
+#: lib/web/controllers/application_controller.ex:281
 #, elixir-autogen, elixir-format
 msgid "Please slow down the rate of your requests"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:267
+#: lib/web/controllers/application_controller.ex:269
 #, elixir-autogen, elixir-format
 msgid "The authorization request is still pending"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:249
+#: lib/web/controllers/application_controller.ex:251
 #, elixir-autogen, elixir-format
 msgid "The client_id provided or the device_code associated is invalid"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:133
+#: lib/graphql/resolvers/application.ex:139
 #, elixir-autogen, elixir-format
 msgid "The device user code was not provided before approving the application"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:304
+#: lib/web/controllers/application_controller.ex:306
 #, elixir-autogen, elixir-format
 msgid "The given device_code has expired"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:44
+#: lib/graphql/resolvers/application.ex:45
 #, elixir-autogen, elixir-format
 msgid "The given redirect_uri is not in the list of allowed redirect URIs"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:158
+#: lib/web/controllers/application_controller.ex:160
 #, elixir-autogen, elixir-format
 msgid "The given scope is not in the list of the app declared scopes"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:109
-#: lib/graphql/resolvers/application.ex:146
+#: lib/graphql/resolvers/application.ex:112
+#: lib/graphql/resolvers/application.ex:154
 #, elixir-autogen, elixir-format
 msgid "The given user code has expired"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:112
-#: lib/graphql/resolvers/application.ex:140
+#: lib/graphql/resolvers/application.ex:118
+#: lib/graphql/resolvers/application.ex:146
 #, elixir-autogen, elixir-format
 msgid "The given user code is invalid"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:411
+#: lib/web/controllers/application_controller.ex:413
 #, elixir-autogen, elixir-format
 msgid "The provided client_id does not match the provided code"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:414
+#: lib/web/controllers/application_controller.ex:416
 #, elixir-autogen, elixir-format
 msgid "The provided client_secret is invalid"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:407
+#: lib/web/controllers/application_controller.ex:409
 #, elixir-autogen, elixir-format
 msgid "The provided code is invalid or expired"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:418
+#: lib/web/controllers/application_controller.ex:420
 #, elixir-autogen, elixir-format
 msgid "The provided scope is invalid or not included in the app declared scopes"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:45
+#: lib/web/controllers/application_controller.ex:47
 #, elixir-autogen, elixir-format
 msgid "The scope parameter is not a space separated list of valid scopes"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:292
+#: lib/web/controllers/application_controller.ex:294
 #, elixir-autogen, elixir-format
 msgid "The user rejected the requested authorization"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:404
+#: lib/web/controllers/application_controller.ex:406
 #, elixir-autogen, elixir-format
 msgid "This redirect URI is not allowed"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:381
+#: lib/web/controllers/application_controller.ex:383
 #, elixir-autogen, elixir-format, fuzzy
 msgid "Token not found"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:72
+#: lib/web/controllers/application_controller.ex:74
 #, elixir-autogen, elixir-format
 msgid "Too many requests"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:184
+#: lib/web/controllers/application_controller.ex:186
 #, elixir-autogen, elixir-format
 msgid "Unable to produce device code"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:373
+#: lib/web/controllers/application_controller.ex:375
 #, elixir-autogen, elixir-format
 msgid "Unable to revoke token"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:198
+#: lib/web/controllers/application_controller.ex:200
 #, elixir-autogen, elixir-format
 msgid "You need to pass both client_id and scope as parameters to obtain a device code"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:136
+#: lib/web/controllers/application_controller.ex:138
 #, elixir-autogen, elixir-format
 msgid "You need to provide a valid redirect_uri to autorize an application"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:126
+#: lib/web/controllers/application_controller.ex:128
 #, elixir-autogen, elixir-format
 msgid "You need to specify client_id, redirect_uri, scope and state to autorize an application"
 msgstr ""
+
+#: lib/graphql/resolvers/user.ex:306
+#, elixir-autogen, elixir-format
+msgid "Couldn't send an email. Internal error."
+msgstr ""
+
+#: lib/graphql/resolvers/participant.ex:286
+#, elixir-autogen, elixir-format
+msgid "Participation is already confirmed"
+msgstr ""
+
+#: lib/graphql/resolvers/participant.ex:283
+#, elixir-autogen, elixir-format
+msgid "Participation is confirmed but not approved yet by an organizer"
+msgstr ""
+
+#: lib/graphql/resolvers/event.ex:287
+#: lib/graphql/resolvers/event.ex:376
+#, elixir-autogen, elixir-format
+msgid "Providing external registration is not allowed"
+msgstr ""
+
+#: lib/graphql/resolvers/push_subscription.ex:48
+#, elixir-autogen, elixir-format
+msgid "The same push subscription has already been registered"
+msgstr ""
+
+#: lib/graphql/resolvers/admin.ex:536
+#, elixir-autogen, elixir-format
+msgid "This instance is pending follow approval"
+msgstr ""
+
+#: lib/graphql/schema/custom/timezone.ex:23
+#, elixir-autogen, elixir-format
+msgid "Timezone ID %{timezone} is invalid"
+msgstr ""
+
+#: lib/graphql/resolvers/admin.ex:539
+#, elixir-autogen, elixir-format, fuzzy
+msgid "You are already following this instance"
+msgstr ""
+
+#: lib/graphql/resolvers/user.ex:310
+#, elixir-autogen, elixir-format, fuzzy
+msgid "You requested again a confirmation email too soon. Please try again in a few minutes"
+msgstr ""
+
+#: lib/graphql/resolvers/user.ex:341
+#, elixir-autogen, elixir-format
+msgid "You requested again a password reset email too soon. Please try again in a few minutes"
+msgstr ""
+
+#: lib/graphql/resolvers/user.ex:368
+#, elixir-autogen, elixir-format
+msgid "The token you provided is invalid. Make sure that the URL is exactly the one provided inside the email you got."
+msgstr ""
diff --git a/priv/gettext/errors.pot b/priv/gettext/errors.pot
index 5fcc77c0b987b0993def3ee6abd5f795cc38a96e..8d301fa9e4d13d7e96c8e9524c5dddb3f443e9a2 100644
--- a/priv/gettext/errors.pot
+++ b/priv/gettext/errors.pot
@@ -110,7 +110,7 @@ msgstr ""
 msgid "Current profile is not an administrator of the selected group"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:671
+#: lib/graphql/resolvers/user.ex:673
 #, elixir-autogen, elixir-format
 msgid "Error while saving user settings"
 msgstr ""
@@ -177,36 +177,37 @@ msgstr ""
 msgid "Registrations are not open"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:472
+#: lib/graphql/resolvers/user.ex:474
 #, elixir-autogen, elixir-format
 msgid "The current password is invalid"
 msgstr ""
 
 #: lib/graphql/resolvers/admin.ex:334
-#: lib/graphql/resolvers/user.ex:525
+#: lib/graphql/resolvers/user.ex:527
 #, elixir-autogen, elixir-format
 msgid "The new email doesn't seem to be valid"
 msgstr ""
 
 #: lib/graphql/resolvers/admin.ex:323
-#: lib/graphql/resolvers/user.ex:512
+#: lib/graphql/resolvers/user.ex:514
 #, elixir-autogen, elixir-format
 msgid "The new email must be different"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:475
+#: lib/graphql/resolvers/user.ex:477
 #, elixir-autogen, elixir-format
 msgid "The new password must be different"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:516
-#: lib/graphql/resolvers/user.ex:600
-#: lib/graphql/resolvers/user.ex:603
+#: lib/graphql/resolvers/user.ex:518
+#: lib/graphql/resolvers/user.ex:602
+#: lib/graphql/resolvers/user.ex:605
 #, elixir-autogen, elixir-format
 msgid "The password provided is invalid"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:479
+#: lib/graphql/resolvers/user.ex:361
+#: lib/graphql/resolvers/user.ex:481
 #, elixir-autogen, elixir-format
 msgid "The password you have chosen is too short. Please make sure your password contains at least 6 characters."
 msgstr ""
@@ -227,12 +228,12 @@ msgstr ""
 msgid "Unable to validate user"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:581
+#: lib/graphql/resolvers/user.ex:583
 #, elixir-autogen, elixir-format
 msgid "User already disabled"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:646
+#: lib/graphql/resolvers/user.ex:648
 #, elixir-autogen, elixir-format
 msgid "User requested is not logged-in"
 msgstr ""
@@ -257,12 +258,12 @@ msgstr ""
 msgid "You may not list groups unless moderator."
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:501
+#: lib/graphql/resolvers/user.ex:503
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to change your email"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:487
+#: lib/graphql/resolvers/user.ex:489
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to change your password"
 msgstr ""
@@ -272,7 +273,7 @@ msgstr ""
 msgid "You need to be logged-in to delete a group"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:608
+#: lib/graphql/resolvers/user.ex:610
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to delete your account"
 msgstr ""
@@ -876,7 +877,7 @@ msgstr ""
 msgid "Error while creating resource"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:564
+#: lib/graphql/resolvers/user.ex:566
 #, elixir-autogen, elixir-format
 msgid "Invalid activation token"
 msgstr ""
@@ -918,7 +919,7 @@ msgstr ""
 msgid "Error while creating a discussion"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:685
+#: lib/graphql/resolvers/user.ex:687
 #, elixir-autogen, elixir-format
 msgid "Error while updating locale"
 msgstr ""
@@ -939,12 +940,12 @@ msgid "Failed to update the group"
 msgstr ""
 
 #: lib/graphql/resolvers/admin.ex:357
-#: lib/graphql/resolvers/user.ex:545
+#: lib/graphql/resolvers/user.ex:547
 #, elixir-autogen, elixir-format
 msgid "Failed to update user email"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:560
+#: lib/graphql/resolvers/user.ex:562
 #, elixir-autogen, elixir-format
 msgid "Failed to validate user email"
 msgstr ""
@@ -964,7 +965,7 @@ msgstr ""
 msgid "You are not the comment creator"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:469
+#: lib/graphql/resolvers/user.ex:471
 #, elixir-autogen, elixir-format
 msgid "You cannot change your password."
 msgstr ""
@@ -1004,7 +1005,7 @@ msgstr ""
 msgid "Unknown error while creating event"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:496
+#: lib/graphql/resolvers/user.ex:498
 #, elixir-autogen, elixir-format
 msgid "User cannot change email"
 msgstr ""
@@ -1019,12 +1020,12 @@ msgstr ""
 msgid "Follow not found"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:390
+#: lib/graphql/resolvers/user.ex:392
 #, elixir-autogen, elixir-format
 msgid "Profile with username %{username} not found"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:385
+#: lib/graphql/resolvers/user.ex:387
 #, elixir-autogen, elixir-format
 msgid "This profile does not belong to you"
 msgstr ""
@@ -1380,3 +1381,8 @@ msgstr ""
 #, elixir-autogen, elixir-format
 msgid "You requested again a password reset email too soon. Please try again in a few minutes"
 msgstr ""
+
+#: lib/graphql/resolvers/user.ex:368
+#, elixir-autogen, elixir-format
+msgid "The token you provided is invalid. Make sure that the URL is exactly the one provided inside the email you got."
+msgstr ""
diff --git a/priv/gettext/es/LC_MESSAGES/activity.po b/priv/gettext/es/LC_MESSAGES/activity.po
index 6d1fd076e0401ab800aa6a7f3940de1d24d2aedb..2fc1906ee1b50d9a4613ed60b26de04cf277c5e3 100644
--- a/priv/gettext/es/LC_MESSAGES/activity.po
+++ b/priv/gettext/es/LC_MESSAGES/activity.po
@@ -469,3 +469,15 @@ msgstr "%{profile} respondió a la discusión %{discussion} del grupo %{group}."
 #, elixir-autogen, elixir-format
 msgid "%{profile} approved the member %{member}."
 msgstr "%{profile} aprobó al miembro %{member}."
+
+#: lib/service/activity/renderer/event.ex:74
+#: lib/web/templates/email/activity/_event_activity_item.html.heex:55
+#: lib/web/templates/email/activity/_event_activity_item.text.eex:31
+#, elixir-autogen, elixir-format
+msgid "%{profile} joined your event %{event}."
+msgstr ""
+
+#: lib/web/views/email_view.ex:45
+#, elixir-autogen, elixir-format
+msgid "An anonymous profile"
+msgstr ""
diff --git a/priv/gettext/es/LC_MESSAGES/default.po b/priv/gettext/es/LC_MESSAGES/default.po
index 79c3b5a8fcabd78a017f3f4d029e9ccc48170772..1a2abb2b3cc5d8c1febaee85dd75a73fca8ada99 100644
--- a/priv/gettext/es/LC_MESSAGES/default.po
+++ b/priv/gettext/es/LC_MESSAGES/default.po
@@ -21,7 +21,7 @@ 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.heex:120
+#: lib/web/templates/email/report.html.heex:121
 #, elixir-autogen, elixir-format
 msgid "%{title} by %{creator}"
 msgstr "%{title} por %{creator}"
@@ -37,23 +37,17 @@ msgstr "Activar mi cuenta"
 msgid "Ask the community on Framacolibri"
 msgstr "Preguntar a la comunidad en framacolibri"
 
-#: lib/web/templates/email/report.text.eex:15
+#: lib/web/templates/email/report.text.eex:17
 #, elixir-autogen, elixir-format
 msgid "Comments"
 msgstr "Comentarios"
 
-#: lib/web/templates/email/report.html.heex:115
-#: lib/web/templates/email/report.text.eex:11
-#, elixir-autogen, elixir-format
-msgid "Event"
-msgstr "Evento"
-
 #: lib/web/email/user.ex:49
 #, elixir-autogen, elixir-format
 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
+#: lib/web/templates/email/report.text.eex:23
 #, elixir-autogen, elixir-format
 msgid "Reason"
 msgstr "Razón"
@@ -354,12 +348,12 @@ msgctxt "terms"
 msgid "What information do we collect?"
 msgstr "¿Qué información recopilamos?"
 
-#: lib/web/email/user.ex:182
+#: lib/web/email/user.ex:188
 #, elixir-autogen, elixir-format
 msgid "Mobilizon on %{instance}: confirm your email address"
 msgstr "Mobilizon en %{instance}: confirma tu dirección de correo electrónico"
 
-#: lib/web/email/user.ex:159
+#: lib/web/email/user.ex:165
 #, elixir-autogen, elixir-format
 msgid "Mobilizon on %{instance}: email changed"
 msgstr "Mobilizon en %{instance}: correo electrónico modificado"
@@ -993,7 +987,7 @@ msgstr "Final"
 msgid "Event update!"
 msgstr "¡Evento actualizado!"
 
-#: lib/web/templates/email/report.html.heex:155
+#: lib/web/templates/email/report.html.heex:158
 #, elixir-autogen, elixir-format
 msgid "Flagged comments"
 msgstr "Comentarios marcados"
@@ -1090,7 +1084,7 @@ msgstr "¡Ya casi estas!"
 msgid "New email confirmation"
 msgstr "Nueva confirmación de correo electrónico"
 
-#: lib/web/templates/email/report.html.heex:191
+#: lib/web/templates/email/report.html.heex:194
 #, elixir-autogen, elixir-format
 msgid "Reasons for report"
 msgstr "Razones para informar"
@@ -1148,12 +1142,12 @@ msgstr ""
 msgid "Verify your email address"
 msgstr "Verifica tu dirección de correo electrónico"
 
-#: lib/web/templates/email/report.html.heex:232
+#: lib/web/templates/email/report.html.heex:235
 #, elixir-autogen, elixir-format
 msgid "View report"
 msgstr "Ver el informe"
 
-#: lib/web/templates/email/report.text.eex:24
+#: lib/web/templates/email/report.text.eex:26
 #, elixir-autogen, elixir-format
 msgid "View report:"
 msgstr "Ver el informe:"
@@ -1267,14 +1261,6 @@ msgstr ""
 "Como este grupo estaba ubicado en otra instancia, seguirá funcionando para "
 "otras instancias además de esta."
 
-#: lib/web/templates/email/group_suspension.html.heex:67
-#: lib/web/templates/email/group_suspension.text.eex:5
-#, elixir-autogen, elixir-format
-msgid "As this group was located on this instance, all of it's data has been irretrievably deleted."
-msgstr ""
-"Como este grupo estaba ubicado en esta instancia, todos sus datos se han "
-"eliminado de forma irremediable."
-
 #: lib/web/templates/email/group_suspension.html.heex:18
 #: lib/web/templates/email/group_suspension.text.eex:1
 #, elixir-autogen, elixir-format
@@ -1288,7 +1274,7 @@ msgstr ""
 "El equipo de moderación de su instancia ha decidido suspender a "
 "%{group_name} (%{group_address}). Ya no eres miembro de este grupo."
 
-#: lib/web/email/group.ex:107
+#: lib/web/email/group.ex:108
 #, elixir-autogen, elixir-format
 msgid "The group %{group} has been suspended on %{instance}"
 msgstr "El grupo %{group} ha sido suspendido en %{instance}"
@@ -1661,20 +1647,6 @@ msgstr ""
 msgid "Public feed for %{instance}"
 msgstr "Flujo público para %{instance}"
 
-#: lib/graphql/resolvers/user.ex:350
-#, elixir-autogen, elixir-format
-msgid "The password you have choosen is too short. Please make sure your password contains at least 6 charaters."
-msgstr ""
-"La contraseña que ha elegido es demasiado corta. Asegúrese de que su "
-"contraseña contenga al menos 6 caracteres."
-
-#: lib/graphql/resolvers/user.ex:356
-#, elixir-autogen, elixir-format
-msgid "The token you provided is invalid. Make sure that the URL is exactly the one provided inside the email you got."
-msgstr ""
-"El token que proporcionaste no es válido. Asegúrese de que la URL sea "
-"exactamente la que se proporciona dentro del correo electrónico que recibió."
-
 #: lib/web/email/actor.ex:43
 #, elixir-autogen, elixir-format
 msgid "Your participation to %{event} has been cancelled!"
@@ -1703,63 +1675,63 @@ msgid "Your participation to %{event} on %{instance} has been cancelled!"
 msgstr "¡Tu participación en %{event} en %{instance} ha sido cancelada!"
 
 #. File name template for exported list of participants. Should NOT contain spaces. Make sure the output is going to be something standardized that is acceptable as a file name on most systems.
-#: lib/service/export/participants/csv.ex:81
+#: lib/service/export/participants/csv.ex:97
 #: lib/service/export/participants/ods.ex:86
 #: lib/service/export/participants/pdf.ex:96
 #, elixir-autogen, elixir-format
 msgid "%{event}_participants"
 msgstr "%{event}_participantes"
 
-#: lib/service/export/participants/common.ex:61
+#: lib/service/export/participants/common.ex:66
 #, elixir-autogen, elixir-format
 msgid "Participant message"
 msgstr "Mensaje del participante"
 
-#: lib/service/export/participants/common.ex:61
+#: lib/service/export/participants/common.ex:63
 #, elixir-autogen, elixir-format
 msgid "Participant name"
 msgstr "Participación aprobada"
 
-#: lib/service/export/participants/common.ex:61
+#: lib/service/export/participants/common.ex:64
 #, elixir-autogen, elixir-format
 msgid "Participant status"
 msgstr "Estado de participante"
 
-#: lib/service/export/participants/common.ex:52
+#: lib/service/export/participants/common.ex:53
 #: lib/web/templates/email/admin/_role.html.heex:3
 #: lib/web/templates/email/admin/_role.text.eex:1
 #, elixir-autogen, elixir-format
 msgid "Administrator"
 msgstr "Administrador"
 
-#: lib/service/export/participants/common.ex:55
+#: lib/service/export/participants/common.ex:56
 #, elixir-autogen, elixir-format
 msgid "Creator"
 msgstr "Creador"
 
-#: lib/service/export/participants/common.ex:49
+#: lib/service/export/participants/common.ex:50
 #: lib/web/templates/email/admin/_role.html.heex:5
 #: lib/web/templates/email/admin/_role.text.eex:1
 #, elixir-autogen, elixir-format
 msgid "Moderator"
 msgstr "Moderador"
 
-#: lib/service/export/participants/common.ex:37
+#: lib/service/export/participants/common.ex:38
 #, elixir-autogen, elixir-format
 msgid "Not approved"
 msgstr "Sin aprobar"
 
-#: lib/service/export/participants/common.ex:40
+#: lib/service/export/participants/common.ex:41
 #, elixir-autogen, elixir-format
 msgid "Not confirmed"
 msgstr "Sin confirmar"
 
-#: lib/service/export/participants/common.ex:46
+#: lib/service/export/participants/common.ex:47
 #, elixir-autogen, elixir-format
 msgid "Participant"
 msgstr "Participante"
 
-#: lib/service/export/participants/common.ex:43
+#: lib/service/export/participants/common.ex:44
 #, elixir-autogen, elixir-format
 msgid "Rejected"
 msgstr "Rechazado"
@@ -1784,7 +1756,7 @@ msgstr "Número de participantes"
 msgid "Participants for %{event}"
 msgstr "Participantes para %{event}"
 
-#: lib/service/export/participants/common.ex:88
+#: lib/service/export/participants/common.ex:95
 #, elixir-autogen, elixir-format
 msgid "Anonymous participant"
 msgstr "Participante anónimo"
@@ -1903,7 +1875,7 @@ msgstr "Participar:"
 msgid "Title: %{title}"
 msgstr "Título: %{title}"
 
-#: lib/web/email/group.ex:46
+#: lib/web/email/group.ex:47
 #, elixir-autogen, elixir-format
 msgid "📅 Just scheduled by %{group}: %{event}"
 msgstr "📅 Recién programado por %{group}: %{event}"
@@ -2355,3 +2327,26 @@ msgstr ""
 #, elixir-autogen, elixir-format
 msgid "Until next time!"
 msgstr "¡Hasta la próxima vez!"
+
+#: lib/web/templates/email/group_suspension.html.heex:67
+#: lib/web/templates/email/group_suspension.text.eex:5
+#, elixir-autogen, elixir-format, fuzzy
+msgid "As this group was located on this instance, all of its data has been irretrievably deleted."
+msgstr ""
+"Como este grupo estaba ubicado en esta instancia, todos sus datos se han "
+"eliminado de forma irremediable."
+
+#: lib/web/templates/email/report.text.eex:11
+#, elixir-autogen, elixir-format, fuzzy
+msgid "Events"
+msgstr "Evento"
+
+#: lib/web/templates/email/report.html.heex:115
+#, elixir-autogen, elixir-format, fuzzy
+msgid "Flagged events"
+msgstr "Comentarios marcados"
+
+#: lib/service/export/participants/common.ex:65
+#, elixir-autogen, elixir-format, fuzzy
+msgid "Participant registration date"
+msgstr "Estado de participante"
diff --git a/priv/gettext/es/LC_MESSAGES/errors.po b/priv/gettext/es/LC_MESSAGES/errors.po
index 99852b4b64280dfd057676aa7cacddec0948aa43..a20fb8696f1391f5af289212e5a8f0feaddb160d 100644
--- a/priv/gettext/es/LC_MESSAGES/errors.po
+++ b/priv/gettext/es/LC_MESSAGES/errors.po
@@ -110,7 +110,7 @@ msgstr "El perfil actual no es miembro de este grupo"
 msgid "Current profile is not an administrator of the selected group"
 msgstr "El perfil actual no es un administrador del grupo seleccionado"
 
-#: lib/graphql/resolvers/user.ex:644
+#: lib/graphql/resolvers/user.ex:673
 #, elixir-autogen, elixir-format
 msgid "Error while saving user settings"
 msgstr "Error al guardar los parámetros del usuario"
@@ -154,8 +154,8 @@ msgstr "No se encontró el perfil del usuario moderador"
 msgid "No user to validate with this email was found"
 msgstr "No se encontró ningún usuario para validar con este correo electrónico"
 
-#: lib/graphql/resolvers/person.ex:337
-#: lib/graphql/resolvers/user.ex:330
+#: lib/graphql/resolvers/person.ex:339
+#: lib/graphql/resolvers/user.ex:337
 #, elixir-autogen, elixir-format
 msgid "No user with this email was found"
 msgstr "No se encontró ningún usuario con este correo electrónico"
@@ -163,12 +163,12 @@ msgstr "No se encontró ningún usuario con este correo electrónico"
 #: lib/graphql/resolvers/feed_token.ex:28
 #: lib/graphql/resolvers/participant.ex:32
 #: lib/graphql/resolvers/participant.ex:210
-#: lib/graphql/resolvers/person.ex:245
-#: lib/graphql/resolvers/person.ex:376
-#: lib/graphql/resolvers/person.ex:412
-#: lib/graphql/resolvers/person.ex:419
-#: lib/graphql/resolvers/person.ex:448
-#: lib/graphql/resolvers/person.ex:463
+#: lib/graphql/resolvers/person.ex:247
+#: lib/graphql/resolvers/person.ex:378
+#: lib/graphql/resolvers/person.ex:414
+#: lib/graphql/resolvers/person.ex:421
+#: lib/graphql/resolvers/person.ex:450
+#: lib/graphql/resolvers/person.ex:465
 #, elixir-autogen, elixir-format
 msgid "Profile is not owned by authenticated user"
 msgstr "El perfil no es propiedad del usuario autenticado"
@@ -178,43 +178,44 @@ msgstr "El perfil no es propiedad del usuario autenticado"
 msgid "Registrations are not open"
 msgstr "Las inscripciones no están abiertas"
 
-#: lib/graphql/resolvers/user.ex:461
+#: lib/graphql/resolvers/user.ex:474
 #, elixir-autogen, elixir-format
 msgid "The current password is invalid"
 msgstr "La contraseña actual no es válida"
 
-#: lib/graphql/resolvers/admin.ex:336
-#: lib/graphql/resolvers/user.ex:504
+#: lib/graphql/resolvers/admin.ex:334
+#: lib/graphql/resolvers/user.ex:527
 #, elixir-autogen, elixir-format
 msgid "The new email doesn't seem to be valid"
 msgstr "El nuevo correo electrónico no parece ser válido"
 
-#: lib/graphql/resolvers/admin.ex:339
-#: lib/graphql/resolvers/user.ex:507
+#: lib/graphql/resolvers/admin.ex:323
+#: lib/graphql/resolvers/user.ex:514
 #, elixir-autogen, elixir-format
 msgid "The new email must be different"
 msgstr "El nuevo correo electrónico debe ser diferente"
 
-#: lib/graphql/resolvers/user.ex:464
+#: lib/graphql/resolvers/user.ex:477
 #, elixir-autogen, elixir-format
 msgid "The new password must be different"
 msgstr "La nueva contraseña debe ser diferente"
 
-#: lib/graphql/resolvers/user.ex:511
-#: lib/graphql/resolvers/user.ex:573
-#: lib/graphql/resolvers/user.ex:576
+#: lib/graphql/resolvers/user.ex:518
+#: lib/graphql/resolvers/user.ex:602
+#: lib/graphql/resolvers/user.ex:605
 #, elixir-autogen, elixir-format
 msgid "The password provided is invalid"
 msgstr "La contraseña proporcionada no es válida"
 
-#: lib/graphql/resolvers/user.ex:468
+#: lib/graphql/resolvers/user.ex:361
+#: lib/graphql/resolvers/user.ex:481
 #, elixir-autogen, elixir-format
 msgid "The password you have chosen is too short. Please make sure your password contains at least 6 characters."
 msgstr ""
 "La contraseña que ha elegido es demasiado corta. Asegúrese de que su "
 "contraseña contenga al menos 6 caracteres."
 
-#: lib/graphql/resolvers/user.ex:323
+#: lib/graphql/resolvers/user.ex:330
 #, elixir-autogen, elixir-format
 msgid "This user can't reset their password"
 msgstr "Este usuario no puede restablecer su contraseña"
@@ -230,12 +231,12 @@ msgstr "Este usuario ha sido inhabilitado"
 msgid "Unable to validate user"
 msgstr "No se puede validar el usuario"
 
-#: lib/graphql/resolvers/user.ex:554
+#: lib/graphql/resolvers/user.ex:583
 #, elixir-autogen, elixir-format
 msgid "User already disabled"
 msgstr "El usuario ya está inhabilitado"
 
-#: lib/graphql/resolvers/user.ex:619
+#: lib/graphql/resolvers/user.ex:648
 #, elixir-autogen, elixir-format
 msgid "User requested is not logged-in"
 msgstr "El usuario solicitado no ha iniciado sesión"
@@ -260,12 +261,12 @@ msgstr "No puedes unirte a este grupo"
 msgid "You may not list groups unless moderator."
 msgstr "No puedes listar grupos a menos que seas moderador."
 
-#: lib/graphql/resolvers/user.ex:519
+#: lib/graphql/resolvers/user.ex:503
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to change your email"
 msgstr "Debes iniciar sesión para cambiar tu correo electrónico"
 
-#: lib/graphql/resolvers/user.ex:476
+#: lib/graphql/resolvers/user.ex:489
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to change your password"
 msgstr "Debes iniciar sesión para cambiar tu contraseña"
@@ -275,7 +276,7 @@ msgstr "Debes iniciar sesión para cambiar tu contraseña"
 msgid "You need to be logged-in to delete a group"
 msgstr "Debes iniciar sesión para eliminar un grupo"
 
-#: lib/graphql/resolvers/user.ex:581
+#: lib/graphql/resolvers/user.ex:610
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to delete your account"
 msgstr "Debes iniciar sesión para eliminar su cuenta"
@@ -300,13 +301,6 @@ msgstr "Debes iniciar sesión para actualizar un grupo"
 msgid "You need to have an existing token to get a refresh token"
 msgstr "Debes tener un token existente para obtener un token de actualización"
 
-#: lib/graphql/resolvers/user.ex:306
-#: lib/graphql/resolvers/user.ex:333
-#, elixir-autogen, elixir-format
-msgid "You requested again a confirmation email too soon"
-msgstr ""
-"Solicitó de nuevo un correo electrónico de confirmación demasiado pronto"
-
 #: lib/graphql/resolvers/user.ex:180
 #, elixir-autogen, elixir-format
 msgid "Your email is not on the allowlist"
@@ -361,17 +355,17 @@ msgstr "Su instancia requiere un correo electrónico válido"
 msgid "Anonymous participation is not enabled"
 msgstr "La participación anónima no está habilitada"
 
-#: lib/graphql/resolvers/person.ex:219
+#: lib/graphql/resolvers/person.ex:221
 #, elixir-autogen, elixir-format
 msgid "Cannot remove the last administrator of a group"
 msgstr "No se puede eliminar al último administrador de un grupo"
 
-#: lib/graphql/resolvers/person.ex:216
+#: lib/graphql/resolvers/person.ex:218
 #, elixir-autogen, elixir-format
 msgid "Cannot remove the last identity of a user"
 msgstr "No se puede eliminar la última identidad de un usuario"
 
-#: lib/graphql/resolvers/comment.ex:147
+#: lib/graphql/resolvers/comment.ex:153
 #, elixir-autogen, elixir-format
 msgid "Comment is already deleted"
 msgstr "El comentario ya está eliminado"
@@ -399,8 +393,8 @@ msgid "Event id not found"
 msgstr "ID de evento no encontrado"
 
 #: lib/graphql/error.ex:114
-#: lib/graphql/resolvers/event.ex:355
-#: lib/graphql/resolvers/event.ex:407
+#: lib/graphql/resolvers/event.ex:382
+#: lib/graphql/resolvers/event.ex:434
 #, elixir-autogen, elixir-format
 msgid "Event not found"
 msgstr "Evento no encontrado"
@@ -408,7 +402,7 @@ msgstr "Evento no encontrado"
 #: lib/graphql/resolvers/participant.ex:87
 #: lib/graphql/resolvers/participant.ex:128
 #: lib/graphql/resolvers/participant.ex:155
-#: lib/graphql/resolvers/participant.ex:336
+#: lib/graphql/resolvers/participant.ex:343
 #, elixir-autogen, elixir-format
 msgid "Event with this ID %{id} doesn't exist"
 msgstr "El evento con el ID %{id} no existe"
@@ -418,7 +412,7 @@ msgstr "El evento con el ID %{id} no existe"
 msgid "Internal Error"
 msgstr "Error interno"
 
-#: lib/graphql/resolvers/discussion.ex:219
+#: lib/graphql/resolvers/discussion.ex:222
 #, elixir-autogen, elixir-format
 msgid "No discussion with ID %{id}"
 msgstr "Sin discusión con ID %{id}"
@@ -485,10 +479,10 @@ msgstr "Perfil ya es miembro de este grupo"
 #: lib/graphql/resolvers/post.ex:133
 #: lib/graphql/resolvers/post.ex:175
 #: lib/graphql/resolvers/post.ex:209
-#: lib/graphql/resolvers/resource.ex:90
-#: lib/graphql/resolvers/resource.ex:135
-#: lib/graphql/resolvers/resource.ex:168
-#: lib/graphql/resolvers/resource.ex:202
+#: lib/graphql/resolvers/resource.ex:92
+#: lib/graphql/resolvers/resource.ex:137
+#: lib/graphql/resolvers/resource.ex:170
+#: lib/graphql/resolvers/resource.ex:204
 #: lib/graphql/resolvers/todos.ex:58
 #: lib/graphql/resolvers/todos.ex:83
 #: lib/graphql/resolvers/todos.ex:110
@@ -500,7 +494,7 @@ msgid "Profile is not member of group"
 msgstr "El perfil no es miembro del grupo"
 
 #: lib/graphql/resolvers/actor.ex:67
-#: lib/graphql/resolvers/person.ex:242
+#: lib/graphql/resolvers/person.ex:244
 #, elixir-autogen, elixir-format
 msgid "Profile not found"
 msgstr "Perfil no encontrado"
@@ -510,8 +504,8 @@ msgstr "Perfil no encontrado"
 msgid "Report not found"
 msgstr "Informe no encontrado"
 
-#: lib/graphql/resolvers/resource.ex:172
-#: lib/graphql/resolvers/resource.ex:199
+#: lib/graphql/resolvers/resource.ex:174
+#: lib/graphql/resolvers/resource.ex:201
 #, elixir-autogen, elixir-format
 msgid "Resource doesn't exist"
 msgstr "El recurso no existe"
@@ -521,7 +515,7 @@ msgstr "El recurso no existe"
 msgid "The event has already reached its maximum capacity"
 msgstr "El evento ya alcanzó su capacidad máxima"
 
-#: lib/graphql/resolvers/participant.ex:282
+#: lib/graphql/resolvers/participant.ex:289
 #, elixir-autogen, elixir-format
 msgid "This token is invalid"
 msgstr "Este token no es válido"
@@ -555,7 +549,7 @@ msgstr "El token no es un UUID válido"
 msgid "User not found"
 msgstr "Usuario no encontrado"
 
-#: lib/graphql/resolvers/person.ex:333
+#: lib/graphql/resolvers/person.ex:335
 #, elixir-autogen, elixir-format
 msgid "You already have a profile for this user"
 msgstr "Ya tienes un perfil para este usuario"
@@ -577,7 +571,7 @@ msgstr "No eres un miembro de este grupo"
 msgid "You are not a moderator or admin for this group"
 msgstr "No eres moderador ni administrador de este grupo"
 
-#: lib/graphql/resolvers/comment.ex:80
+#: lib/graphql/resolvers/comment.ex:74
 #, elixir-autogen, elixir-format
 msgid "You are not allowed to create a comment if not connected"
 msgstr "No está permitido crear un comentario si no está conectado"
@@ -587,7 +581,7 @@ msgstr "No está permitido crear un comentario si no está conectado"
 msgid "You are not allowed to create a feed token if not connected"
 msgstr "No puede crear un token de feed si no está conectado"
 
-#: lib/graphql/resolvers/comment.ex:155
+#: lib/graphql/resolvers/comment.ex:161
 #, elixir-autogen, elixir-format
 msgid "You are not allowed to delete a comment if not connected"
 msgstr "No puede eliminar un comentario si no está conectado"
@@ -597,7 +591,7 @@ msgstr "No puede eliminar un comentario si no está conectado"
 msgid "You are not allowed to delete a feed token if not connected"
 msgstr "No puede eliminar un token de feed si no está conectado"
 
-#: lib/graphql/resolvers/comment.ex:114
+#: lib/graphql/resolvers/comment.ex:120
 #, elixir-autogen, elixir-format
 msgid "You are not allowed to update a comment if not connected"
 msgstr "No se le permite actualizar un comentario si no está conectado"
@@ -617,12 +611,12 @@ msgstr ""
 "No puede establecerse en un rol de miembro inferior para este grupo porque "
 "es el único administrador"
 
-#: lib/graphql/resolvers/comment.ex:143
+#: lib/graphql/resolvers/comment.ex:149
 #, elixir-autogen, elixir-format
 msgid "You cannot delete this comment"
 msgstr "No puedes borrar este comentario"
 
-#: lib/graphql/resolvers/event.ex:403
+#: lib/graphql/resolvers/event.ex:430
 #, elixir-autogen, elixir-format
 msgid "You cannot delete this event"
 msgstr "No puedes borrar este evento"
@@ -658,21 +652,21 @@ msgstr "Debe iniciar sesión y ser un moderador para actualizar un informe"
 msgid "You need to be logged-in and a moderator to view a report"
 msgstr "Debe iniciar sesión y ser un moderador para actualizar un informe"
 
-#: lib/graphql/resolvers/admin.ex:252
+#: lib/graphql/resolvers/admin.ex:258
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in and an administrator to access admin settings"
 msgstr ""
 "Debe iniciar sesión y ser administrador para acceder a la configuración de "
 "administrador"
 
-#: lib/graphql/resolvers/admin.ex:236
+#: lib/graphql/resolvers/admin.ex:242
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in and an administrator to access dashboard statistics"
 msgstr ""
 "Debe iniciar sesión y ser administrador para acceder a las estadísticas del "
 "panel"
 
-#: lib/graphql/resolvers/admin.ex:278
+#: lib/graphql/resolvers/admin.ex:283
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in and an administrator to save admin settings"
 msgstr ""
@@ -684,12 +678,12 @@ msgstr ""
 msgid "You need to be logged-in to access discussions"
 msgstr "Debe iniciar sesión para acceder a las discusiones"
 
-#: lib/graphql/resolvers/resource.ex:96
+#: lib/graphql/resolvers/resource.ex:98
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to access resources"
 msgstr "Debes iniciar sesión para acceder a los recursos"
 
-#: lib/graphql/resolvers/event.ex:313
+#: lib/graphql/resolvers/event.ex:321
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to create events"
 msgstr "Debes iniciar sesión para crear eventos"
@@ -704,12 +698,12 @@ msgstr "Debes iniciar sesión para crear publicaciones"
 msgid "You need to be logged-in to create reports"
 msgstr "Debe iniciar sesión para crear informes"
 
-#: lib/graphql/resolvers/resource.ex:140
+#: lib/graphql/resolvers/resource.ex:142
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to create resources"
 msgstr "Debe iniciar sesión para crear recursos"
 
-#: lib/graphql/resolvers/event.ex:412
+#: lib/graphql/resolvers/event.ex:439
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to delete an event"
 msgstr "Debe iniciar sesión para eliminar un evento"
@@ -719,7 +713,7 @@ msgstr "Debe iniciar sesión para eliminar un evento"
 msgid "You need to be logged-in to delete posts"
 msgstr "Debes iniciar sesión para eliminar publicaciones"
 
-#: lib/graphql/resolvers/resource.ex:207
+#: lib/graphql/resolvers/resource.ex:209
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to delete resources"
 msgstr "Debes iniciar sesión para eliminar recursos"
@@ -734,7 +728,7 @@ msgstr "Debes iniciar sesión para eliminar recursos"
 msgid "You need to be logged-in to leave an event"
 msgstr "Debes iniciar sesión para salir de un evento"
 
-#: lib/graphql/resolvers/event.ex:369
+#: lib/graphql/resolvers/event.ex:396
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to update an event"
 msgstr "Debe iniciar sesión para actualizar un evento"
@@ -744,17 +738,17 @@ msgstr "Debe iniciar sesión para actualizar un evento"
 msgid "You need to be logged-in to update posts"
 msgstr "Debes iniciar sesión para actualizar las publicaciones"
 
-#: lib/graphql/resolvers/resource.ex:177
+#: lib/graphql/resolvers/resource.ex:179
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to update resources"
 msgstr "Debes iniciar sesión para actualizar los recursos"
 
-#: lib/graphql/resolvers/resource.ex:236
+#: lib/graphql/resolvers/resource.ex:233
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to view a resource preview"
 msgstr "Debe iniciar sesión para ver una vista previa del recurso"
 
-#: lib/graphql/resolvers/resource.ex:132
+#: lib/graphql/resolvers/resource.ex:134
 #, elixir-autogen, elixir-format
 msgid "Parent resource doesn't belong to this group"
 msgstr "El recurso principal no pertenece a este grupo"
@@ -842,12 +836,12 @@ msgstr "El archivo no tiene un tipo MIME permitido."
 msgid "Profile is not administrator for the group"
 msgstr "El perfil no es miembro del grupo"
 
-#: lib/graphql/resolvers/event.ex:358
+#: lib/graphql/resolvers/event.ex:385
 #, elixir-autogen, elixir-format
 msgid "You can't edit this event."
 msgstr "No puedes borrar este evento."
 
-#: lib/graphql/resolvers/event.ex:361
+#: lib/graphql/resolvers/event.ex:388
 #, elixir-autogen, elixir-format
 msgid "You can't attribute this event to this profile."
 msgstr "No puedes rechazar esta invitación con este perfil."
@@ -867,7 +861,7 @@ msgstr "Este miembro ya ha sido rechazado."
 msgid "You don't have the right to remove this member."
 msgstr "No tiene derecho a eliminar este miembro."
 
-#: lib/mobilizon/actors/actor.ex:377
+#: lib/mobilizon/actors/actor.ex:378
 #, elixir-autogen, elixir-format
 msgid "This username is already taken."
 msgstr "Este nombre de usuario ya está en uso."
@@ -878,7 +872,7 @@ msgid "You must provide either an ID or a slug to access a discussion"
 msgstr ""
 "Debe proporcionar una identificación o un slug para acceder a una discusión"
 
-#: lib/graphql/resolvers/event.ex:275
+#: lib/graphql/resolvers/event.ex:276
 #, elixir-autogen, elixir-format
 msgid "Organizer profile is not owned by the user"
 msgstr "El perfil del organizador no es propiedad del usuario"
@@ -890,43 +884,43 @@ msgstr "El ID de perfil proporcionado no es el del perfil anónimo"
 
 #: lib/graphql/resolvers/group.ex:181
 #: lib/graphql/resolvers/group.ex:223
-#: lib/graphql/resolvers/person.ex:157
-#: lib/graphql/resolvers/person.ex:191
-#: lib/graphql/resolvers/person.ex:324
+#: lib/graphql/resolvers/person.ex:159
+#: lib/graphql/resolvers/person.ex:193
+#: lib/graphql/resolvers/person.ex:326
 #, elixir-autogen, elixir-format
 msgid "The provided picture is too heavy"
 msgstr "La imagen proporcionada es demasiado pesada"
 
-#: lib/graphql/resolvers/resource.ex:129
+#: lib/graphql/resolvers/resource.ex:131
 #, elixir-autogen, elixir-format
 msgid "Error while creating resource"
 msgstr "Error al crear el recurso"
 
-#: lib/graphql/resolvers/user.ex:537
+#: lib/graphql/resolvers/user.ex:566
 #, elixir-autogen, elixir-format
 msgid "Invalid activation token"
 msgstr "Token de activación no válido"
 
-#: lib/graphql/resolvers/resource.ex:226
+#: lib/graphql/resolvers/resource.ex:228
 #, elixir-autogen, elixir-format
 msgid "Unable to fetch resource details from this URL."
 msgstr "No se pueden recuperar los detalles del recurso de esta URL."
 
 #: lib/graphql/resolvers/event.ex:165
 #: lib/graphql/resolvers/participant.ex:253
-#: lib/graphql/resolvers/participant.ex:328
+#: lib/graphql/resolvers/participant.ex:335
 #, elixir-autogen, elixir-format
 msgid "Provided profile doesn't have moderator permissions on this event"
 msgstr "El perfil de moderador proporcionado no tiene permiso para este evento"
 
-#: lib/graphql/resolvers/event.ex:286
+#: lib/graphql/resolvers/event.ex:294
 #, elixir-autogen, elixir-format
 msgid "Organizer profile doesn't have permission to create an event on behalf of this group"
 msgstr ""
 "El perfil del organizador no tiene permiso para crear un evento en nombre de "
 "este grupo"
 
-#: lib/graphql/resolvers/event.ex:349
+#: lib/graphql/resolvers/event.ex:369
 #, elixir-autogen, elixir-format
 msgid "This profile doesn't have permission to update an event on behalf of this group"
 msgstr ""
@@ -940,7 +934,7 @@ msgstr ""
 "A su correo electrónico se le ha denegado el registro o utiliza un proveedor "
 "de correo electrónico no autorizado"
 
-#: lib/graphql/resolvers/comment.ex:150
+#: lib/graphql/resolvers/comment.ex:156
 #, elixir-autogen, elixir-format
 msgid "Comment not found"
 msgstr "Evento no encontrado"
@@ -950,12 +944,12 @@ msgstr "Evento no encontrado"
 msgid "Error while creating a discussion"
 msgstr "Error al crear el recurso"
 
-#: lib/graphql/resolvers/user.ex:658
+#: lib/graphql/resolvers/user.ex:687
 #, elixir-autogen, elixir-format
 msgid "Error while updating locale"
 msgstr "Error al actualizar el informe"
 
-#: lib/graphql/resolvers/person.ex:327
+#: lib/graphql/resolvers/person.ex:329
 #, elixir-autogen, elixir-format
 msgid "Error while uploading pictures"
 msgstr "Error al actualizar el informe"
@@ -970,13 +964,13 @@ msgstr "No se pudo salir del evento"
 msgid "Failed to update the group"
 msgstr "No se pudo actualizar el grupo"
 
-#: lib/graphql/resolvers/admin.ex:333
-#: lib/graphql/resolvers/user.ex:501
+#: lib/graphql/resolvers/admin.ex:357
+#: lib/graphql/resolvers/user.ex:547
 #, elixir-autogen, elixir-format
 msgid "Failed to update user email"
 msgstr "No se pudo actualizar el correo electrónico del usuario"
 
-#: lib/graphql/resolvers/user.ex:533
+#: lib/graphql/resolvers/user.ex:562
 #, elixir-autogen, elixir-format
 msgid "Failed to validate user email"
 msgstr "No se puede validar al usuario"
@@ -986,37 +980,37 @@ msgstr "No se puede validar al usuario"
 msgid "The anonymous actor ID is invalid"
 msgstr "El ID de actor anónimo no es válido"
 
-#: lib/graphql/resolvers/resource.ex:165
+#: lib/graphql/resolvers/resource.ex:167
 #, elixir-autogen, elixir-format
 msgid "Unknown error while updating resource"
 msgstr "Error desconocido al actualizar el recurso"
 
-#: lib/graphql/resolvers/comment.ex:105
+#: lib/graphql/resolvers/comment.ex:111
 #, elixir-autogen, elixir-format
 msgid "You are not the comment creator"
 msgstr "No eres el creador de comentarios"
 
-#: lib/graphql/resolvers/user.ex:458
+#: lib/graphql/resolvers/user.ex:471
 #, elixir-autogen, elixir-format
 msgid "You cannot change your password."
 msgstr "No puede cambiar su contraseña."
 
-#: lib/graphql/resolvers/participant.ex:321
+#: lib/graphql/resolvers/participant.ex:328
 #, elixir-autogen, elixir-format
 msgid "Format not supported"
 msgstr "Formato incompatible"
 
-#: lib/graphql/resolvers/participant.ex:305
+#: lib/graphql/resolvers/participant.ex:312
 #, elixir-autogen, elixir-format
 msgid "A dependency needed to export to %{format} is not installed"
 msgstr "Una dependencia necesaria para exportar a %{formato} no está instalada"
 
-#: lib/graphql/resolvers/participant.ex:313
+#: lib/graphql/resolvers/participant.ex:320
 #, elixir-autogen, elixir-format
 msgid "An error occured while saving export"
 msgstr "Ocurrió un error al guardar la exportación"
 
-#: lib/web/controllers/export_controller.ex:30
+#: lib/web/controllers/export_controller.ex:32
 #, elixir-autogen, elixir-format
 msgid "Export to format %{format} is not enabled on this instance"
 msgstr ""
@@ -1027,17 +1021,17 @@ msgstr ""
 msgid "Only admins can create groups"
 msgstr "Solo los administradores pueden crear grupos"
 
-#: lib/graphql/resolvers/event.ex:279
+#: lib/graphql/resolvers/event.ex:280
 #, elixir-autogen, elixir-format
 msgid "Only groups can create events"
 msgstr "Solo los grupos pueden crear eventos"
 
-#: lib/graphql/resolvers/event.ex:305
+#: lib/graphql/resolvers/event.ex:313
 #, elixir-autogen, elixir-format
 msgid "Unknown error while creating event"
 msgstr "Error desconocido al crear el evevento"
 
-#: lib/graphql/resolvers/user.ex:514
+#: lib/graphql/resolvers/user.ex:498
 #, elixir-autogen, elixir-format
 msgid "User cannot change email"
 msgstr "El usuario no puede cambiar el correo electrónico"
@@ -1052,12 +1046,12 @@ msgstr "Seguir no conduce a tu cuenta"
 msgid "Follow not found"
 msgstr "Seguimiento no encontrado"
 
-#: lib/graphql/resolvers/user.ex:379
+#: lib/graphql/resolvers/user.ex:392
 #, elixir-autogen, elixir-format
 msgid "Profile with username %{username} not found"
 msgstr "Persona con nombre de usuario %{username} no encontrada"
 
-#: lib/graphql/resolvers/user.ex:374
+#: lib/graphql/resolvers/user.ex:387
 #, elixir-autogen, elixir-format
 msgid "This profile does not belong to you"
 msgstr "Este perfil no te pertenece"
@@ -1102,22 +1096,22 @@ msgstr "Debes iniciar sesión para eliminar un miembro"
 msgid "Your email seems to be using an invalid format"
 msgstr "Su correo electrónico parece estar usando un formato no válido"
 
-#: lib/graphql/resolvers/admin.ex:382
+#: lib/graphql/resolvers/admin.ex:399
 #, elixir-autogen, elixir-format
 msgid "Can't confirm an already confirmed user"
 msgstr "No puedo confirmar un usuario ya confirmado"
 
-#: lib/graphql/resolvers/admin.ex:386
+#: lib/graphql/resolvers/admin.ex:403
 #, elixir-autogen, elixir-format
 msgid "Deconfirming users is not supported"
 msgstr "No se admite la desconfirmación de usuarios"
 
-#: lib/graphql/resolvers/admin.ex:358
+#: lib/graphql/resolvers/admin.ex:375
 #, elixir-autogen, elixir-format
 msgid "The new role must be different"
 msgstr "El nuevo rol debe ser diferente"
 
-#: lib/graphql/resolvers/admin.ex:309
+#: lib/graphql/resolvers/admin.ex:314
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in and an administrator to edit an user's details"
 msgstr ""
@@ -1129,12 +1123,12 @@ msgstr ""
 msgid "A profile or group with that name already exists"
 msgstr "Ya existe un perfil o grupo con ese nombre"
 
-#: lib/graphql/resolvers/admin.ex:519
+#: lib/graphql/resolvers/admin.ex:542
 #, elixir-autogen, elixir-format
 msgid "Unable to find an instance to follow at this address"
 msgstr "No se puede encontrar una instancia para seguir en esta dirección"
 
-#: lib/mobilizon/actors/actor.ex:396
+#: lib/mobilizon/actors/actor.ex:397
 #, elixir-autogen, elixir-format
 msgid "Username must only contain alphanumeric lowercased characters and underscores."
 msgstr ""
@@ -1142,17 +1136,17 @@ msgstr ""
 "minúsculas y guiones bajos."
 
 #: lib/graphql/resolvers/user.ex:303
-#: lib/graphql/resolvers/user.ex:326
+#: lib/graphql/resolvers/user.ex:333
 #, elixir-autogen, elixir-format
 msgid "This email doesn't seem to be valid"
 msgstr "El nuevo correo electrónico no parece ser válido"
 
-#: lib/graphql/resolvers/comment.ex:65
+#: lib/graphql/resolvers/comment.ex:59
 #, elixir-autogen, elixir-format
 msgid "This comment was detected as spam."
 msgstr "Este comentario fue detectado como spam."
 
-#: lib/graphql/resolvers/event.ex:293
+#: lib/graphql/resolvers/event.ex:301
 #, elixir-autogen, elixir-format
 msgid "This event was detected as spam."
 msgstr "Este evento fue detectado como spam."
@@ -1173,7 +1167,7 @@ msgstr "Solo puedes eliminar tus propias notas"
 msgid "You need to be a moderator or an administrator to create a note on a report"
 msgstr "Debes ser un moderador o administrador para crear una nota en un informe"
 
-#: lib/graphql/resolvers/person.ex:330
+#: lib/graphql/resolvers/person.ex:332
 #, elixir-autogen, elixir-format
 msgid "Your profile was detected as spam."
 msgstr "Tu perfil fue detectado como spam."
@@ -1183,7 +1177,7 @@ msgstr "Tu perfil fue detectado como spam."
 msgid "Your registration has been detected as spam and cannot be processed."
 msgstr "Tu registro fue detectado como spam y no puede ser procesado."
 
-#: lib/web/controllers/application_controller.ex:86
+#: lib/web/controllers/application_controller.ex:88
 #, elixir-autogen, elixir-format
 msgid "All of name, scope and redirect_uri parameters are required to create an application"
 msgstr "Los parámetros name, scope y redirect_uri son requeridos para crear una aplicación"
@@ -1198,171 +1192,228 @@ msgstr "Aplicación no encontrada"
 msgid "Application token not found"
 msgstr "Token de aplicación no encontrado"
 
-#: lib/graphql/resolvers/application.ex:89
+#: lib/graphql/resolvers/application.ex:90
 #, elixir-autogen, elixir-format, fuzzy
 msgid "Error while revoking token"
 msgstr "Error al guardar el informe"
 
-#: lib/web/controllers/application_controller.ex:59
+#: lib/web/controllers/application_controller.ex:61
 #, elixir-autogen, elixir-format
 msgid "Impossible to create application."
 msgstr "Imposible crear una aplicación"
 
-#: lib/web/controllers/application_controller.ex:356
+#: lib/web/controllers/application_controller.ex:358
 #, elixir-autogen, elixir-format
 msgid "Incorrect parameters sent. You need to provide at least the grant_type and client_id parameters, depending on the grant type being used."
 msgstr "Se enviaron parámetros incorrectos. Debes proporcionar al menos los parámetros grant_type y client_id, dependiendo del grant_type que se esté usando."
 
-#: lib/web/controllers/application_controller.ex:329
+#: lib/web/controllers/application_controller.ex:331
 #, elixir-autogen, elixir-format
 msgid "Invalid client credentials provided"
 msgstr "Se han provisto credenciales de cliente no válidas"
 
-#: lib/web/controllers/application_controller.ex:337
+#: lib/web/controllers/application_controller.ex:339
 #, elixir-autogen, elixir-format
 msgid "Invalid refresh token provided"
 msgstr "Se ha provisto un token de refrescado inválido"
 
-#: lib/web/controllers/application_controller.ex:170
-#: lib/web/controllers/application_controller.ex:401
+#: lib/web/controllers/application_controller.ex:172
+#: lib/web/controllers/application_controller.ex:403
 #, elixir-autogen, elixir-format
 msgid "No application was found with this client_id"
 msgstr "No se ha encontrado una aplicación con este client_id"
 
-#: lib/graphql/resolvers/application.ex:37
+#: lib/graphql/resolvers/application.ex:38
 #, elixir-autogen, elixir-format
 msgid "No application with this client_id was found"
 msgstr "No se ha encontrado una aplicación con este client_id"
 
-#: lib/graphql/authorization.ex:80
+#: lib/graphql/authorization.ex:81
 #, elixir-autogen, elixir-format
 msgid "Not authorized to access field %{field}"
 msgstr "No está autorizado a acceder al campo %{field}"
 
-#: lib/graphql/authorization.ex:70
-#: lib/graphql/authorization.ex:75
+#: lib/graphql/authorization.ex:71
+#: lib/graphql/authorization.ex:76
 #, elixir-autogen, elixir-format
 msgid "Not authorized to access object %{object}"
 msgstr "No está autorizado a acceder al objeto %{object}"
 
-#: lib/graphql/authorization.ex:63
+#: lib/graphql/authorization.ex:64
 #, elixir-autogen, elixir-format
 msgid "Not authorized to access this %{object_type}"
 msgstr "No está autorizado a acceder a este %{object_type}"
 
-#: lib/web/controllers/application_controller.ex:279
+#: lib/web/controllers/application_controller.ex:281
 #, elixir-autogen, elixir-format
 msgid "Please slow down the rate of your requests"
 msgstr "Por favor reduce la frecuencia de tus peticiones"
 
-#: lib/web/controllers/application_controller.ex:267
+#: lib/web/controllers/application_controller.ex:269
 #, elixir-autogen, elixir-format
 msgid "The authorization request is still pending"
 msgstr "La solicitud de autorización todavía está pendiente"
 
-#: lib/web/controllers/application_controller.ex:249
+#: lib/web/controllers/application_controller.ex:251
 #, elixir-autogen, elixir-format
 msgid "The client_id provided or the device_code associated is invalid"
 msgstr "El client_id provisto o el device_code asociado es inválido"
 
-#: lib/graphql/resolvers/application.ex:133
+#: lib/graphql/resolvers/application.ex:139
 #, elixir-autogen, elixir-format
 msgid "The device user code was not provided before approving the application"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:304
+#: lib/web/controllers/application_controller.ex:306
 #, elixir-autogen, elixir-format
 msgid "The given device_code has expired"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:44
+#: lib/graphql/resolvers/application.ex:45
 #, elixir-autogen, elixir-format
 msgid "The given redirect_uri is not in the list of allowed redirect URIs"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:158
+#: lib/web/controllers/application_controller.ex:160
 #, elixir-autogen, elixir-format
 msgid "The given scope is not in the list of the app declared scopes"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:109
-#: lib/graphql/resolvers/application.ex:146
+#: lib/graphql/resolvers/application.ex:112
+#: lib/graphql/resolvers/application.ex:154
 #, elixir-autogen, elixir-format
 msgid "The given user code has expired"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:112
-#: lib/graphql/resolvers/application.ex:140
+#: lib/graphql/resolvers/application.ex:118
+#: lib/graphql/resolvers/application.ex:146
 #, elixir-autogen, elixir-format
 msgid "The given user code is invalid"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:411
+#: lib/web/controllers/application_controller.ex:413
 #, elixir-autogen, elixir-format
 msgid "The provided client_id does not match the provided code"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:414
+#: lib/web/controllers/application_controller.ex:416
 #, elixir-autogen, elixir-format
 msgid "The provided client_secret is invalid"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:407
+#: lib/web/controllers/application_controller.ex:409
 #, elixir-autogen, elixir-format
 msgid "The provided code is invalid or expired"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:418
+#: lib/web/controllers/application_controller.ex:420
 #, elixir-autogen, elixir-format
 msgid "The provided scope is invalid or not included in the app declared scopes"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:45
+#: lib/web/controllers/application_controller.ex:47
 #, elixir-autogen, elixir-format
 msgid "The scope parameter is not a space separated list of valid scopes"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:292
+#: lib/web/controllers/application_controller.ex:294
 #, elixir-autogen, elixir-format
 msgid "The user rejected the requested authorization"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:404
+#: lib/web/controllers/application_controller.ex:406
 #, elixir-autogen, elixir-format
 msgid "This redirect URI is not allowed"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:381
+#: lib/web/controllers/application_controller.ex:383
 #, elixir-autogen, elixir-format, fuzzy
 msgid "Token not found"
 msgstr "Token no encontrado"
 
-#: lib/web/controllers/application_controller.ex:72
+#: lib/web/controllers/application_controller.ex:74
 #, elixir-autogen, elixir-format
 msgid "Too many requests"
 msgstr "Demasiadas peticiones"
 
-#: lib/web/controllers/application_controller.ex:184
+#: lib/web/controllers/application_controller.ex:186
 #, elixir-autogen, elixir-format
 msgid "Unable to produce device code"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:373
+#: lib/web/controllers/application_controller.ex:375
 #, elixir-autogen, elixir-format
 msgid "Unable to revoke token"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:198
+#: lib/web/controllers/application_controller.ex:200
 #, elixir-autogen, elixir-format
 msgid "You need to pass both client_id and scope as parameters to obtain a device code"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:136
+#: lib/web/controllers/application_controller.ex:138
 #, elixir-autogen, elixir-format
 msgid "You need to provide a valid redirect_uri to autorize an application"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:126
+#: lib/web/controllers/application_controller.ex:128
 #, elixir-autogen, elixir-format
 msgid "You need to specify client_id, redirect_uri, scope and state to autorize an application"
 msgstr ""
+
+#: lib/graphql/resolvers/user.ex:306
+#, elixir-autogen, elixir-format
+msgid "Couldn't send an email. Internal error."
+msgstr ""
+
+#: lib/graphql/resolvers/participant.ex:286
+#, elixir-autogen, elixir-format
+msgid "Participation is already confirmed"
+msgstr ""
+
+#: lib/graphql/resolvers/participant.ex:283
+#, elixir-autogen, elixir-format
+msgid "Participation is confirmed but not approved yet by an organizer"
+msgstr ""
+
+#: lib/graphql/resolvers/event.ex:287
+#: lib/graphql/resolvers/event.ex:376
+#, elixir-autogen, elixir-format
+msgid "Providing external registration is not allowed"
+msgstr ""
+
+#: lib/graphql/resolvers/push_subscription.ex:48
+#, elixir-autogen, elixir-format
+msgid "The same push subscription has already been registered"
+msgstr ""
+
+#: lib/graphql/resolvers/admin.ex:536
+#, elixir-autogen, elixir-format
+msgid "This instance is pending follow approval"
+msgstr ""
+
+#: lib/graphql/schema/custom/timezone.ex:23
+#, elixir-autogen, elixir-format
+msgid "Timezone ID %{timezone} is invalid"
+msgstr ""
+
+#: lib/graphql/resolvers/admin.ex:539
+#, elixir-autogen, elixir-format, fuzzy
+msgid "You are already following this instance"
+msgstr "Ya estas siguiendo este grupo"
+
+#: lib/graphql/resolvers/user.ex:310
+#, elixir-autogen, elixir-format, fuzzy
+msgid "You requested again a confirmation email too soon. Please try again in a few minutes"
+msgstr ""
+"Solicitó de nuevo un correo electrónico de confirmación demasiado pronto"
+
+#: lib/graphql/resolvers/user.ex:341
+#, elixir-autogen, elixir-format
+msgid "You requested again a password reset email too soon. Please try again in a few minutes"
+msgstr ""
+
+#: lib/graphql/resolvers/user.ex:368
+#, elixir-autogen, elixir-format
+msgid "The token you provided is invalid. Make sure that the URL is exactly the one provided inside the email you got."
+msgstr ""
diff --git a/priv/gettext/fi/LC_MESSAGES/activity.po b/priv/gettext/fi/LC_MESSAGES/activity.po
index 84264a490d0b5da7cf31793d41458dc37a24fa58..204851c55486b4304a11d5024b5e2246f607b499 100644
--- a/priv/gettext/fi/LC_MESSAGES/activity.po
+++ b/priv/gettext/fi/LC_MESSAGES/activity.po
@@ -465,3 +465,15 @@ msgstr "%{profile} vastasi keskusteluun %{discussion}."
 #, elixir-autogen, elixir-format, fuzzy
 msgid "%{profile} approved the member %{member}."
 msgstr "%{profile} lisäsi jäsenen %{member}."
+
+#: lib/service/activity/renderer/event.ex:74
+#: lib/web/templates/email/activity/_event_activity_item.html.heex:55
+#: lib/web/templates/email/activity/_event_activity_item.text.eex:31
+#, elixir-autogen, elixir-format
+msgid "%{profile} joined your event %{event}."
+msgstr ""
+
+#: lib/web/views/email_view.ex:45
+#, elixir-autogen, elixir-format
+msgid "An anonymous profile"
+msgstr ""
diff --git a/priv/gettext/fi/LC_MESSAGES/default.po b/priv/gettext/fi/LC_MESSAGES/default.po
index f019189891206fe0ae8b84506ffd7e60ea6299c5..e88deeed81d2aaa58ab4afe7c6175ddf4e82143b 100644
--- a/priv/gettext/fi/LC_MESSAGES/default.po
+++ b/priv/gettext/fi/LC_MESSAGES/default.po
@@ -21,7 +21,7 @@ msgstr ""
 "Jos et lähettänyt pyyntöä, voit jättää tämän viestin huomiotta. Salasanasi "
 "ei vaihdu, ennen kuin käytät alla olevaa linkkiä ja luot uuden salasanan."
 
-#: lib/web/templates/email/report.html.heex:120
+#: lib/web/templates/email/report.html.heex:121
 #, elixir-autogen, elixir-format
 msgid "%{title} by %{creator}"
 msgstr "%{title} luojalta %{creator}"
@@ -37,23 +37,17 @@ msgstr "Aktivoi tilini"
 msgid "Ask the community on Framacolibri"
 msgstr "Kysy yhteisöltä Framacolibrissa"
 
-#: lib/web/templates/email/report.text.eex:15
+#: lib/web/templates/email/report.text.eex:17
 #, elixir-autogen, elixir-format
 msgid "Comments"
 msgstr "Kommentit"
 
-#: lib/web/templates/email/report.html.heex:115
-#: lib/web/templates/email/report.text.eex:11
-#, elixir-autogen, elixir-format
-msgid "Event"
-msgstr "Tapahtuma"
-
 #: lib/web/email/user.ex:49
 #, elixir-autogen, elixir-format
 msgid "Instructions to reset your password on %{instance}"
 msgstr "Ohjeet salasanan palauttamiseen palvelimella %{instance}"
 
-#: lib/web/templates/email/report.text.eex:21
+#: lib/web/templates/email/report.text.eex:23
 #, elixir-autogen, elixir-format
 msgid "Reason"
 msgstr "Syy"
@@ -349,12 +343,12 @@ msgctxt "terms"
 msgid "What information do we collect?"
 msgstr "Mitä tietoja kerätään?"
 
-#: lib/web/email/user.ex:182
+#: lib/web/email/user.ex:188
 #, elixir-autogen, elixir-format
 msgid "Mobilizon on %{instance}: confirm your email address"
 msgstr "Mobilizon palvelimella %{instance}: vahvista sähköpostiosoitteesi"
 
-#: lib/web/email/user.ex:159
+#: lib/web/email/user.ex:165
 #, elixir-autogen, elixir-format
 msgid "Mobilizon on %{instance}: email changed"
 msgstr "Mobilizon palvelimella %{instance}: sähköpostiosoite vaihdettu"
@@ -976,7 +970,7 @@ msgstr "Päättyy"
 msgid "Event update!"
 msgstr "Tapahtuma päivitetty!"
 
-#: lib/web/templates/email/report.html.heex:155
+#: lib/web/templates/email/report.html.heex:158
 #, elixir-autogen, elixir-format
 msgid "Flagged comments"
 msgstr "Merkityt kommentit"
@@ -1073,7 +1067,7 @@ msgstr "Melkein valmista!"
 msgid "New email confirmation"
 msgstr "Uuden sähköpostiosoitteen vahvistaminen"
 
-#: lib/web/templates/email/report.html.heex:191
+#: lib/web/templates/email/report.html.heex:194
 #, elixir-autogen, elixir-format
 msgid "Reasons for report"
 msgstr "Raportin syy"
@@ -1130,12 +1124,12 @@ msgstr "Ikävä kyllä järjestäjät hylkäsivät osallistumisesi."
 msgid "Verify your email address"
 msgstr "Vahvista sähköpostiosoite"
 
-#: lib/web/templates/email/report.html.heex:232
+#: lib/web/templates/email/report.html.heex:235
 #, elixir-autogen, elixir-format
 msgid "View report"
 msgstr "Näytä raportti"
 
-#: lib/web/templates/email/report.text.eex:24
+#: lib/web/templates/email/report.text.eex:26
 #, elixir-autogen, elixir-format
 msgid "View report:"
 msgstr "Näytä raportti:"
@@ -1249,14 +1243,6 @@ msgstr ""
 "Koska tämä ryhmä sijaitsi toisella palvelimella, sen toiminta jatkuu muilla "
 "kuin tällä palvelimella."
 
-#: lib/web/templates/email/group_suspension.html.heex:67
-#: lib/web/templates/email/group_suspension.text.eex:5
-#, elixir-autogen, elixir-format
-msgid "As this group was located on this instance, all of it's data has been irretrievably deleted."
-msgstr ""
-"Koska tämä ryhmä sijaitsi tällä palvelimella, kaikki siihen kuuluvat tiedot "
-"on poistettu pysyvästi."
-
 #: lib/web/templates/email/group_suspension.html.heex:18
 #: lib/web/templates/email/group_suspension.text.eex:1
 #, elixir-autogen, elixir-format
@@ -1270,7 +1256,7 @@ msgstr ""
 "Palvelimesi moderointitiimi on päättänyt estää ryhmän %{group_name} "
 "(%{group_address}). Et ole enää tämän ryhmän jäsen."
 
-#: lib/web/email/group.ex:107
+#: lib/web/email/group.ex:108
 #, elixir-autogen, elixir-format
 msgid "The group %{group} has been suspended on %{instance}"
 msgstr "Ryhmä %{group} on estetty palvelimella %{instance}"
@@ -1633,16 +1619,6 @@ msgstr "Mobilizon-palvelin näyttää olevan väliakaisesti alhaalla."
 msgid "Public feed for %{instance}"
 msgstr "Palvelimen %{instance} julkinen syöte"
 
-#: lib/graphql/resolvers/user.ex:350
-#, elixir-autogen, elixir-format
-msgid "The password you have choosen is too short. Please make sure your password contains at least 6 charaters."
-msgstr ""
-
-#: lib/graphql/resolvers/user.ex:356
-#, elixir-autogen, elixir-format
-msgid "The token you provided is invalid. Make sure that the URL is exactly the one provided inside the email you got."
-msgstr ""
-
 #: lib/web/email/actor.ex:43
 #, elixir-autogen, elixir-format
 msgid "Your participation to %{event} has been cancelled!"
@@ -1670,63 +1646,63 @@ msgid "Your participation to %{event} on %{instance} has been cancelled!"
 msgstr "Osallistumisesi tapahtumaan %{title} on hyväksytty"
 
 #. File name template for exported list of participants. Should NOT contain spaces. Make sure the output is going to be something standardized that is acceptable as a file name on most systems.
-#: lib/service/export/participants/csv.ex:81
+#: lib/service/export/participants/csv.ex:97
 #: lib/service/export/participants/ods.ex:86
 #: lib/service/export/participants/pdf.ex:96
 #, elixir-autogen, elixir-format
 msgid "%{event}_participants"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:61
+#: lib/service/export/participants/common.ex:66
 #, elixir-autogen, elixir-format
 msgid "Participant message"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:61
+#: lib/service/export/participants/common.ex:63
 #, elixir-autogen, elixir-format
 msgid "Participant name"
 msgstr "Osallistuminen hyväksytty"
 
-#: lib/service/export/participants/common.ex:61
+#: lib/service/export/participants/common.ex:64
 #, elixir-autogen, elixir-format
 msgid "Participant status"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:52
+#: lib/service/export/participants/common.ex:53
 #: lib/web/templates/email/admin/_role.html.heex:3
 #: lib/web/templates/email/admin/_role.text.eex:1
 #, elixir-autogen, elixir-format
 msgid "Administrator"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:55
+#: lib/service/export/participants/common.ex:56
 #, elixir-autogen, elixir-format
 msgid "Creator"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:49
+#: lib/service/export/participants/common.ex:50
 #: lib/web/templates/email/admin/_role.html.heex:5
 #: lib/web/templates/email/admin/_role.text.eex:1
 #, elixir-autogen, elixir-format
 msgid "Moderator"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:37
+#: lib/service/export/participants/common.ex:38
 #, elixir-autogen, elixir-format
 msgid "Not approved"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:40
+#: lib/service/export/participants/common.ex:41
 #, elixir-autogen, elixir-format
 msgid "Not confirmed"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:46
+#: lib/service/export/participants/common.ex:47
 #, elixir-autogen, elixir-format
 msgid "Participant"
 msgstr "Osallistuminen hyväksytty"
 
-#: lib/service/export/participants/common.ex:43
+#: lib/service/export/participants/common.ex:44
 #, elixir-autogen, elixir-format
 msgid "Rejected"
 msgstr ""
@@ -1751,7 +1727,7 @@ msgstr ""
 msgid "Participants for %{event}"
 msgstr "Osallistuminen hyväksytty"
 
-#: lib/service/export/participants/common.ex:88
+#: lib/service/export/participants/common.ex:95
 #, elixir-autogen, elixir-format
 msgid "Anonymous participant"
 msgstr ""
@@ -1870,7 +1846,7 @@ msgstr "Osallistuminen hyväksytty"
 msgid "Title: %{title}"
 msgstr ""
 
-#: lib/web/email/group.ex:46
+#: lib/web/email/group.ex:47
 #, elixir-autogen, elixir-format
 msgid "📅 Just scheduled by %{group}: %{event}"
 msgstr ""
@@ -2292,3 +2268,26 @@ msgstr ""
 #, elixir-autogen, elixir-format
 msgid "Until next time!"
 msgstr ""
+
+#: lib/web/templates/email/group_suspension.html.heex:67
+#: lib/web/templates/email/group_suspension.text.eex:5
+#, elixir-autogen, elixir-format, fuzzy
+msgid "As this group was located on this instance, all of its data has been irretrievably deleted."
+msgstr ""
+"Koska tämä ryhmä sijaitsi tällä palvelimella, kaikki siihen kuuluvat tiedot "
+"on poistettu pysyvästi."
+
+#: lib/web/templates/email/report.text.eex:11
+#, elixir-autogen, elixir-format, fuzzy
+msgid "Events"
+msgstr "Tapahtuma"
+
+#: lib/web/templates/email/report.html.heex:115
+#, elixir-autogen, elixir-format, fuzzy
+msgid "Flagged events"
+msgstr "Merkityt kommentit"
+
+#: lib/service/export/participants/common.ex:65
+#, elixir-autogen, elixir-format, fuzzy
+msgid "Participant registration date"
+msgstr ""
diff --git a/priv/gettext/fi/LC_MESSAGES/errors.po b/priv/gettext/fi/LC_MESSAGES/errors.po
index 620150df5a869340191603e6c61fb19ded973c6a..fb32ce42493a26adb154f1c5c70185672db3014b 100644
--- a/priv/gettext/fi/LC_MESSAGES/errors.po
+++ b/priv/gettext/fi/LC_MESSAGES/errors.po
@@ -110,7 +110,7 @@ msgstr "Nykyinen profiili ei kuulu tähän ryhmään"
 msgid "Current profile is not an administrator of the selected group"
 msgstr "Nykyinen profiili ei ole valitun ryhmän ylläpitäjä"
 
-#: lib/graphql/resolvers/user.ex:644
+#: lib/graphql/resolvers/user.ex:673
 #, elixir-autogen, elixir-format
 msgid "Error while saving user settings"
 msgstr "Käyttäjän asetusten tallennuksessa tapahtui virhe"
@@ -154,8 +154,8 @@ msgstr "Moderaattorikäyttäjän profiilia ei löydy"
 msgid "No user to validate with this email was found"
 msgstr "Käyttäjää tämän sähköpostin vahvistamiseksi ei löydy"
 
-#: lib/graphql/resolvers/person.ex:337
-#: lib/graphql/resolvers/user.ex:330
+#: lib/graphql/resolvers/person.ex:339
+#: lib/graphql/resolvers/user.ex:337
 #, elixir-autogen, elixir-format
 msgid "No user with this email was found"
 msgstr "Käyttäjää, jolla on tämä sähköpostiosoite ei löydy"
@@ -163,12 +163,12 @@ msgstr "Käyttäjää, jolla on tämä sähköpostiosoite ei löydy"
 #: lib/graphql/resolvers/feed_token.ex:28
 #: lib/graphql/resolvers/participant.ex:32
 #: lib/graphql/resolvers/participant.ex:210
-#: lib/graphql/resolvers/person.ex:245
-#: lib/graphql/resolvers/person.ex:376
-#: lib/graphql/resolvers/person.ex:412
-#: lib/graphql/resolvers/person.ex:419
-#: lib/graphql/resolvers/person.ex:448
-#: lib/graphql/resolvers/person.ex:463
+#: lib/graphql/resolvers/person.ex:247
+#: lib/graphql/resolvers/person.ex:378
+#: lib/graphql/resolvers/person.ex:414
+#: lib/graphql/resolvers/person.ex:421
+#: lib/graphql/resolvers/person.ex:450
+#: lib/graphql/resolvers/person.ex:465
 #, elixir-autogen, elixir-format
 msgid "Profile is not owned by authenticated user"
 msgstr "Profiili ei ole tunnistautuneen käyttäjän omistuksessa"
@@ -178,43 +178,44 @@ msgstr "Profiili ei ole tunnistautuneen käyttäjän omistuksessa"
 msgid "Registrations are not open"
 msgstr "Ei voi rekisteröityä"
 
-#: lib/graphql/resolvers/user.ex:461
+#: lib/graphql/resolvers/user.ex:474
 #, elixir-autogen, elixir-format
 msgid "The current password is invalid"
 msgstr "Nykyinen salasana ei kelpaa"
 
-#: lib/graphql/resolvers/admin.ex:336
-#: lib/graphql/resolvers/user.ex:504
+#: lib/graphql/resolvers/admin.ex:334
+#: lib/graphql/resolvers/user.ex:527
 #, elixir-autogen, elixir-format
 msgid "The new email doesn't seem to be valid"
 msgstr "Uusi sähköpostiosoite ei vaikuta kelvolliselta"
 
-#: lib/graphql/resolvers/admin.ex:339
-#: lib/graphql/resolvers/user.ex:507
+#: lib/graphql/resolvers/admin.ex:323
+#: lib/graphql/resolvers/user.ex:514
 #, elixir-autogen, elixir-format
 msgid "The new email must be different"
 msgstr "Uuden sähköpostiosoitteen on poikettava vanhasta"
 
-#: lib/graphql/resolvers/user.ex:464
+#: lib/graphql/resolvers/user.ex:477
 #, elixir-autogen, elixir-format
 msgid "The new password must be different"
 msgstr "Uuden salasanan on poikettava vanhasta"
 
-#: lib/graphql/resolvers/user.ex:511
-#: lib/graphql/resolvers/user.ex:573
-#: lib/graphql/resolvers/user.ex:576
+#: lib/graphql/resolvers/user.ex:518
+#: lib/graphql/resolvers/user.ex:602
+#: lib/graphql/resolvers/user.ex:605
 #, elixir-autogen, elixir-format
 msgid "The password provided is invalid"
 msgstr "Annettu salasana on epäkelpo"
 
-#: lib/graphql/resolvers/user.ex:468
+#: lib/graphql/resolvers/user.ex:361
+#: lib/graphql/resolvers/user.ex:481
 #, elixir-autogen, elixir-format
 msgid "The password you have chosen is too short. Please make sure your password contains at least 6 characters."
 msgstr ""
 "Valitsemasi salasana on liian lyhyt. Käytä vähintään kuuden merkin mittaista "
 "salasanaa."
 
-#: lib/graphql/resolvers/user.ex:323
+#: lib/graphql/resolvers/user.ex:330
 #, elixir-autogen, elixir-format
 msgid "This user can't reset their password"
 msgstr "Käyttäjä ei voi palauttaa salasanaansa"
@@ -230,12 +231,12 @@ msgstr "Käyttäjä on poistettu käytöstä"
 msgid "Unable to validate user"
 msgstr "Käyttäjää ei voi vahvistaa"
 
-#: lib/graphql/resolvers/user.ex:554
+#: lib/graphql/resolvers/user.ex:583
 #, elixir-autogen, elixir-format
 msgid "User already disabled"
 msgstr "Käyttäjä on jo poistettu käytöstä"
 
-#: lib/graphql/resolvers/user.ex:619
+#: lib/graphql/resolvers/user.ex:648
 #, elixir-autogen, elixir-format
 msgid "User requested is not logged-in"
 msgstr "Pyydetty käyttäjä ei ole kirjautuneena sisään"
@@ -260,12 +261,12 @@ msgstr "Et voi liittyä tähän ryhmään"
 msgid "You may not list groups unless moderator."
 msgstr "Voit nähdä ryhmäluettelon vain, jos olet moderaattori."
 
-#: lib/graphql/resolvers/user.ex:519
+#: lib/graphql/resolvers/user.ex:503
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to change your email"
 msgstr "Sähköpostiosoitteen voi vaihtaa vain sisäänkirjautuneena"
 
-#: lib/graphql/resolvers/user.ex:476
+#: lib/graphql/resolvers/user.ex:489
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to change your password"
 msgstr "Salasanan voi vaihtaa vain sisäänkirjautuneena"
@@ -275,7 +276,7 @@ msgstr "Salasanan voi vaihtaa vain sisäänkirjautuneena"
 msgid "You need to be logged-in to delete a group"
 msgstr "Ryhmän voi poistaa vain sisäänkirjautuneena"
 
-#: lib/graphql/resolvers/user.ex:581
+#: lib/graphql/resolvers/user.ex:610
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to delete your account"
 msgstr "Voit poistaa tilisi vain sisäänkirjautuneena"
@@ -300,12 +301,6 @@ msgstr "Voit päivittää ryhmää vain sisäänkirjautuneena"
 msgid "You need to have an existing token to get a refresh token"
 msgstr "Voit saada uuden merkin vain, jos sinulla on jo merkki"
 
-#: lib/graphql/resolvers/user.ex:306
-#: lib/graphql/resolvers/user.ex:333
-#, elixir-autogen, elixir-format
-msgid "You requested again a confirmation email too soon"
-msgstr "Pyysit uutta vahvistussähköpostia liian aikaisin"
-
 #: lib/graphql/resolvers/user.ex:180
 #, elixir-autogen, elixir-format
 msgid "Your email is not on the allowlist"
@@ -358,17 +353,17 @@ msgstr "Palvelin vaatii kelvollisen sähköpostiosoitteen"
 msgid "Anonymous participation is not enabled"
 msgstr "Anonyymi osallistuminen ei ole käytössä"
 
-#: lib/graphql/resolvers/person.ex:219
+#: lib/graphql/resolvers/person.ex:221
 #, elixir-autogen, elixir-format
 msgid "Cannot remove the last administrator of a group"
 msgstr "Ryhmän viimeistä ylläpitäjää ei voi poistaa"
 
-#: lib/graphql/resolvers/person.ex:216
+#: lib/graphql/resolvers/person.ex:218
 #, elixir-autogen, elixir-format
 msgid "Cannot remove the last identity of a user"
 msgstr "Käyttäjän viimeistä identiteettiä ei voi poistaa"
 
-#: lib/graphql/resolvers/comment.ex:147
+#: lib/graphql/resolvers/comment.ex:153
 #, elixir-autogen, elixir-format
 msgid "Comment is already deleted"
 msgstr "Kommentti on jo poistettu"
@@ -396,8 +391,8 @@ msgid "Event id not found"
 msgstr "Tapahtumatunnistetta ei löydy"
 
 #: lib/graphql/error.ex:114
-#: lib/graphql/resolvers/event.ex:355
-#: lib/graphql/resolvers/event.ex:407
+#: lib/graphql/resolvers/event.ex:382
+#: lib/graphql/resolvers/event.ex:434
 #, elixir-autogen, elixir-format
 msgid "Event not found"
 msgstr "Tapahtumaa ei löydy"
@@ -405,7 +400,7 @@ msgstr "Tapahtumaa ei löydy"
 #: lib/graphql/resolvers/participant.ex:87
 #: lib/graphql/resolvers/participant.ex:128
 #: lib/graphql/resolvers/participant.ex:155
-#: lib/graphql/resolvers/participant.ex:336
+#: lib/graphql/resolvers/participant.ex:343
 #, elixir-autogen, elixir-format
 msgid "Event with this ID %{id} doesn't exist"
 msgstr "Tunnisteella %{id} ei ole tapahtumaa"
@@ -415,7 +410,7 @@ msgstr "Tunnisteella %{id} ei ole tapahtumaa"
 msgid "Internal Error"
 msgstr "Sisäinen virhe"
 
-#: lib/graphql/resolvers/discussion.ex:219
+#: lib/graphql/resolvers/discussion.ex:222
 #, elixir-autogen, elixir-format
 msgid "No discussion with ID %{id}"
 msgstr "Tunnisteella %{id} ei ole keskustelua"
@@ -482,10 +477,10 @@ msgstr "Profiili on jo ryhmän jäsen"
 #: lib/graphql/resolvers/post.ex:133
 #: lib/graphql/resolvers/post.ex:175
 #: lib/graphql/resolvers/post.ex:209
-#: lib/graphql/resolvers/resource.ex:90
-#: lib/graphql/resolvers/resource.ex:135
-#: lib/graphql/resolvers/resource.ex:168
-#: lib/graphql/resolvers/resource.ex:202
+#: lib/graphql/resolvers/resource.ex:92
+#: lib/graphql/resolvers/resource.ex:137
+#: lib/graphql/resolvers/resource.ex:170
+#: lib/graphql/resolvers/resource.ex:204
 #: lib/graphql/resolvers/todos.ex:58
 #: lib/graphql/resolvers/todos.ex:83
 #: lib/graphql/resolvers/todos.ex:110
@@ -497,7 +492,7 @@ msgid "Profile is not member of group"
 msgstr "Profiili ei ole ryhmän jäsen"
 
 #: lib/graphql/resolvers/actor.ex:67
-#: lib/graphql/resolvers/person.ex:242
+#: lib/graphql/resolvers/person.ex:244
 #, elixir-autogen, elixir-format
 msgid "Profile not found"
 msgstr "Profiilia ei löydy"
@@ -507,8 +502,8 @@ msgstr "Profiilia ei löydy"
 msgid "Report not found"
 msgstr "Raporttia ei löydy"
 
-#: lib/graphql/resolvers/resource.ex:172
-#: lib/graphql/resolvers/resource.ex:199
+#: lib/graphql/resolvers/resource.ex:174
+#: lib/graphql/resolvers/resource.ex:201
 #, elixir-autogen, elixir-format
 msgid "Resource doesn't exist"
 msgstr "Resurssia ei ole"
@@ -518,7 +513,7 @@ msgstr "Resurssia ei ole"
 msgid "The event has already reached its maximum capacity"
 msgstr "Tapahtuma on jo täynnä"
 
-#: lib/graphql/resolvers/participant.ex:282
+#: lib/graphql/resolvers/participant.ex:289
 #, elixir-autogen, elixir-format
 msgid "This token is invalid"
 msgstr "Epäkelpo merkki"
@@ -552,7 +547,7 @@ msgstr "Merkki ei ole kelvollinen UUID"
 msgid "User not found"
 msgstr "Käyttäjää ei löydy"
 
-#: lib/graphql/resolvers/person.ex:333
+#: lib/graphql/resolvers/person.ex:335
 #, elixir-autogen, elixir-format
 msgid "You already have a profile for this user"
 msgstr "Sinulla on jo profiili tälle käyttäjälle"
@@ -574,7 +569,7 @@ msgstr "Et ole ryhmän jäsen"
 msgid "You are not a moderator or admin for this group"
 msgstr "Et ole ryhmän moderaattori tai ylläpitäjä"
 
-#: lib/graphql/resolvers/comment.ex:80
+#: lib/graphql/resolvers/comment.ex:74
 #, elixir-autogen, elixir-format
 msgid "You are not allowed to create a comment if not connected"
 msgstr "Ilman yhteyttä ei voi kommentoida"
@@ -584,7 +579,7 @@ msgstr "Ilman yhteyttä ei voi kommentoida"
 msgid "You are not allowed to create a feed token if not connected"
 msgstr "Ilman yhteyttä ei voi luoda syötemerkkiä"
 
-#: lib/graphql/resolvers/comment.ex:155
+#: lib/graphql/resolvers/comment.ex:161
 #, elixir-autogen, elixir-format
 msgid "You are not allowed to delete a comment if not connected"
 msgstr "Ilman yhteyttä ei voi poistaa kommenttia"
@@ -594,7 +589,7 @@ msgstr "Ilman yhteyttä ei voi poistaa kommenttia"
 msgid "You are not allowed to delete a feed token if not connected"
 msgstr "Ilman yhteyttä ei voi poistaa syötemerkkiä"
 
-#: lib/graphql/resolvers/comment.ex:114
+#: lib/graphql/resolvers/comment.ex:120
 #, elixir-autogen, elixir-format
 msgid "You are not allowed to update a comment if not connected"
 msgstr "Ilman yhteyttä ei voi päivittää kommenttia"
@@ -613,12 +608,12 @@ msgstr ""
 "Et voi vaihtaa jäsenrooliasi ryhmässä nykyistä alemmaksi, koska olet ainoa "
 "ylläpitäjä"
 
-#: lib/graphql/resolvers/comment.ex:143
+#: lib/graphql/resolvers/comment.ex:149
 #, elixir-autogen, elixir-format
 msgid "You cannot delete this comment"
 msgstr "Et voi poistaa kommenttia"
 
-#: lib/graphql/resolvers/event.ex:403
+#: lib/graphql/resolvers/event.ex:430
 #, elixir-autogen, elixir-format
 msgid "You cannot delete this event"
 msgstr "Et voi poistaa tapahtumaa"
@@ -653,17 +648,17 @@ msgstr "Raportin päivittäminen vain moderaattorille sisäänkirjautuneena"
 msgid "You need to be logged-in and a moderator to view a report"
 msgstr "Raportin katselu vain moderaattorille sisäänkirjautuneena"
 
-#: lib/graphql/resolvers/admin.ex:252
+#: lib/graphql/resolvers/admin.ex:258
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in and an administrator to access admin settings"
 msgstr "Pääsy ylläpitoasetuksiin vain ylläpitäjälle sisäänkirjautuneena"
 
-#: lib/graphql/resolvers/admin.ex:236
+#: lib/graphql/resolvers/admin.ex:242
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in and an administrator to access dashboard statistics"
 msgstr "Pääsy koontinäytön tilastoihin vain ylläpitäjälle sisäänkirjautuneena"
 
-#: lib/graphql/resolvers/admin.ex:278
+#: lib/graphql/resolvers/admin.ex:283
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in and an administrator to save admin settings"
 msgstr "Ylläpitoasetusten tallennus vain ylläpitäjälle sisäänkirjautuneena"
@@ -673,12 +668,12 @@ msgstr "Ylläpitoasetusten tallennus vain ylläpitäjälle sisäänkirjautuneena
 msgid "You need to be logged-in to access discussions"
 msgstr "Pääsy keskusteluihin vain sisäänkirjautuneena"
 
-#: lib/graphql/resolvers/resource.ex:96
+#: lib/graphql/resolvers/resource.ex:98
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to access resources"
 msgstr "Pääsy resursseihin vain sisäänkirjautuneena"
 
-#: lib/graphql/resolvers/event.ex:313
+#: lib/graphql/resolvers/event.ex:321
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to create events"
 msgstr "Tapahtumien luonti vain sisäänkirjautuneena"
@@ -693,12 +688,12 @@ msgstr "Julkaisujen luonti vain sisäänkirjautuneena"
 msgid "You need to be logged-in to create reports"
 msgstr "Raporttien luonti vain sisäänkirjautuneena"
 
-#: lib/graphql/resolvers/resource.ex:140
+#: lib/graphql/resolvers/resource.ex:142
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to create resources"
 msgstr "Resurssien luonti vain sisäänkirjautuneena"
 
-#: lib/graphql/resolvers/event.ex:412
+#: lib/graphql/resolvers/event.ex:439
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to delete an event"
 msgstr "Tapahtuman poisto vain sisäänkirjautuneena"
@@ -708,7 +703,7 @@ msgstr "Tapahtuman poisto vain sisäänkirjautuneena"
 msgid "You need to be logged-in to delete posts"
 msgstr "Julkaisujen poisto vain sisäänkirjautuneena"
 
-#: lib/graphql/resolvers/resource.ex:207
+#: lib/graphql/resolvers/resource.ex:209
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to delete resources"
 msgstr "Resurssien poisto vain sisäänkirjautuneena"
@@ -723,7 +718,7 @@ msgstr "Tapahtumaan liittyminen vain sisäänkirjautuneena"
 msgid "You need to be logged-in to leave an event"
 msgstr "Tapahtumasta poistuminen vain sisäänkirjautuneena"
 
-#: lib/graphql/resolvers/event.ex:369
+#: lib/graphql/resolvers/event.ex:396
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to update an event"
 msgstr "Tapahtuman päivittäminen vain sisäänkirjautuneena"
@@ -733,17 +728,17 @@ msgstr "Tapahtuman päivittäminen vain sisäänkirjautuneena"
 msgid "You need to be logged-in to update posts"
 msgstr "Julkaisujen päivittäminen vain sisäänkirjautuneena"
 
-#: lib/graphql/resolvers/resource.ex:177
+#: lib/graphql/resolvers/resource.ex:179
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to update resources"
 msgstr "Resurssien päivittäminen vain sisäänkirjautuneena"
 
-#: lib/graphql/resolvers/resource.ex:236
+#: lib/graphql/resolvers/resource.ex:233
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to view a resource preview"
 msgstr "Resurssin esikatselu vain sisäänkirjautuneena"
 
-#: lib/graphql/resolvers/resource.ex:132
+#: lib/graphql/resolvers/resource.ex:134
 #, elixir-autogen, elixir-format
 msgid "Parent resource doesn't belong to this group"
 msgstr "Ylätason resurssi ei kuulu tähän ryhmään"
@@ -829,12 +824,12 @@ msgstr "Tiedostolla ei ole sallittua MIME-tyyppiä."
 msgid "Profile is not administrator for the group"
 msgstr "Profiili ei ole ryhmän ylläpitäjä"
 
-#: lib/graphql/resolvers/event.ex:358
+#: lib/graphql/resolvers/event.ex:385
 #, elixir-autogen, elixir-format
 msgid "You can't edit this event."
 msgstr "Et voi muokata tapahtumaa."
 
-#: lib/graphql/resolvers/event.ex:361
+#: lib/graphql/resolvers/event.ex:388
 #, elixir-autogen, elixir-format
 msgid "You can't attribute this event to this profile."
 msgstr "Et voi yhdistää tapahtumaa tähän profiiliin."
@@ -854,7 +849,7 @@ msgstr "Jäsen on jo hylätty."
 msgid "You don't have the right to remove this member."
 msgstr "Sinulla ei ole oikeutta poistaa jäsentä."
 
-#: lib/mobilizon/actors/actor.ex:377
+#: lib/mobilizon/actors/actor.ex:378
 #, elixir-autogen, elixir-format
 msgid "This username is already taken."
 msgstr "Käyttäjänimi on jo käytössä."
@@ -864,7 +859,7 @@ msgstr "Käyttäjänimi on jo käytössä."
 msgid "You must provide either an ID or a slug to access a discussion"
 msgstr "Keskusteluun pääsemiseen vaaditaan tunniste tai polkutunnus"
 
-#: lib/graphql/resolvers/event.ex:275
+#: lib/graphql/resolvers/event.ex:276
 #, elixir-autogen, elixir-format
 msgid "Organizer profile is not owned by the user"
 msgstr "Järjestäjän profiili ei ole käyttäjän hallussa"
@@ -876,41 +871,41 @@ msgstr "Annettu profiilitunniste ei kuulu anonyymille profiilille"
 
 #: lib/graphql/resolvers/group.ex:181
 #: lib/graphql/resolvers/group.ex:223
-#: lib/graphql/resolvers/person.ex:157
-#: lib/graphql/resolvers/person.ex:191
-#: lib/graphql/resolvers/person.ex:324
+#: lib/graphql/resolvers/person.ex:159
+#: lib/graphql/resolvers/person.ex:193
+#: lib/graphql/resolvers/person.ex:326
 #, elixir-autogen, elixir-format
 msgid "The provided picture is too heavy"
 msgstr "Toimitettu kuva on liian suuri"
 
-#: lib/graphql/resolvers/resource.ex:129
+#: lib/graphql/resolvers/resource.ex:131
 #, elixir-autogen, elixir-format
 msgid "Error while creating resource"
 msgstr "Virhe raporttia tallennettaessa"
 
-#: lib/graphql/resolvers/user.ex:537
+#: lib/graphql/resolvers/user.ex:566
 #, elixir-autogen, elixir-format
 msgid "Invalid activation token"
 msgstr "Virheellinen aktivointimerkki"
 
-#: lib/graphql/resolvers/resource.ex:226
+#: lib/graphql/resolvers/resource.ex:228
 #, elixir-autogen, elixir-format
 msgid "Unable to fetch resource details from this URL."
 msgstr "Resurssin tietoja ei voida hakea tästä URL-osoitteesta."
 
 #: lib/graphql/resolvers/event.ex:165
 #: lib/graphql/resolvers/participant.ex:253
-#: lib/graphql/resolvers/participant.ex:328
+#: lib/graphql/resolvers/participant.ex:335
 #, elixir-autogen, elixir-format
 msgid "Provided profile doesn't have moderator permissions on this event"
 msgstr "Annetulla moderaattoriprofiililla ei ole oikeuksia tähän tapahtumaan"
 
-#: lib/graphql/resolvers/event.ex:286
+#: lib/graphql/resolvers/event.ex:294
 #, elixir-autogen, elixir-format
 msgid "Organizer profile doesn't have permission to create an event on behalf of this group"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:349
+#: lib/graphql/resolvers/event.ex:369
 #, elixir-autogen, elixir-format
 msgid "This profile doesn't have permission to update an event on behalf of this group"
 msgstr ""
@@ -920,7 +915,7 @@ msgstr ""
 msgid "Your e-mail has been denied registration or uses a disallowed e-mail provider"
 msgstr ""
 
-#: lib/graphql/resolvers/comment.ex:150
+#: lib/graphql/resolvers/comment.ex:156
 #, elixir-autogen, elixir-format
 msgid "Comment not found"
 msgstr "Tapahtumaa ei löydy"
@@ -930,12 +925,12 @@ msgstr "Tapahtumaa ei löydy"
 msgid "Error while creating a discussion"
 msgstr "Virhe raporttia tallennettaessa"
 
-#: lib/graphql/resolvers/user.ex:658
+#: lib/graphql/resolvers/user.ex:687
 #, elixir-autogen, elixir-format
 msgid "Error while updating locale"
 msgstr "Virhe raporttia päivitettäessä"
 
-#: lib/graphql/resolvers/person.ex:327
+#: lib/graphql/resolvers/person.ex:329
 #, elixir-autogen, elixir-format
 msgid "Error while uploading pictures"
 msgstr "Virhe raporttia päivitettäessä"
@@ -950,13 +945,13 @@ msgstr ""
 msgid "Failed to update the group"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:333
-#: lib/graphql/resolvers/user.ex:501
+#: lib/graphql/resolvers/admin.ex:357
+#: lib/graphql/resolvers/user.ex:547
 #, elixir-autogen, elixir-format
 msgid "Failed to update user email"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:533
+#: lib/graphql/resolvers/user.ex:562
 #, elixir-autogen, elixir-format
 msgid "Failed to validate user email"
 msgstr "Käyttäjää ei voi vahvistaa"
@@ -966,37 +961,37 @@ msgstr "Käyttäjää ei voi vahvistaa"
 msgid "The anonymous actor ID is invalid"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:165
+#: lib/graphql/resolvers/resource.ex:167
 #, elixir-autogen, elixir-format
 msgid "Unknown error while updating resource"
 msgstr ""
 
-#: lib/graphql/resolvers/comment.ex:105
+#: lib/graphql/resolvers/comment.ex:111
 #, elixir-autogen, elixir-format
 msgid "You are not the comment creator"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:458
+#: lib/graphql/resolvers/user.ex:471
 #, elixir-autogen, elixir-format
 msgid "You cannot change your password."
 msgstr ""
 
-#: lib/graphql/resolvers/participant.ex:321
+#: lib/graphql/resolvers/participant.ex:328
 #, elixir-autogen, elixir-format
 msgid "Format not supported"
 msgstr ""
 
-#: lib/graphql/resolvers/participant.ex:305
+#: lib/graphql/resolvers/participant.ex:312
 #, elixir-autogen, elixir-format
 msgid "A dependency needed to export to %{format} is not installed"
 msgstr ""
 
-#: lib/graphql/resolvers/participant.ex:313
+#: lib/graphql/resolvers/participant.ex:320
 #, elixir-autogen, elixir-format
 msgid "An error occured while saving export"
 msgstr ""
 
-#: lib/web/controllers/export_controller.ex:30
+#: lib/web/controllers/export_controller.ex:32
 #, elixir-autogen, elixir-format
 msgid "Export to format %{format} is not enabled on this instance"
 msgstr ""
@@ -1006,17 +1001,17 @@ msgstr ""
 msgid "Only admins can create groups"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:279
+#: lib/graphql/resolvers/event.ex:280
 #, elixir-autogen, elixir-format
 msgid "Only groups can create events"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:305
+#: lib/graphql/resolvers/event.ex:313
 #, elixir-autogen, elixir-format
 msgid "Unknown error while creating event"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:514
+#: lib/graphql/resolvers/user.ex:498
 #, elixir-autogen, elixir-format
 msgid "User cannot change email"
 msgstr ""
@@ -1031,12 +1026,12 @@ msgstr ""
 msgid "Follow not found"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:379
+#: lib/graphql/resolvers/user.ex:392
 #, elixir-autogen, elixir-format
 msgid "Profile with username %{username} not found"
 msgstr "Käyttäjänimellä %{username} ei löydy henkilöä"
 
-#: lib/graphql/resolvers/user.ex:374
+#: lib/graphql/resolvers/user.ex:387
 #, elixir-autogen, elixir-format
 msgid "This profile does not belong to you"
 msgstr ""
@@ -1081,22 +1076,22 @@ msgstr ""
 msgid "Your email seems to be using an invalid format"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:382
+#: lib/graphql/resolvers/admin.ex:399
 #, elixir-autogen, elixir-format
 msgid "Can't confirm an already confirmed user"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:386
+#: lib/graphql/resolvers/admin.ex:403
 #, elixir-autogen, elixir-format
 msgid "Deconfirming users is not supported"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:358
+#: lib/graphql/resolvers/admin.ex:375
 #, elixir-autogen, elixir-format, fuzzy
 msgid "The new role must be different"
 msgstr "Uuden sähköpostiosoitteen on poikettava vanhasta"
 
-#: lib/graphql/resolvers/admin.ex:309
+#: lib/graphql/resolvers/admin.ex:314
 #, elixir-autogen, elixir-format, fuzzy
 msgid "You need to be logged-in and an administrator to edit an user's details"
 msgstr "Ylläpitoasetusten tallennus vain ylläpitäjälle sisäänkirjautuneena"
@@ -1106,28 +1101,28 @@ msgstr "Ylläpitoasetusten tallennus vain ylläpitäjälle sisäänkirjautuneena
 msgid "A profile or group with that name already exists"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:519
+#: lib/graphql/resolvers/admin.ex:542
 #, elixir-autogen, elixir-format
 msgid "Unable to find an instance to follow at this address"
 msgstr ""
 
-#: lib/mobilizon/actors/actor.ex:396
+#: lib/mobilizon/actors/actor.ex:397
 #, elixir-autogen, elixir-format
 msgid "Username must only contain alphanumeric lowercased characters and underscores."
 msgstr ""
 
 #: lib/graphql/resolvers/user.ex:303
-#: lib/graphql/resolvers/user.ex:326
+#: lib/graphql/resolvers/user.ex:333
 #, elixir-autogen, elixir-format, fuzzy
 msgid "This email doesn't seem to be valid"
 msgstr "Uusi sähköpostiosoite ei vaikuta kelvolliselta"
 
-#: lib/graphql/resolvers/comment.ex:65
+#: lib/graphql/resolvers/comment.ex:59
 #, elixir-autogen, elixir-format
 msgid "This comment was detected as spam."
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:293
+#: lib/graphql/resolvers/event.ex:301
 #, elixir-autogen, elixir-format
 msgid "This event was detected as spam."
 msgstr ""
@@ -1148,7 +1143,7 @@ msgstr ""
 msgid "You need to be a moderator or an administrator to create a note on a report"
 msgstr ""
 
-#: lib/graphql/resolvers/person.ex:330
+#: lib/graphql/resolvers/person.ex:332
 #, elixir-autogen, elixir-format
 msgid "Your profile was detected as spam."
 msgstr ""
@@ -1158,7 +1153,7 @@ msgstr ""
 msgid "Your registration has been detected as spam and cannot be processed."
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:86
+#: lib/web/controllers/application_controller.ex:88
 #, elixir-autogen, elixir-format
 msgid "All of name, scope and redirect_uri parameters are required to create an application"
 msgstr ""
@@ -1173,171 +1168,227 @@ msgstr ""
 msgid "Application token not found"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:89
+#: lib/graphql/resolvers/application.ex:90
 #, elixir-autogen, elixir-format, fuzzy
 msgid "Error while revoking token"
 msgstr "Virhe raporttia tallennettaessa"
 
-#: lib/web/controllers/application_controller.ex:59
+#: lib/web/controllers/application_controller.ex:61
 #, elixir-autogen, elixir-format
 msgid "Impossible to create application."
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:356
+#: lib/web/controllers/application_controller.ex:358
 #, elixir-autogen, elixir-format
 msgid "Incorrect parameters sent. You need to provide at least the grant_type and client_id parameters, depending on the grant type being used."
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:329
+#: lib/web/controllers/application_controller.ex:331
 #, elixir-autogen, elixir-format
 msgid "Invalid client credentials provided"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:337
+#: lib/web/controllers/application_controller.ex:339
 #, elixir-autogen, elixir-format
 msgid "Invalid refresh token provided"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:170
-#: lib/web/controllers/application_controller.ex:401
+#: lib/web/controllers/application_controller.ex:172
+#: lib/web/controllers/application_controller.ex:403
 #, elixir-autogen, elixir-format
 msgid "No application was found with this client_id"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:37
+#: lib/graphql/resolvers/application.ex:38
 #, elixir-autogen, elixir-format
 msgid "No application with this client_id was found"
 msgstr ""
 
-#: lib/graphql/authorization.ex:80
+#: lib/graphql/authorization.ex:81
 #, elixir-autogen, elixir-format
 msgid "Not authorized to access field %{field}"
 msgstr ""
 
-#: lib/graphql/authorization.ex:70
-#: lib/graphql/authorization.ex:75
+#: lib/graphql/authorization.ex:71
+#: lib/graphql/authorization.ex:76
 #, elixir-autogen, elixir-format
 msgid "Not authorized to access object %{object}"
 msgstr ""
 
-#: lib/graphql/authorization.ex:63
+#: lib/graphql/authorization.ex:64
 #, elixir-autogen, elixir-format
 msgid "Not authorized to access this %{object_type}"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:279
+#: lib/web/controllers/application_controller.ex:281
 #, elixir-autogen, elixir-format
 msgid "Please slow down the rate of your requests"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:267
+#: lib/web/controllers/application_controller.ex:269
 #, elixir-autogen, elixir-format
 msgid "The authorization request is still pending"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:249
+#: lib/web/controllers/application_controller.ex:251
 #, elixir-autogen, elixir-format
 msgid "The client_id provided or the device_code associated is invalid"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:133
+#: lib/graphql/resolvers/application.ex:139
 #, elixir-autogen, elixir-format
 msgid "The device user code was not provided before approving the application"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:304
+#: lib/web/controllers/application_controller.ex:306
 #, elixir-autogen, elixir-format
 msgid "The given device_code has expired"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:44
+#: lib/graphql/resolvers/application.ex:45
 #, elixir-autogen, elixir-format
 msgid "The given redirect_uri is not in the list of allowed redirect URIs"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:158
+#: lib/web/controllers/application_controller.ex:160
 #, elixir-autogen, elixir-format
 msgid "The given scope is not in the list of the app declared scopes"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:109
-#: lib/graphql/resolvers/application.ex:146
+#: lib/graphql/resolvers/application.ex:112
+#: lib/graphql/resolvers/application.ex:154
 #, elixir-autogen, elixir-format
 msgid "The given user code has expired"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:112
-#: lib/graphql/resolvers/application.ex:140
+#: lib/graphql/resolvers/application.ex:118
+#: lib/graphql/resolvers/application.ex:146
 #, elixir-autogen, elixir-format
 msgid "The given user code is invalid"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:411
+#: lib/web/controllers/application_controller.ex:413
 #, elixir-autogen, elixir-format
 msgid "The provided client_id does not match the provided code"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:414
+#: lib/web/controllers/application_controller.ex:416
 #, elixir-autogen, elixir-format
 msgid "The provided client_secret is invalid"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:407
+#: lib/web/controllers/application_controller.ex:409
 #, elixir-autogen, elixir-format
 msgid "The provided code is invalid or expired"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:418
+#: lib/web/controllers/application_controller.ex:420
 #, elixir-autogen, elixir-format
 msgid "The provided scope is invalid or not included in the app declared scopes"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:45
+#: lib/web/controllers/application_controller.ex:47
 #, elixir-autogen, elixir-format
 msgid "The scope parameter is not a space separated list of valid scopes"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:292
+#: lib/web/controllers/application_controller.ex:294
 #, elixir-autogen, elixir-format
 msgid "The user rejected the requested authorization"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:404
+#: lib/web/controllers/application_controller.ex:406
 #, elixir-autogen, elixir-format
 msgid "This redirect URI is not allowed"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:381
+#: lib/web/controllers/application_controller.ex:383
 #, elixir-autogen, elixir-format, fuzzy
 msgid "Token not found"
 msgstr "Tapahtumaa ei löydy"
 
-#: lib/web/controllers/application_controller.ex:72
+#: lib/web/controllers/application_controller.ex:74
 #, elixir-autogen, elixir-format
 msgid "Too many requests"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:184
+#: lib/web/controllers/application_controller.ex:186
 #, elixir-autogen, elixir-format
 msgid "Unable to produce device code"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:373
+#: lib/web/controllers/application_controller.ex:375
 #, elixir-autogen, elixir-format
 msgid "Unable to revoke token"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:198
+#: lib/web/controllers/application_controller.ex:200
 #, elixir-autogen, elixir-format
 msgid "You need to pass both client_id and scope as parameters to obtain a device code"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:136
+#: lib/web/controllers/application_controller.ex:138
 #, elixir-autogen, elixir-format
 msgid "You need to provide a valid redirect_uri to autorize an application"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:126
+#: lib/web/controllers/application_controller.ex:128
 #, elixir-autogen, elixir-format
 msgid "You need to specify client_id, redirect_uri, scope and state to autorize an application"
 msgstr ""
+
+#: lib/graphql/resolvers/user.ex:306
+#, elixir-autogen, elixir-format
+msgid "Couldn't send an email. Internal error."
+msgstr ""
+
+#: lib/graphql/resolvers/participant.ex:286
+#, elixir-autogen, elixir-format
+msgid "Participation is already confirmed"
+msgstr ""
+
+#: lib/graphql/resolvers/participant.ex:283
+#, elixir-autogen, elixir-format
+msgid "Participation is confirmed but not approved yet by an organizer"
+msgstr ""
+
+#: lib/graphql/resolvers/event.ex:287
+#: lib/graphql/resolvers/event.ex:376
+#, elixir-autogen, elixir-format
+msgid "Providing external registration is not allowed"
+msgstr ""
+
+#: lib/graphql/resolvers/push_subscription.ex:48
+#, elixir-autogen, elixir-format
+msgid "The same push subscription has already been registered"
+msgstr ""
+
+#: lib/graphql/resolvers/admin.ex:536
+#, elixir-autogen, elixir-format
+msgid "This instance is pending follow approval"
+msgstr ""
+
+#: lib/graphql/schema/custom/timezone.ex:23
+#, elixir-autogen, elixir-format
+msgid "Timezone ID %{timezone} is invalid"
+msgstr ""
+
+#: lib/graphql/resolvers/admin.ex:539
+#, elixir-autogen, elixir-format, fuzzy
+msgid "You are already following this instance"
+msgstr ""
+
+#: lib/graphql/resolvers/user.ex:310
+#, elixir-autogen, elixir-format, fuzzy
+msgid "You requested again a confirmation email too soon. Please try again in a few minutes"
+msgstr "Pyysit uutta vahvistussähköpostia liian aikaisin"
+
+#: lib/graphql/resolvers/user.ex:341
+#, elixir-autogen, elixir-format
+msgid "You requested again a password reset email too soon. Please try again in a few minutes"
+msgstr ""
+
+#: lib/graphql/resolvers/user.ex:368
+#, elixir-autogen, elixir-format
+msgid "The token you provided is invalid. Make sure that the URL is exactly the one provided inside the email you got."
+msgstr ""
diff --git a/priv/gettext/fr/LC_MESSAGES/activity.po b/priv/gettext/fr/LC_MESSAGES/activity.po
index 378b8790c2050cfada6df55f6f3c5366ca9fb7c6..583d843c6b4d4444a350ff93e65e1245ce829a43 100644
--- a/priv/gettext/fr/LC_MESSAGES/activity.po
+++ b/priv/gettext/fr/LC_MESSAGES/activity.po
@@ -466,3 +466,15 @@ msgstr "%{profile} a répondu à la discussion %{discussion} du groupe %{group}.
 #, elixir-autogen, elixir-format
 msgid "%{profile} approved the member %{member}."
 msgstr "%{profile} a ajouté le ou la membre %{member}."
+
+#: lib/service/activity/renderer/event.ex:74
+#: lib/web/templates/email/activity/_event_activity_item.html.heex:55
+#: lib/web/templates/email/activity/_event_activity_item.text.eex:31
+#, elixir-autogen, elixir-format
+msgid "%{profile} joined your event %{event}."
+msgstr ""
+
+#: lib/web/views/email_view.ex:45
+#, elixir-autogen, elixir-format
+msgid "An anonymous profile"
+msgstr ""
diff --git a/priv/gettext/fr/LC_MESSAGES/default.po b/priv/gettext/fr/LC_MESSAGES/default.po
index 24bd1fb06d4276784c090454db09fbef86514f5f..9ce7f122ecd4a57d3d2e2be36fb6bb0b54074d0d 100644
--- a/priv/gettext/fr/LC_MESSAGES/default.po
+++ b/priv/gettext/fr/LC_MESSAGES/default.po
@@ -29,7 +29,7 @@ msgstr ""
 "passe ne changera pas tant que vous n'en créerez pas un nouveau en cliquant "
 "sur le lien ci-dessous."
 
-#: lib/web/templates/email/report.html.heex:120
+#: lib/web/templates/email/report.html.heex:121
 #, elixir-autogen, elixir-format
 msgid "%{title} by %{creator}"
 msgstr "%{title} par %{creator}"
@@ -45,23 +45,17 @@ msgstr "Activer mon compte"
 msgid "Ask the community on Framacolibri"
 msgstr "Demander à la communauté sur Framacolibri"
 
-#: lib/web/templates/email/report.text.eex:15
+#: lib/web/templates/email/report.text.eex:17
 #, elixir-autogen, elixir-format
 msgid "Comments"
 msgstr "Commentaires"
 
-#: lib/web/templates/email/report.html.heex:115
-#: lib/web/templates/email/report.text.eex:11
-#, elixir-autogen, elixir-format
-msgid "Event"
-msgstr "Événement"
-
 #: lib/web/email/user.ex:49
 #, elixir-autogen, elixir-format
 msgid "Instructions to reset your password on %{instance}"
 msgstr "Instructions pour réinitialiser votre mot de passe sur %{instance}"
 
-#: lib/web/templates/email/report.text.eex:21
+#: lib/web/templates/email/report.text.eex:23
 #, elixir-autogen, elixir-format
 msgid "Reason"
 msgstr "Raison"
@@ -367,12 +361,12 @@ msgctxt "terms"
 msgid "What information do we collect?"
 msgstr "Quelles informations collectons-nous ?"
 
-#: lib/web/email/user.ex:182
+#: lib/web/email/user.ex:188
 #, elixir-autogen, elixir-format
 msgid "Mobilizon on %{instance}: confirm your email address"
 msgstr "Mobilizon sur %{instance} : confirmez votre adresse email"
 
-#: lib/web/email/user.ex:159
+#: lib/web/email/user.ex:165
 #, elixir-autogen, elixir-format
 msgid "Mobilizon on %{instance}: email changed"
 msgstr "Mobilizon sur %{instance} : adresse email modifiée"
@@ -1020,7 +1014,7 @@ msgstr "Fin"
 msgid "Event update!"
 msgstr "Événement mis à jour !"
 
-#: lib/web/templates/email/report.html.heex:155
+#: lib/web/templates/email/report.html.heex:158
 #, elixir-autogen, elixir-format
 msgid "Flagged comments"
 msgstr "Commentaires signalés"
@@ -1123,7 +1117,7 @@ msgstr "Vous y êtes presque !"
 msgid "New email confirmation"
 msgstr "Confirmation de nouvel e-mail"
 
-#: lib/web/templates/email/report.html.heex:191
+#: lib/web/templates/email/report.html.heex:194
 #, elixir-autogen, elixir-format
 msgid "Reasons for report"
 msgstr "Raisons du signalement"
@@ -1184,12 +1178,12 @@ msgstr ""
 msgid "Verify your email address"
 msgstr "Vérifier l'adresse email"
 
-#: lib/web/templates/email/report.html.heex:232
+#: lib/web/templates/email/report.html.heex:235
 #, elixir-autogen, elixir-format
 msgid "View report"
 msgstr "Voir le signalement"
 
-#: lib/web/templates/email/report.text.eex:24
+#: lib/web/templates/email/report.text.eex:26
 #, elixir-autogen, elixir-format
 msgid "View report:"
 msgstr "Voir le signalement :"
@@ -1305,14 +1299,6 @@ msgstr ""
 "Comme ce groupe était originaire d'une autre instance, il continuera à "
 "fonctionner pour d'autres instances que celle-ci."
 
-#: lib/web/templates/email/group_suspension.html.heex:67
-#: lib/web/templates/email/group_suspension.text.eex:5
-#, elixir-autogen, elixir-format
-msgid "As this group was located on this instance, all of it's data has been irretrievably deleted."
-msgstr ""
-"Comme ce groupe était originaire de cette instance, toutes ses données ont "
-"été irrémédiablement détruites."
-
 #: lib/web/templates/email/group_suspension.html.heex:18
 #: lib/web/templates/email/group_suspension.text.eex:1
 #, elixir-autogen, elixir-format
@@ -1326,7 +1312,7 @@ msgstr ""
 "L'équipe de modération de votre instance a décidé de suspendre %{group_name} "
 "(%{group_address}). Vous n'êtes désormais plus membre de ce groupe."
 
-#: lib/web/email/group.ex:107
+#: lib/web/email/group.ex:108
 #, elixir-autogen, elixir-format
 msgid "The group %{group} has been suspended on %{instance}"
 msgstr "Le groupe %{group} a été suspendu sur %{instance}"
@@ -1713,20 +1699,6 @@ msgstr ""
 msgid "Public feed for %{instance}"
 msgstr "Flux public pour %{instance}"
 
-#: lib/graphql/resolvers/user.ex:350
-#, elixir-autogen, elixir-format
-msgid "The password you have choosen is too short. Please make sure your password contains at least 6 charaters."
-msgstr ""
-"Le mot de passe que vous avez choisi est trop court. Assurez-vous que votre "
-"mot de passe contienne au moins 6 caractères."
-
-#: lib/graphql/resolvers/user.ex:356
-#, elixir-autogen, elixir-format
-msgid "The token you provided is invalid. Make sure that the URL is exactly the one provided inside the email you got."
-msgstr ""
-"Le jeton que vous avez fourni est invalide. Assurez-vous que l'URL est "
-"exactement la même que celle contenue dans le message que vous avez reçu."
-
 #: lib/web/email/actor.ex:43
 #, elixir-autogen, elixir-format
 msgid "Your participation to %{event} has been cancelled!"
@@ -1757,63 +1729,63 @@ msgstr ""
 "Votre participation à l'événement %{event} sur %{instance} a été annulée !"
 
 #. File name template for exported list of participants. Should NOT contain spaces. Make sure the output is going to be something standardized that is acceptable as a file name on most systems.
-#: lib/service/export/participants/csv.ex:81
+#: lib/service/export/participants/csv.ex:97
 #: lib/service/export/participants/ods.ex:86
 #: lib/service/export/participants/pdf.ex:96
 #, elixir-autogen, elixir-format
 msgid "%{event}_participants"
 msgstr "%{event}_participants"
 
-#: lib/service/export/participants/common.ex:61
+#: lib/service/export/participants/common.ex:66
 #, elixir-autogen, elixir-format
 msgid "Participant message"
 msgstr "Message du participant"
 
-#: lib/service/export/participants/common.ex:61
+#: lib/service/export/participants/common.ex:63
 #, elixir-autogen, elixir-format
 msgid "Participant name"
 msgstr "Nom du participant"
 
-#: lib/service/export/participants/common.ex:61
+#: lib/service/export/participants/common.ex:64
 #, elixir-autogen, elixir-format
 msgid "Participant status"
 msgstr "Statut du participant"
 
-#: lib/service/export/participants/common.ex:52
+#: lib/service/export/participants/common.ex:53
 #: lib/web/templates/email/admin/_role.html.heex:3
 #: lib/web/templates/email/admin/_role.text.eex:1
 #, elixir-autogen, elixir-format
 msgid "Administrator"
 msgstr "Administrateurâ‹…ice"
 
-#: lib/service/export/participants/common.ex:55
+#: lib/service/export/participants/common.ex:56
 #, elixir-autogen, elixir-format
 msgid "Creator"
 msgstr "Créateur⋅ice"
 
-#: lib/service/export/participants/common.ex:49
+#: lib/service/export/participants/common.ex:50
 #: lib/web/templates/email/admin/_role.html.heex:5
 #: lib/web/templates/email/admin/_role.text.eex:1
 #, elixir-autogen, elixir-format
 msgid "Moderator"
 msgstr "Modérateur⋅ice"
 
-#: lib/service/export/participants/common.ex:37
+#: lib/service/export/participants/common.ex:38
 #, elixir-autogen, elixir-format
 msgid "Not approved"
 msgstr "Non approuvé⋅e"
 
-#: lib/service/export/participants/common.ex:40
+#: lib/service/export/participants/common.ex:41
 #, elixir-autogen, elixir-format
 msgid "Not confirmed"
 msgstr "Non confirmé⋅e"
 
-#: lib/service/export/participants/common.ex:46
+#: lib/service/export/participants/common.ex:47
 #, elixir-autogen, elixir-format
 msgid "Participant"
 msgstr "Participantâ‹…e"
 
-#: lib/service/export/participants/common.ex:43
+#: lib/service/export/participants/common.ex:44
 #, elixir-autogen, elixir-format
 msgid "Rejected"
 msgstr "Rejeté⋅e"
@@ -1838,7 +1810,7 @@ msgstr "Nombre de participantâ‹…es"
 msgid "Participants for %{event}"
 msgstr "Participantâ‹…es pour %{event}"
 
-#: lib/service/export/participants/common.ex:88
+#: lib/service/export/participants/common.ex:95
 #, elixir-autogen, elixir-format
 msgid "Anonymous participant"
 msgstr "Participantâ‹…e anonyme"
@@ -1957,7 +1929,7 @@ msgstr "Participer :"
 msgid "Title: %{title}"
 msgstr "Titre : %{title}"
 
-#: lib/web/email/group.ex:46
+#: lib/web/email/group.ex:47
 #, elixir-autogen, elixir-format
 msgid "📅 Just scheduled by %{group}: %{event}"
 msgstr "📅 Programmé à l'instant par %{group} : %{event}"
@@ -2420,3 +2392,26 @@ msgstr ""
 #, elixir-autogen, elixir-format
 msgid "Until next time!"
 msgstr "À la prochaine fois !"
+
+#: lib/web/templates/email/group_suspension.html.heex:67
+#: lib/web/templates/email/group_suspension.text.eex:5
+#, elixir-autogen, elixir-format, fuzzy
+msgid "As this group was located on this instance, all of its data has been irretrievably deleted."
+msgstr ""
+"Comme ce groupe était originaire de cette instance, toutes ses données ont "
+"été irrémédiablement détruites."
+
+#: lib/web/templates/email/report.text.eex:11
+#, elixir-autogen, elixir-format, fuzzy
+msgid "Events"
+msgstr "Événement"
+
+#: lib/web/templates/email/report.html.heex:115
+#, elixir-autogen, elixir-format, fuzzy
+msgid "Flagged events"
+msgstr "Commentaires signalés"
+
+#: lib/service/export/participants/common.ex:65
+#, elixir-autogen, elixir-format, fuzzy
+msgid "Participant registration date"
+msgstr "Statut du participant"
diff --git a/priv/gettext/fr/LC_MESSAGES/errors.po b/priv/gettext/fr/LC_MESSAGES/errors.po
index 57a497384c67828c636680ffef79f270bb93f0a7..6dbb31445b425fd3b24d509a3465415ff0dde9d8 100644
--- a/priv/gettext/fr/LC_MESSAGES/errors.po
+++ b/priv/gettext/fr/LC_MESSAGES/errors.po
@@ -112,7 +112,7 @@ msgstr "Le profil actuel n'est pas un membre de ce groupe"
 msgid "Current profile is not an administrator of the selected group"
 msgstr "Le profil actuel n'est pas un·e administrateur·ice du groupe sélectionné"
 
-#: lib/graphql/resolvers/user.ex:644
+#: lib/graphql/resolvers/user.ex:673
 #, elixir-autogen, elixir-format
 msgid "Error while saving user settings"
 msgstr "Erreur lors de la sauvegarde des paramètres utilisateur"
@@ -155,8 +155,8 @@ msgstr "Aucun profil trouvé pour l'utilisateur modérateur"
 msgid "No user to validate with this email was found"
 msgstr "Aucun·e utilisateur·ice à valider avec cet email n'a été trouvé·e"
 
-#: lib/graphql/resolvers/person.ex:337
-#: lib/graphql/resolvers/user.ex:330
+#: lib/graphql/resolvers/person.ex:339
+#: lib/graphql/resolvers/user.ex:337
 #, elixir-autogen, elixir-format
 msgid "No user with this email was found"
 msgstr "Aucun·e utilisateur·ice avec cette adresse e-mail n'a été trouvé·e"
@@ -164,12 +164,12 @@ msgstr "Aucun·e utilisateur·ice avec cette adresse e-mail n'a été trouvé·e
 #: lib/graphql/resolvers/feed_token.ex:28
 #: lib/graphql/resolvers/participant.ex:32
 #: lib/graphql/resolvers/participant.ex:210
-#: lib/graphql/resolvers/person.ex:245
-#: lib/graphql/resolvers/person.ex:376
-#: lib/graphql/resolvers/person.ex:412
-#: lib/graphql/resolvers/person.ex:419
-#: lib/graphql/resolvers/person.ex:448
-#: lib/graphql/resolvers/person.ex:463
+#: lib/graphql/resolvers/person.ex:247
+#: lib/graphql/resolvers/person.ex:378
+#: lib/graphql/resolvers/person.ex:414
+#: lib/graphql/resolvers/person.ex:421
+#: lib/graphql/resolvers/person.ex:450
+#: lib/graphql/resolvers/person.ex:465
 #, elixir-autogen, elixir-format
 msgid "Profile is not owned by authenticated user"
 msgstr "Le profil n'est pas possédé par l'utilisateur connecté"
@@ -179,41 +179,42 @@ msgstr "Le profil n'est pas possédé par l'utilisateur connecté"
 msgid "Registrations are not open"
 msgstr "Les inscriptions ne sont pas ouvertes"
 
-#: lib/graphql/resolvers/user.ex:461
+#: lib/graphql/resolvers/user.ex:474
 #, elixir-autogen, elixir-format
 msgid "The current password is invalid"
 msgstr "Le mot de passe actuel est invalide"
 
-#: lib/graphql/resolvers/admin.ex:336
-#: lib/graphql/resolvers/user.ex:504
+#: lib/graphql/resolvers/admin.ex:334
+#: lib/graphql/resolvers/user.ex:527
 #, elixir-autogen, elixir-format
 msgid "The new email doesn't seem to be valid"
 msgstr "La nouvelle adresse e-mail ne semble pas être valide"
 
-#: lib/graphql/resolvers/admin.ex:339
-#: lib/graphql/resolvers/user.ex:507
+#: lib/graphql/resolvers/admin.ex:323
+#: lib/graphql/resolvers/user.ex:514
 #, elixir-autogen, elixir-format
 msgid "The new email must be different"
 msgstr "La nouvelle adresse e-mail doit être différente"
 
-#: lib/graphql/resolvers/user.ex:464
+#: lib/graphql/resolvers/user.ex:477
 #, elixir-autogen, elixir-format
 msgid "The new password must be different"
 msgstr "Le nouveau mot de passe doit être différent"
 
-#: lib/graphql/resolvers/user.ex:511
-#: lib/graphql/resolvers/user.ex:573
-#: lib/graphql/resolvers/user.ex:576
+#: lib/graphql/resolvers/user.ex:518
+#: lib/graphql/resolvers/user.ex:602
+#: lib/graphql/resolvers/user.ex:605
 #, elixir-autogen, elixir-format
 msgid "The password provided is invalid"
 msgstr "Le mot de passe fourni est invalide"
 
-#: lib/graphql/resolvers/user.ex:468
+#: lib/graphql/resolvers/user.ex:361
+#: lib/graphql/resolvers/user.ex:481
 #, elixir-autogen, elixir-format
 msgid "The password you have chosen is too short. Please make sure your password contains at least 6 characters."
 msgstr "Le mot de passe que vous avez choisi est trop court. Merci de vous assurer que votre mot de passe contienne au moins 6 caractères."
 
-#: lib/graphql/resolvers/user.ex:323
+#: lib/graphql/resolvers/user.ex:330
 #, elixir-autogen, elixir-format
 msgid "This user can't reset their password"
 msgstr "Cet·te utilisateur·ice ne peut pas réinitialiser son mot de passe"
@@ -229,12 +230,12 @@ msgstr "Cet·te utilisateur·ice a été désactivé·e"
 msgid "Unable to validate user"
 msgstr "Impossible de valider l'utilisateur·ice"
 
-#: lib/graphql/resolvers/user.ex:554
+#: lib/graphql/resolvers/user.ex:583
 #, elixir-autogen, elixir-format
 msgid "User already disabled"
 msgstr "L'utilisateur·ice est déjà désactivé·e"
 
-#: lib/graphql/resolvers/user.ex:619
+#: lib/graphql/resolvers/user.ex:648
 #, elixir-autogen, elixir-format
 msgid "User requested is not logged-in"
 msgstr "L'utilisateur·ice demandé·e n'est pas connecté·e"
@@ -259,12 +260,12 @@ msgstr "Vous ne pouvez pas rejoindre ce groupe"
 msgid "You may not list groups unless moderator."
 msgstr "Vous ne pouvez pas lister les groupes sauf à être modérateur·ice."
 
-#: lib/graphql/resolvers/user.ex:519
+#: lib/graphql/resolvers/user.ex:503
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to change your email"
 msgstr "Vous devez être connecté·e pour changer votre adresse e-mail"
 
-#: lib/graphql/resolvers/user.ex:476
+#: lib/graphql/resolvers/user.ex:489
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to change your password"
 msgstr "Vous devez être connecté·e pour changer votre mot de passe"
@@ -274,7 +275,7 @@ msgstr "Vous devez être connecté·e pour changer votre mot de passe"
 msgid "You need to be logged-in to delete a group"
 msgstr "Vous devez être connecté·e pour supprimer un groupe"
 
-#: lib/graphql/resolvers/user.ex:581
+#: lib/graphql/resolvers/user.ex:610
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to delete your account"
 msgstr "Vous devez être connecté·e pour supprimer votre compte"
@@ -299,12 +300,6 @@ msgstr "Vous devez être connecté·e pour mettre à jour un groupe"
 msgid "You need to have an existing token to get a refresh token"
 msgstr "Vous devez avoir un jeton existant pour obtenir un jeton de rafraîchissement"
 
-#: lib/graphql/resolvers/user.ex:306
-#: lib/graphql/resolvers/user.ex:333
-#, elixir-autogen, elixir-format
-msgid "You requested again a confirmation email too soon"
-msgstr "Vous avez à nouveau demandé un email de confirmation trop vite"
-
 #: lib/graphql/resolvers/user.ex:180
 #, elixir-autogen, elixir-format
 msgid "Your email is not on the allowlist"
@@ -357,17 +352,17 @@ msgstr "Une adresse e-mail valide est requise par votre instance"
 msgid "Anonymous participation is not enabled"
 msgstr "La participation anonyme n'est pas activée"
 
-#: lib/graphql/resolvers/person.ex:219
+#: lib/graphql/resolvers/person.ex:221
 #, elixir-autogen, elixir-format
 msgid "Cannot remove the last administrator of a group"
 msgstr "Impossible de supprimer le ou la dernier·ère administrateur·ice d'un groupe"
 
-#: lib/graphql/resolvers/person.ex:216
+#: lib/graphql/resolvers/person.ex:218
 #, elixir-autogen, elixir-format
 msgid "Cannot remove the last identity of a user"
 msgstr "Impossible de supprimer le dernier profil d'un·e utilisateur·ice"
 
-#: lib/graphql/resolvers/comment.ex:147
+#: lib/graphql/resolvers/comment.ex:153
 #, elixir-autogen, elixir-format
 msgid "Comment is already deleted"
 msgstr "Le commentaire est déjà supprimé"
@@ -395,8 +390,8 @@ msgid "Event id not found"
 msgstr "ID de l'événement non trouvé"
 
 #: lib/graphql/error.ex:114
-#: lib/graphql/resolvers/event.ex:355
-#: lib/graphql/resolvers/event.ex:407
+#: lib/graphql/resolvers/event.ex:382
+#: lib/graphql/resolvers/event.ex:434
 #, elixir-autogen, elixir-format
 msgid "Event not found"
 msgstr "Événement non trouvé"
@@ -404,7 +399,7 @@ msgstr "Événement non trouvé"
 #: lib/graphql/resolvers/participant.ex:87
 #: lib/graphql/resolvers/participant.ex:128
 #: lib/graphql/resolvers/participant.ex:155
-#: lib/graphql/resolvers/participant.ex:336
+#: lib/graphql/resolvers/participant.ex:343
 #, elixir-autogen, elixir-format
 msgid "Event with this ID %{id} doesn't exist"
 msgstr "L'événement avec cet ID %{id} n'existe pas"
@@ -414,7 +409,7 @@ msgstr "L'événement avec cet ID %{id} n'existe pas"
 msgid "Internal Error"
 msgstr "Erreur interne"
 
-#: lib/graphql/resolvers/discussion.ex:219
+#: lib/graphql/resolvers/discussion.ex:222
 #, elixir-autogen, elixir-format
 msgid "No discussion with ID %{id}"
 msgstr "Aucune discussion avec l'ID %{id}"
@@ -481,10 +476,10 @@ msgstr "Ce profil est déjà membre de ce groupe"
 #: lib/graphql/resolvers/post.ex:133
 #: lib/graphql/resolvers/post.ex:175
 #: lib/graphql/resolvers/post.ex:209
-#: lib/graphql/resolvers/resource.ex:90
-#: lib/graphql/resolvers/resource.ex:135
-#: lib/graphql/resolvers/resource.ex:168
-#: lib/graphql/resolvers/resource.ex:202
+#: lib/graphql/resolvers/resource.ex:92
+#: lib/graphql/resolvers/resource.ex:137
+#: lib/graphql/resolvers/resource.ex:170
+#: lib/graphql/resolvers/resource.ex:204
 #: lib/graphql/resolvers/todos.ex:58
 #: lib/graphql/resolvers/todos.ex:83
 #: lib/graphql/resolvers/todos.ex:110
@@ -496,7 +491,7 @@ msgid "Profile is not member of group"
 msgstr "Le profil n'est pas un·e membre du groupe"
 
 #: lib/graphql/resolvers/actor.ex:67
-#: lib/graphql/resolvers/person.ex:242
+#: lib/graphql/resolvers/person.ex:244
 #, elixir-autogen, elixir-format
 msgid "Profile not found"
 msgstr "Profile non trouvé"
@@ -506,8 +501,8 @@ msgstr "Profile non trouvé"
 msgid "Report not found"
 msgstr "Signalement non trouvé"
 
-#: lib/graphql/resolvers/resource.ex:172
-#: lib/graphql/resolvers/resource.ex:199
+#: lib/graphql/resolvers/resource.ex:174
+#: lib/graphql/resolvers/resource.ex:201
 #, elixir-autogen, elixir-format
 msgid "Resource doesn't exist"
 msgstr "La ressource n'existe pas"
@@ -517,7 +512,7 @@ msgstr "La ressource n'existe pas"
 msgid "The event has already reached its maximum capacity"
 msgstr "L'événement a déjà atteint sa capacité maximale"
 
-#: lib/graphql/resolvers/participant.ex:282
+#: lib/graphql/resolvers/participant.ex:289
 #, elixir-autogen, elixir-format
 msgid "This token is invalid"
 msgstr "Ce jeton est invalide"
@@ -551,7 +546,7 @@ msgstr "Ce jeton n'est pas un UUID valide"
 msgid "User not found"
 msgstr "Utilisateur·ice non trouvé·e"
 
-#: lib/graphql/resolvers/person.ex:333
+#: lib/graphql/resolvers/person.ex:335
 #, elixir-autogen, elixir-format
 msgid "You already have a profile for this user"
 msgstr "Vous avez déjà un profil pour cet utilisateur"
@@ -573,7 +568,7 @@ msgstr "Vous n'êtes pas membre de ce groupe"
 msgid "You are not a moderator or admin for this group"
 msgstr "Vous n'êtes pas administrateur·ice ou modérateur·ice de ce groupe"
 
-#: lib/graphql/resolvers/comment.ex:80
+#: lib/graphql/resolvers/comment.ex:74
 #, elixir-autogen, elixir-format
 msgid "You are not allowed to create a comment if not connected"
 msgstr "Vous n'êtes pas autorisé·e à créer un commentaire si non connecté·e"
@@ -583,7 +578,7 @@ msgstr "Vous n'êtes pas autorisé·e à créer un commentaire si non connecté
 msgid "You are not allowed to create a feed token if not connected"
 msgstr "Vous n'êtes pas autorisé·e à créer un jeton de flux si non connecté·e"
 
-#: lib/graphql/resolvers/comment.ex:155
+#: lib/graphql/resolvers/comment.ex:161
 #, elixir-autogen, elixir-format
 msgid "You are not allowed to delete a comment if not connected"
 msgstr "Vous n'êtes pas autorisé·e à supprimer un commentaire si non connecté·e"
@@ -593,7 +588,7 @@ msgstr "Vous n'êtes pas autorisé·e à supprimer un commentaire si non connect
 msgid "You are not allowed to delete a feed token if not connected"
 msgstr "Vous n'êtes pas autorisé·e à supprimer un jeton de flux si non connecté·e"
 
-#: lib/graphql/resolvers/comment.ex:114
+#: lib/graphql/resolvers/comment.ex:120
 #, elixir-autogen, elixir-format
 msgid "You are not allowed to update a comment if not connected"
 msgstr "Vous n'êtes pas autorisé·e à mettre à jour un commentaire si non connecté·e"
@@ -609,12 +604,12 @@ msgstr "Vous ne pouvez pas quitter cet événement car vous en êtes le ou la se
 msgid "You can't set yourself to a lower member role for this group because you are the only administrator"
 msgstr "Vous ne pouvez pas vous définir avec un rôle de membre inférieur pour ce groupe car vous en êtes le ou la seul·e administrateur·ice"
 
-#: lib/graphql/resolvers/comment.ex:143
+#: lib/graphql/resolvers/comment.ex:149
 #, elixir-autogen, elixir-format
 msgid "You cannot delete this comment"
 msgstr "Vous ne pouvez pas supprimer ce commentaire"
 
-#: lib/graphql/resolvers/event.ex:403
+#: lib/graphql/resolvers/event.ex:430
 #, elixir-autogen, elixir-format
 msgid "You cannot delete this event"
 msgstr "Vous ne pouvez pas supprimer cet événement"
@@ -649,17 +644,17 @@ msgstr "Vous devez être connecté·e et une modérateur·ice pour modifier un s
 msgid "You need to be logged-in and a moderator to view a report"
 msgstr "Vous devez être connecté·e pour et une modérateur·ice pour visionner un signalement"
 
-#: lib/graphql/resolvers/admin.ex:252
+#: lib/graphql/resolvers/admin.ex:258
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in and an administrator to access admin settings"
 msgstr "Vous devez être connecté·e et un·e administrateur·ice pour accéder aux paramètres administrateur"
 
-#: lib/graphql/resolvers/admin.ex:236
+#: lib/graphql/resolvers/admin.ex:242
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in and an administrator to access dashboard statistics"
 msgstr "Vous devez être connecté·e et un·e administrateur·ice pour accéder aux panneau de statistiques"
 
-#: lib/graphql/resolvers/admin.ex:278
+#: lib/graphql/resolvers/admin.ex:283
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in and an administrator to save admin settings"
 msgstr "Vous devez être connecté·e et un·e administrateur·ice pour sauvegarder les paramètres administrateur"
@@ -669,12 +664,12 @@ msgstr "Vous devez être connecté·e et un·e administrateur·ice pour sauvegar
 msgid "You need to be logged-in to access discussions"
 msgstr "Vous devez être connecté·e pour accéder aux discussions"
 
-#: lib/graphql/resolvers/resource.ex:96
+#: lib/graphql/resolvers/resource.ex:98
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to access resources"
 msgstr "Vous devez être connecté·e pour supprimer un groupe"
 
-#: lib/graphql/resolvers/event.ex:313
+#: lib/graphql/resolvers/event.ex:321
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to create events"
 msgstr "Vous devez être connecté·e pour créer des événements"
@@ -689,12 +684,12 @@ msgstr "Vous devez être connecté·e pour quitter un groupe"
 msgid "You need to be logged-in to create reports"
 msgstr "Vous devez être connecté·e pour quitter un groupe"
 
-#: lib/graphql/resolvers/resource.ex:140
+#: lib/graphql/resolvers/resource.ex:142
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to create resources"
 msgstr "Vous devez être connecté·e pour quitter un groupe"
 
-#: lib/graphql/resolvers/event.ex:412
+#: lib/graphql/resolvers/event.ex:439
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to delete an event"
 msgstr "Vous devez être connecté·e pour supprimer un groupe"
@@ -704,7 +699,7 @@ msgstr "Vous devez être connecté·e pour supprimer un groupe"
 msgid "You need to be logged-in to delete posts"
 msgstr "Vous devez être connecté·e pour supprimer un groupe"
 
-#: lib/graphql/resolvers/resource.ex:207
+#: lib/graphql/resolvers/resource.ex:209
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to delete resources"
 msgstr "Vous devez être connecté·e pour supprimer un groupe"
@@ -719,7 +714,7 @@ msgstr "Vous devez être connecté·e pour rejoindre un événement"
 msgid "You need to be logged-in to leave an event"
 msgstr "Vous devez être connecté·e pour quitter un groupe"
 
-#: lib/graphql/resolvers/event.ex:369
+#: lib/graphql/resolvers/event.ex:396
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to update an event"
 msgstr "Vous devez être connecté·e pour mettre à jour un groupe"
@@ -729,17 +724,17 @@ msgstr "Vous devez être connecté·e pour mettre à jour un groupe"
 msgid "You need to be logged-in to update posts"
 msgstr "Vous devez être connecté·e pour mettre à jour un groupe"
 
-#: lib/graphql/resolvers/resource.ex:177
+#: lib/graphql/resolvers/resource.ex:179
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to update resources"
 msgstr "Vous devez être connecté·e pour mettre à jour un groupe"
 
-#: lib/graphql/resolvers/resource.ex:236
+#: lib/graphql/resolvers/resource.ex:233
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to view a resource preview"
 msgstr "Vous devez être connecté·e pour supprimer un groupe"
 
-#: lib/graphql/resolvers/resource.ex:132
+#: lib/graphql/resolvers/resource.ex:134
 #, elixir-autogen, elixir-format
 msgid "Parent resource doesn't belong to this group"
 msgstr "La ressource parente n'appartient pas à ce groupe"
@@ -825,12 +820,12 @@ msgstr "Le fichier n'a pas un type MIME autorisé."
 msgid "Profile is not administrator for the group"
 msgstr "Le profil n'est pas administrateur·ice pour le groupe"
 
-#: lib/graphql/resolvers/event.ex:358
+#: lib/graphql/resolvers/event.ex:385
 #, elixir-autogen, elixir-format
 msgid "You can't edit this event."
 msgstr "Vous ne pouvez pas éditer cet événement."
 
-#: lib/graphql/resolvers/event.ex:361
+#: lib/graphql/resolvers/event.ex:388
 #, elixir-autogen, elixir-format
 msgid "You can't attribute this event to this profile."
 msgstr "Vous ne pouvez pas attribuer cet événement à ce profil."
@@ -850,7 +845,7 @@ msgstr "Ce·tte membre a déjà été rejetté·e."
 msgid "You don't have the right to remove this member."
 msgstr "Vous n'avez pas les droits pour supprimer ce·tte membre."
 
-#: lib/mobilizon/actors/actor.ex:377
+#: lib/mobilizon/actors/actor.ex:378
 #, elixir-autogen, elixir-format
 msgid "This username is already taken."
 msgstr "Cet identifiant est déjà pris."
@@ -860,7 +855,7 @@ msgstr "Cet identifiant est déjà pris."
 msgid "You must provide either an ID or a slug to access a discussion"
 msgstr "Vous devez fournir un ID ou bien un slug pour accéder à une discussion"
 
-#: lib/graphql/resolvers/event.ex:275
+#: lib/graphql/resolvers/event.ex:276
 #, elixir-autogen, elixir-format
 msgid "Organizer profile is not owned by the user"
 msgstr "Le profil de l'organisateur·ice n'appartient pas à l'utilisateur·ice"
@@ -872,41 +867,41 @@ msgstr "L'ID du profil fourni n'est pas celui du profil anonyme"
 
 #: lib/graphql/resolvers/group.ex:181
 #: lib/graphql/resolvers/group.ex:223
-#: lib/graphql/resolvers/person.ex:157
-#: lib/graphql/resolvers/person.ex:191
-#: lib/graphql/resolvers/person.ex:324
+#: lib/graphql/resolvers/person.ex:159
+#: lib/graphql/resolvers/person.ex:193
+#: lib/graphql/resolvers/person.ex:326
 #, elixir-autogen, elixir-format
 msgid "The provided picture is too heavy"
 msgstr "L'image fournie est trop lourde"
 
-#: lib/graphql/resolvers/resource.ex:129
+#: lib/graphql/resolvers/resource.ex:131
 #, elixir-autogen, elixir-format
 msgid "Error while creating resource"
 msgstr "Erreur lors de la création de la resource"
 
-#: lib/graphql/resolvers/user.ex:537
+#: lib/graphql/resolvers/user.ex:566
 #, elixir-autogen, elixir-format
 msgid "Invalid activation token"
 msgstr "Jeton d'activation invalide"
 
-#: lib/graphql/resolvers/resource.ex:226
+#: lib/graphql/resolvers/resource.ex:228
 #, elixir-autogen, elixir-format
 msgid "Unable to fetch resource details from this URL."
 msgstr "Impossible de récupérer les détails de la ressource depuis cette URL."
 
 #: lib/graphql/resolvers/event.ex:165
 #: lib/graphql/resolvers/participant.ex:253
-#: lib/graphql/resolvers/participant.ex:328
+#: lib/graphql/resolvers/participant.ex:335
 #, elixir-autogen, elixir-format
 msgid "Provided profile doesn't have moderator permissions on this event"
 msgstr "Le profil modérateur fourni n'a pas de permissions sur cet événement"
 
-#: lib/graphql/resolvers/event.ex:286
+#: lib/graphql/resolvers/event.ex:294
 #, elixir-autogen, elixir-format
 msgid "Organizer profile doesn't have permission to create an event on behalf of this group"
 msgstr "Le profil de l'organisateur⋅ice n'a pas la permission de créer un événement au nom de ce groupe"
 
-#: lib/graphql/resolvers/event.ex:349
+#: lib/graphql/resolvers/event.ex:369
 #, elixir-autogen, elixir-format
 msgid "This profile doesn't have permission to update an event on behalf of this group"
 msgstr "Ce profil n'a pas la permission de mettre à jour un événement au nom du groupe"
@@ -916,7 +911,7 @@ msgstr "Ce profil n'a pas la permission de mettre à jour un événement au nom
 msgid "Your e-mail has been denied registration or uses a disallowed e-mail provider"
 msgstr "Votre adresse e-mail a été refusée à l'inscription ou bien utilise un fournisseur d'e-mail interdit"
 
-#: lib/graphql/resolvers/comment.ex:150
+#: lib/graphql/resolvers/comment.ex:156
 #, elixir-autogen, elixir-format
 msgid "Comment not found"
 msgstr "Commentaire non trouvé"
@@ -926,12 +921,12 @@ msgstr "Commentaire non trouvé"
 msgid "Error while creating a discussion"
 msgstr "Erreur lors de la création de la discussion"
 
-#: lib/graphql/resolvers/user.ex:658
+#: lib/graphql/resolvers/user.ex:687
 #, elixir-autogen, elixir-format
 msgid "Error while updating locale"
 msgstr "Erreur lors de la mise à jour des options linguistiques"
 
-#: lib/graphql/resolvers/person.ex:327
+#: lib/graphql/resolvers/person.ex:329
 #, elixir-autogen, elixir-format
 msgid "Error while uploading pictures"
 msgstr "Erreur lors du téléversement des images"
@@ -946,13 +941,13 @@ msgstr "Impossible de quitter l'événement"
 msgid "Failed to update the group"
 msgstr "Impossible de mettre à jour le groupe"
 
-#: lib/graphql/resolvers/admin.ex:333
-#: lib/graphql/resolvers/user.ex:501
+#: lib/graphql/resolvers/admin.ex:357
+#: lib/graphql/resolvers/user.ex:547
 #, elixir-autogen, elixir-format
 msgid "Failed to update user email"
 msgstr "Impossible de mettre à jour l'adresse e-mail de utilisateur"
 
-#: lib/graphql/resolvers/user.ex:533
+#: lib/graphql/resolvers/user.ex:562
 #, elixir-autogen, elixir-format
 msgid "Failed to validate user email"
 msgstr "Impossible de valider l'adresse e-mail de l'utilisateur·ice"
@@ -962,37 +957,37 @@ msgstr "Impossible de valider l'adresse e-mail de l'utilisateur·ice"
 msgid "The anonymous actor ID is invalid"
 msgstr "L'ID de l'acteur anonyme est invalide"
 
-#: lib/graphql/resolvers/resource.ex:165
+#: lib/graphql/resolvers/resource.ex:167
 #, elixir-autogen, elixir-format
 msgid "Unknown error while updating resource"
 msgstr "Erreur inconnue lors de la mise à jour de la resource"
 
-#: lib/graphql/resolvers/comment.ex:105
+#: lib/graphql/resolvers/comment.ex:111
 #, elixir-autogen, elixir-format
 msgid "You are not the comment creator"
 msgstr "Vous n'êtes pas le ou la createur⋅ice du commentaire"
 
-#: lib/graphql/resolvers/user.ex:458
+#: lib/graphql/resolvers/user.ex:471
 #, elixir-autogen, elixir-format
 msgid "You cannot change your password."
 msgstr "Vous ne pouvez pas changer votre mot de passe."
 
-#: lib/graphql/resolvers/participant.ex:321
+#: lib/graphql/resolvers/participant.ex:328
 #, elixir-autogen, elixir-format
 msgid "Format not supported"
 msgstr "Format non supporté"
 
-#: lib/graphql/resolvers/participant.ex:305
+#: lib/graphql/resolvers/participant.ex:312
 #, elixir-autogen, elixir-format
 msgid "A dependency needed to export to %{format} is not installed"
 msgstr "Une dépendance nécessaire pour exporter en %{format} n'est pas installée"
 
-#: lib/graphql/resolvers/participant.ex:313
+#: lib/graphql/resolvers/participant.ex:320
 #, elixir-autogen, elixir-format
 msgid "An error occured while saving export"
 msgstr "Une erreur est survenue lors de l'enregistrement de l'export"
 
-#: lib/web/controllers/export_controller.ex:30
+#: lib/web/controllers/export_controller.ex:32
 #, elixir-autogen, elixir-format
 msgid "Export to format %{format} is not enabled on this instance"
 msgstr "L'export au format %{format} n'est pas activé sur cette instance"
@@ -1002,17 +997,17 @@ msgstr "L'export au format %{format} n'est pas activé sur cette instance"
 msgid "Only admins can create groups"
 msgstr "Seul⋅es les administrateur⋅ices peuvent créer des groupes"
 
-#: lib/graphql/resolvers/event.ex:279
+#: lib/graphql/resolvers/event.ex:280
 #, elixir-autogen, elixir-format
 msgid "Only groups can create events"
 msgstr "Seuls les groupes peuvent créer des événements"
 
-#: lib/graphql/resolvers/event.ex:305
+#: lib/graphql/resolvers/event.ex:313
 #, elixir-autogen, elixir-format
 msgid "Unknown error while creating event"
 msgstr "Erreur inconnue lors de la création de l'événement"
 
-#: lib/graphql/resolvers/user.ex:514
+#: lib/graphql/resolvers/user.ex:498
 #, elixir-autogen, elixir-format
 msgid "User cannot change email"
 msgstr "L'utilisateur ne peut changer son adresse e-mail"
@@ -1027,12 +1022,12 @@ msgstr "L'abonnement ne correspond pas à votre compte"
 msgid "Follow not found"
 msgstr "Abonnement non trouvé"
 
-#: lib/graphql/resolvers/user.ex:379
+#: lib/graphql/resolvers/user.ex:392
 #, elixir-autogen, elixir-format
 msgid "Profile with username %{username} not found"
 msgstr "Personne avec le nom %{name} non trouvé"
 
-#: lib/graphql/resolvers/user.ex:374
+#: lib/graphql/resolvers/user.ex:387
 #, elixir-autogen, elixir-format
 msgid "This profile does not belong to you"
 msgstr "Ce profil ne vous appartient pas"
@@ -1077,22 +1072,22 @@ msgstr "Vous devez être connecté⋅e pour supprimer un⋅e membre"
 msgid "Your email seems to be using an invalid format"
 msgstr "Votre email semble utiliser un format invalide"
 
-#: lib/graphql/resolvers/admin.ex:382
+#: lib/graphql/resolvers/admin.ex:399
 #, elixir-autogen, elixir-format
 msgid "Can't confirm an already confirmed user"
 msgstr "Impossible de confirmer un⋅e utilisateur⋅ice déjà confirmé⋅e"
 
-#: lib/graphql/resolvers/admin.ex:386
+#: lib/graphql/resolvers/admin.ex:403
 #, elixir-autogen, elixir-format
 msgid "Deconfirming users is not supported"
 msgstr "Dé-confirmer des utilisateur⋅ices n'est pas supporté"
 
-#: lib/graphql/resolvers/admin.ex:358
+#: lib/graphql/resolvers/admin.ex:375
 #, elixir-autogen, elixir-format
 msgid "The new role must be different"
 msgstr "Le nouveau rôle doit être différent"
 
-#: lib/graphql/resolvers/admin.ex:309
+#: lib/graphql/resolvers/admin.ex:314
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in and an administrator to edit an user's details"
 msgstr "Vous devez être connecté·e et un·e administrateur·ice pour éditer les détails d'un⋅e utilisateur⋅ice"
@@ -1102,28 +1097,28 @@ msgstr "Vous devez être connecté·e et un·e administrateur·ice pour éditer
 msgid "A profile or group with that name already exists"
 msgstr "Un profil ou un groupe avec ce nom existe déjà"
 
-#: lib/graphql/resolvers/admin.ex:519
+#: lib/graphql/resolvers/admin.ex:542
 #, elixir-autogen, elixir-format
 msgid "Unable to find an instance to follow at this address"
 msgstr "Impossible de trouver une instance à suivre à cette adresse"
 
-#: lib/mobilizon/actors/actor.ex:396
+#: lib/mobilizon/actors/actor.ex:397
 #, elixir-autogen, elixir-format
 msgid "Username must only contain alphanumeric lowercased characters and underscores."
 msgstr "Le nom d'utilisateur ne doit contenir que des caractères alphanumériques minuscules et des underscores."
 
 #: lib/graphql/resolvers/user.ex:303
-#: lib/graphql/resolvers/user.ex:326
+#: lib/graphql/resolvers/user.ex:333
 #, elixir-autogen, elixir-format
 msgid "This email doesn't seem to be valid"
 msgstr "Cette adresse e-mail ne semble pas être valide"
 
-#: lib/graphql/resolvers/comment.ex:65
+#: lib/graphql/resolvers/comment.ex:59
 #, elixir-autogen, elixir-format
 msgid "This comment was detected as spam."
 msgstr "Ce commentaire a été détecté comme spam."
 
-#: lib/graphql/resolvers/event.ex:293
+#: lib/graphql/resolvers/event.ex:301
 #, elixir-autogen, elixir-format
 msgid "This event was detected as spam."
 msgstr "Cet événement a été détecté comme spam."
@@ -1144,7 +1139,7 @@ msgstr "Vous pouvez uniquement supprimer vos propres notes"
 msgid "You need to be a moderator or an administrator to create a note on a report"
 msgstr "Vous devez être un·e modérateur·ice ou un·e administrateur·ice pour créer une note sur un signalement"
 
-#: lib/graphql/resolvers/person.ex:330
+#: lib/graphql/resolvers/person.ex:332
 #, elixir-autogen, elixir-format
 msgid "Your profile was detected as spam."
 msgstr "Votre profil a été détecté comme un spam."
@@ -1154,7 +1149,7 @@ msgstr "Votre profil a été détecté comme un spam."
 msgid "Your registration has been detected as spam and cannot be processed."
 msgstr "Votre inscription a été détectée comme du spam et ne peut être poursuivie."
 
-#: lib/web/controllers/application_controller.ex:86
+#: lib/web/controllers/application_controller.ex:88
 #, elixir-autogen, elixir-format
 msgid "All of name, scope and redirect_uri parameters are required to create an application"
 msgstr "Les paramètres name, scope et redirect_uri sont requis pour créer une application"
@@ -1169,173 +1164,229 @@ msgstr "Application non trouvée"
 msgid "Application token not found"
 msgstr "Jeton d'application non trouvé"
 
-#: lib/graphql/resolvers/application.ex:89
+#: lib/graphql/resolvers/application.ex:90
 #, elixir-autogen, elixir-format
 msgid "Error while revoking token"
 msgstr "Erreur lors de la révocation du jeton"
 
-#: lib/web/controllers/application_controller.ex:59
+#: lib/web/controllers/application_controller.ex:61
 #, elixir-autogen, elixir-format
 msgid "Impossible to create application."
 msgstr "Impossible de créer l'application."
 
-#: lib/web/controllers/application_controller.ex:356
+#: lib/web/controllers/application_controller.ex:358
 #, elixir-autogen, elixir-format
 msgid "Incorrect parameters sent. You need to provide at least the grant_type and client_id parameters, depending on the grant type being used."
 msgstr ""
 "Paramètres envoyés incorrects. Vous devez au moins fournir les paramètres grant_type et client_id, en fonction du type d’autorisation "
 "utilisée."
 
-#: lib/web/controllers/application_controller.ex:329
+#: lib/web/controllers/application_controller.ex:331
 #, elixir-autogen, elixir-format
 msgid "Invalid client credentials provided"
 msgstr "Les identifiants clients fournis sont invalides"
 
-#: lib/web/controllers/application_controller.ex:337
+#: lib/web/controllers/application_controller.ex:339
 #, elixir-autogen, elixir-format
 msgid "Invalid refresh token provided"
 msgstr "Le jeton de rafraîchissement fourni est invalide"
 
-#: lib/web/controllers/application_controller.ex:170
-#: lib/web/controllers/application_controller.ex:401
+#: lib/web/controllers/application_controller.ex:172
+#: lib/web/controllers/application_controller.ex:403
 #, elixir-autogen, elixir-format
 msgid "No application was found with this client_id"
 msgstr "Aucune application n'a été trouvée avec ce client_id"
 
-#: lib/graphql/resolvers/application.ex:37
+#: lib/graphql/resolvers/application.ex:38
 #, elixir-autogen, elixir-format
 msgid "No application with this client_id was found"
 msgstr ""
 
-#: lib/graphql/authorization.ex:80
+#: lib/graphql/authorization.ex:81
 #, elixir-autogen, elixir-format
 msgid "Not authorized to access field %{field}"
 msgstr "Non autorisé à accéder au champ %{field}"
 
-#: lib/graphql/authorization.ex:70
-#: lib/graphql/authorization.ex:75
+#: lib/graphql/authorization.ex:71
+#: lib/graphql/authorization.ex:76
 #, elixir-autogen, elixir-format
 msgid "Not authorized to access object %{object}"
 msgstr "Non autorisé à accéder à l'objet %{object}"
 
-#: lib/graphql/authorization.ex:63
+#: lib/graphql/authorization.ex:64
 #, elixir-autogen, elixir-format
 msgid "Not authorized to access this %{object_type}"
 msgstr "Non autorisé à accéder à ce %{object_type}"
 
-#: lib/web/controllers/application_controller.ex:279
+#: lib/web/controllers/application_controller.ex:281
 #, elixir-autogen, elixir-format
 msgid "Please slow down the rate of your requests"
 msgstr "Merci de réduire le rythme de vos requêtes"
 
-#: lib/web/controllers/application_controller.ex:267
+#: lib/web/controllers/application_controller.ex:269
 #, elixir-autogen, elixir-format
 msgid "The authorization request is still pending"
 msgstr "La requête d'autorisation est toujours en attente"
 
-#: lib/web/controllers/application_controller.ex:249
+#: lib/web/controllers/application_controller.ex:251
 #, elixir-autogen, elixir-format
 msgid "The client_id provided or the device_code associated is invalid"
 msgstr "Le client_id fourni ou device_code associé n'est pas valide"
 
-#: lib/graphql/resolvers/application.ex:133
+#: lib/graphql/resolvers/application.ex:139
 #, elixir-autogen, elixir-format
 msgid "The device user code was not provided before approving the application"
 msgstr "Le code utilisateur de l'appareil n'a pas été fourni avant l'approbation de la demande"
 
-#: lib/web/controllers/application_controller.ex:304
+#: lib/web/controllers/application_controller.ex:306
 #, elixir-autogen, elixir-format
 msgid "The given device_code has expired"
 msgstr "Le device_code donné a expiré"
 
-#: lib/graphql/resolvers/application.ex:44
+#: lib/graphql/resolvers/application.ex:45
 #, elixir-autogen, elixir-format
 msgid "The given redirect_uri is not in the list of allowed redirect URIs"
 msgstr "Le redirect_uri donné ne figure pas dans la liste des URI de redirection autorisées."
 
-#: lib/web/controllers/application_controller.ex:158
+#: lib/web/controllers/application_controller.ex:160
 #, elixir-autogen, elixir-format
 msgid "The given scope is not in the list of the app declared scopes"
 msgstr "Le champ d'application donné n'est pas dans la liste des champs d'application déclarés par l'application."
 
-#: lib/graphql/resolvers/application.ex:109
-#: lib/graphql/resolvers/application.ex:146
+#: lib/graphql/resolvers/application.ex:112
+#: lib/graphql/resolvers/application.ex:154
 #, elixir-autogen, elixir-format
 msgid "The given user code has expired"
 msgstr "Le code utilisateur donné a expiré"
 
-#: lib/graphql/resolvers/application.ex:112
-#: lib/graphql/resolvers/application.ex:140
+#: lib/graphql/resolvers/application.ex:118
+#: lib/graphql/resolvers/application.ex:146
 #, elixir-autogen, elixir-format
 msgid "The given user code is invalid"
 msgstr "Le code utilisateur donné n'est pas valide"
 
-#: lib/web/controllers/application_controller.ex:411
+#: lib/web/controllers/application_controller.ex:413
 #, elixir-autogen, elixir-format
 msgid "The provided client_id does not match the provided code"
 msgstr "Le client_id fourni ne correspond pas au code fourni"
 
-#: lib/web/controllers/application_controller.ex:414
+#: lib/web/controllers/application_controller.ex:416
 #, elixir-autogen, elixir-format
 msgid "The provided client_secret is invalid"
 msgstr "Le client_secret fourni n'est pas valide"
 
-#: lib/web/controllers/application_controller.ex:407
+#: lib/web/controllers/application_controller.ex:409
 #, elixir-autogen, elixir-format
 msgid "The provided code is invalid or expired"
 msgstr "Le code fourni n'est pas valide ou a expiré"
 
-#: lib/web/controllers/application_controller.ex:418
+#: lib/web/controllers/application_controller.ex:420
 #, elixir-autogen, elixir-format
 msgid "The provided scope is invalid or not included in the app declared scopes"
 msgstr "Le champ d'application fourni n'est pas valide ou n'est pas inclus dans les champs d'application déclarés de l'application."
 
-#: lib/web/controllers/application_controller.ex:45
+#: lib/web/controllers/application_controller.ex:47
 #, elixir-autogen, elixir-format
 msgid "The scope parameter is not a space separated list of valid scopes"
 msgstr "Le paramètre scope n'est pas une liste de champs d'application valides séparés par des espaces"
 
-#: lib/web/controllers/application_controller.ex:292
+#: lib/web/controllers/application_controller.ex:294
 #, elixir-autogen, elixir-format
 msgid "The user rejected the requested authorization"
 msgstr "L'utilisateur a refusé l'autorisation demandée"
 
-#: lib/web/controllers/application_controller.ex:404
+#: lib/web/controllers/application_controller.ex:406
 #, elixir-autogen, elixir-format
 msgid "This redirect URI is not allowed"
 msgstr "Cette URI de redirection n'est pas autorisée"
 
-#: lib/web/controllers/application_controller.ex:381
+#: lib/web/controllers/application_controller.ex:383
 #, elixir-autogen, elixir-format
 msgid "Token not found"
 msgstr "Jeton non trouvé"
 
-#: lib/web/controllers/application_controller.ex:72
+#: lib/web/controllers/application_controller.ex:74
 #, elixir-autogen, elixir-format
 msgid "Too many requests"
 msgstr "Trop de requêtes"
 
-#: lib/web/controllers/application_controller.ex:184
+#: lib/web/controllers/application_controller.ex:186
 #, elixir-autogen, elixir-format
 msgid "Unable to produce device code"
 msgstr "Impossible de produire un device code"
 
-#: lib/web/controllers/application_controller.ex:373
+#: lib/web/controllers/application_controller.ex:375
 #, elixir-autogen, elixir-format
 msgid "Unable to revoke token"
 msgstr "Impossible de révoquer le jeton"
 
-#: lib/web/controllers/application_controller.ex:198
+#: lib/web/controllers/application_controller.ex:200
 #, elixir-autogen, elixir-format
 msgid "You need to pass both client_id and scope as parameters to obtain a device code"
 msgstr "Pour obtenir un code d'appareil, vous devez passer en paramètre le client_id et le scope"
 
-#: lib/web/controllers/application_controller.ex:136
+#: lib/web/controllers/application_controller.ex:138
 #, elixir-autogen, elixir-format
 msgid "You need to provide a valid redirect_uri to autorize an application"
 msgstr "Vous devez fournir un redirect_uri valide pour autoriser une application"
 
-#: lib/web/controllers/application_controller.ex:126
+#: lib/web/controllers/application_controller.ex:128
 #, elixir-autogen, elixir-format
 msgid "You need to specify client_id, redirect_uri, scope and state to autorize an application"
 msgstr "Vous devez spécifier client_id, redirect_uri, scope et state pour autoriser une application"
+
+#: lib/graphql/resolvers/user.ex:306
+#, elixir-autogen, elixir-format
+msgid "Couldn't send an email. Internal error."
+msgstr ""
+
+#: lib/graphql/resolvers/participant.ex:286
+#, elixir-autogen, elixir-format
+msgid "Participation is already confirmed"
+msgstr ""
+
+#: lib/graphql/resolvers/participant.ex:283
+#, elixir-autogen, elixir-format
+msgid "Participation is confirmed but not approved yet by an organizer"
+msgstr ""
+
+#: lib/graphql/resolvers/event.ex:287
+#: lib/graphql/resolvers/event.ex:376
+#, elixir-autogen, elixir-format
+msgid "Providing external registration is not allowed"
+msgstr ""
+
+#: lib/graphql/resolvers/push_subscription.ex:48
+#, elixir-autogen, elixir-format
+msgid "The same push subscription has already been registered"
+msgstr ""
+
+#: lib/graphql/resolvers/admin.ex:536
+#, elixir-autogen, elixir-format
+msgid "This instance is pending follow approval"
+msgstr ""
+
+#: lib/graphql/schema/custom/timezone.ex:23
+#, elixir-autogen, elixir-format
+msgid "Timezone ID %{timezone} is invalid"
+msgstr ""
+
+#: lib/graphql/resolvers/admin.ex:539
+#, elixir-autogen, elixir-format, fuzzy
+msgid "You are already following this instance"
+msgstr "Vous êtes déjà membre de ce groupe"
+
+#: lib/graphql/resolvers/user.ex:310
+#, elixir-autogen, elixir-format, fuzzy
+msgid "You requested again a confirmation email too soon. Please try again in a few minutes"
+msgstr "Vous avez à nouveau demandé un email de confirmation trop vite"
+
+#: lib/graphql/resolvers/user.ex:341
+#, elixir-autogen, elixir-format
+msgid "You requested again a password reset email too soon. Please try again in a few minutes"
+msgstr ""
+
+#: lib/graphql/resolvers/user.ex:368
+#, elixir-autogen, elixir-format
+msgid "The token you provided is invalid. Make sure that the URL is exactly the one provided inside the email you got."
+msgstr ""
diff --git a/priv/gettext/gd/LC_MESSAGES/activity.po b/priv/gettext/gd/LC_MESSAGES/activity.po
index 3e354de69281a8de0fbe868fe15f09ed4b2eb76c..8b83835e616eb3daa62d0be2cd4c48bc1c9956dd 100644
--- a/priv/gettext/gd/LC_MESSAGES/activity.po
+++ b/priv/gettext/gd/LC_MESSAGES/activity.po
@@ -494,3 +494,15 @@ msgstr "Fhreagair %{profile} dhan deasbad %{discussion} sa bhuidheann %{group}."
 #, elixir-autogen, elixir-format, fuzzy
 msgid "%{profile} approved the member %{member}."
 msgstr "Chuir %{profile} am ball %{member} ris."
+
+#: lib/service/activity/renderer/event.ex:74
+#: lib/web/templates/email/activity/_event_activity_item.html.heex:55
+#: lib/web/templates/email/activity/_event_activity_item.text.eex:31
+#, elixir-autogen, elixir-format
+msgid "%{profile} joined your event %{event}."
+msgstr ""
+
+#: lib/web/views/email_view.ex:45
+#, elixir-autogen, elixir-format
+msgid "An anonymous profile"
+msgstr ""
diff --git a/priv/gettext/gd/LC_MESSAGES/default.po b/priv/gettext/gd/LC_MESSAGES/default.po
index 69e4fdd063a1264681272380682e85a8fedbbea1..77146d2bc1d4a7716dd0c9446ebe0a52e6163d84 100644
--- a/priv/gettext/gd/LC_MESSAGES/default.po
+++ b/priv/gettext/gd/LC_MESSAGES/default.po
@@ -24,7 +24,7 @@ msgstr ""
 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 ""
 
-#: lib/web/templates/email/report.html.heex:120
+#: lib/web/templates/email/report.html.heex:121
 #, elixir-autogen, elixir-format
 msgid "%{title} by %{creator}"
 msgstr ""
@@ -40,23 +40,17 @@ msgstr ""
 msgid "Ask the community on Framacolibri"
 msgstr ""
 
-#: lib/web/templates/email/report.text.eex:15
+#: lib/web/templates/email/report.text.eex:17
 #, elixir-autogen, elixir-format
 msgid "Comments"
 msgstr ""
 
-#: lib/web/templates/email/report.html.heex:115
-#: lib/web/templates/email/report.text.eex:11
-#, elixir-autogen, elixir-format
-msgid "Event"
-msgstr ""
-
 #: lib/web/email/user.ex:49
 #, elixir-autogen, elixir-format
 msgid "Instructions to reset your password on %{instance}"
 msgstr ""
 
-#: lib/web/templates/email/report.text.eex:21
+#: lib/web/templates/email/report.text.eex:23
 #, elixir-autogen, elixir-format
 msgid "Reason"
 msgstr ""
@@ -316,12 +310,12 @@ msgctxt "terms"
 msgid "What information do we collect?"
 msgstr ""
 
-#: lib/web/email/user.ex:182
+#: lib/web/email/user.ex:188
 #, elixir-autogen, elixir-format
 msgid "Mobilizon on %{instance}: confirm your email address"
 msgstr ""
 
-#: lib/web/email/user.ex:159
+#: lib/web/email/user.ex:165
 #, elixir-autogen, elixir-format
 msgid "Mobilizon on %{instance}: email changed"
 msgstr ""
@@ -824,7 +818,7 @@ msgstr ""
 msgid "Event update!"
 msgstr ""
 
-#: lib/web/templates/email/report.html.heex:155
+#: lib/web/templates/email/report.html.heex:158
 #, elixir-autogen, elixir-format
 msgid "Flagged comments"
 msgstr ""
@@ -905,7 +899,7 @@ msgstr ""
 msgid "New email confirmation"
 msgstr ""
 
-#: lib/web/templates/email/report.html.heex:191
+#: lib/web/templates/email/report.html.heex:194
 #, elixir-autogen, elixir-format
 msgid "Reasons for report"
 msgstr ""
@@ -960,12 +954,12 @@ msgstr ""
 msgid "Verify your email address"
 msgstr ""
 
-#: lib/web/templates/email/report.html.heex:232
+#: lib/web/templates/email/report.html.heex:235
 #, elixir-autogen, elixir-format
 msgid "View report"
 msgstr ""
 
-#: lib/web/templates/email/report.text.eex:24
+#: lib/web/templates/email/report.text.eex:26
 #, elixir-autogen, elixir-format
 msgid "View report:"
 msgstr ""
@@ -1063,12 +1057,6 @@ msgstr ""
 msgid "As this group was located on another instance, it will continue to work for other instances than this one."
 msgstr ""
 
-#: lib/web/templates/email/group_suspension.html.heex:67
-#: lib/web/templates/email/group_suspension.text.eex:5
-#, elixir-autogen, elixir-format
-msgid "As this group was located on this instance, all of it's data has been irretrievably deleted."
-msgstr ""
-
 #: lib/web/templates/email/group_suspension.html.heex:18
 #: lib/web/templates/email/group_suspension.text.eex:1
 #, elixir-autogen, elixir-format
@@ -1080,7 +1068,7 @@ msgstr ""
 msgid "Your instance's moderation team has decided to suspend %{group_name} (%{group_address}). You are no longer a member of this group."
 msgstr ""
 
-#: lib/web/email/group.ex:107
+#: lib/web/email/group.ex:108
 #, elixir-autogen, elixir-format
 msgid "The group %{group} has been suspended on %{instance}"
 msgstr ""
@@ -1362,16 +1350,6 @@ msgstr ""
 msgid "Public feed for %{instance}"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:350
-#, elixir-autogen, elixir-format
-msgid "The password you have choosen is too short. Please make sure your password contains at least 6 charaters."
-msgstr ""
-
-#: lib/graphql/resolvers/user.ex:356
-#, elixir-autogen, elixir-format
-msgid "The token you provided is invalid. Make sure that the URL is exactly the one provided inside the email you got."
-msgstr ""
-
 #: lib/web/email/actor.ex:43
 #, elixir-autogen, elixir-format
 msgid "Your participation to %{event} has been cancelled!"
@@ -1395,63 +1373,63 @@ msgid "Your participation to %{event} on %{instance} has been cancelled!"
 msgstr ""
 
 #. File name template for exported list of participants. Should NOT contain spaces. Make sure the output is going to be something standardized that is acceptable as a file name on most systems.
-#: lib/service/export/participants/csv.ex:81
+#: lib/service/export/participants/csv.ex:97
 #: lib/service/export/participants/ods.ex:86
 #: lib/service/export/participants/pdf.ex:96
 #, elixir-autogen, elixir-format
 msgid "%{event}_participants"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:61
+#: lib/service/export/participants/common.ex:66
 #, elixir-autogen, elixir-format
 msgid "Participant message"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:61
+#: lib/service/export/participants/common.ex:63
 #, elixir-autogen, elixir-format
 msgid "Participant name"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:61
+#: lib/service/export/participants/common.ex:64
 #, elixir-autogen, elixir-format
 msgid "Participant status"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:52
+#: lib/service/export/participants/common.ex:53
 #: lib/web/templates/email/admin/_role.html.heex:3
 #: lib/web/templates/email/admin/_role.text.eex:1
 #, elixir-autogen, elixir-format
 msgid "Administrator"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:55
+#: lib/service/export/participants/common.ex:56
 #, elixir-autogen, elixir-format
 msgid "Creator"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:49
+#: lib/service/export/participants/common.ex:50
 #: lib/web/templates/email/admin/_role.html.heex:5
 #: lib/web/templates/email/admin/_role.text.eex:1
 #, elixir-autogen, elixir-format
 msgid "Moderator"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:37
+#: lib/service/export/participants/common.ex:38
 #, elixir-autogen, elixir-format
 msgid "Not approved"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:40
+#: lib/service/export/participants/common.ex:41
 #, elixir-autogen, elixir-format
 msgid "Not confirmed"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:46
+#: lib/service/export/participants/common.ex:47
 #, elixir-autogen, elixir-format
 msgid "Participant"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:43
+#: lib/service/export/participants/common.ex:44
 #, elixir-autogen, elixir-format
 msgid "Rejected"
 msgstr ""
@@ -1476,7 +1454,7 @@ msgstr ""
 msgid "Participants for %{event}"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:88
+#: lib/service/export/participants/common.ex:95
 #, elixir-autogen, elixir-format
 msgid "Anonymous participant"
 msgstr ""
@@ -1595,7 +1573,7 @@ msgstr ""
 msgid "Title: %{title}"
 msgstr ""
 
-#: lib/web/email/group.ex:46
+#: lib/web/email/group.ex:47
 #, elixir-autogen, elixir-format
 msgid "📅 Just scheduled by %{group}: %{event}"
 msgstr ""
@@ -2010,3 +1988,24 @@ msgstr ""
 #, elixir-autogen, elixir-format
 msgid "Until next time!"
 msgstr ""
+
+#: lib/web/templates/email/group_suspension.html.heex:67
+#: lib/web/templates/email/group_suspension.text.eex:5
+#, elixir-autogen, elixir-format, fuzzy
+msgid "As this group was located on this instance, all of its data has been irretrievably deleted."
+msgstr ""
+
+#: lib/web/templates/email/report.text.eex:11
+#, elixir-autogen, elixir-format, fuzzy
+msgid "Events"
+msgstr ""
+
+#: lib/web/templates/email/report.html.heex:115
+#, elixir-autogen, elixir-format, fuzzy
+msgid "Flagged events"
+msgstr ""
+
+#: lib/service/export/participants/common.ex:65
+#, elixir-autogen, elixir-format, fuzzy
+msgid "Participant registration date"
+msgstr ""
diff --git a/priv/gettext/gd/LC_MESSAGES/errors.po b/priv/gettext/gd/LC_MESSAGES/errors.po
index 4ded13d051101379e7cbf05e3126cbb238315259..14827d18ffa7d30656a976869248f021508ccf9f 100644
--- a/priv/gettext/gd/LC_MESSAGES/errors.po
+++ b/priv/gettext/gd/LC_MESSAGES/errors.po
@@ -9,7 +9,8 @@
 msgid ""
 msgstr ""
 "Language: gd\n"
-"Plural-Forms: nplurals=4\n"
+"Plural-Forms: nplurals=4; plural=(n==1 || n==11) ? 0 : (n==2 || n==12) ? 1 : "
+"(n > 2 && n < 20) ? 2 : 3;\n"
 
 #: lib/mobilizon/discussions/discussion.ex:69
 #, elixir-autogen
@@ -115,7 +116,7 @@ msgstr ""
 msgid "Current profile is not an administrator of the selected group"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:644
+#: lib/graphql/resolvers/user.ex:673
 #, elixir-autogen, elixir-format
 msgid "Error while saving user settings"
 msgstr ""
@@ -158,8 +159,8 @@ msgstr ""
 msgid "No user to validate with this email was found"
 msgstr ""
 
-#: lib/graphql/resolvers/person.ex:337
-#: lib/graphql/resolvers/user.ex:330
+#: lib/graphql/resolvers/person.ex:339
+#: lib/graphql/resolvers/user.ex:337
 #, elixir-autogen, elixir-format
 msgid "No user with this email was found"
 msgstr ""
@@ -167,12 +168,12 @@ msgstr ""
 #: lib/graphql/resolvers/feed_token.ex:28
 #: lib/graphql/resolvers/participant.ex:32
 #: lib/graphql/resolvers/participant.ex:210
-#: lib/graphql/resolvers/person.ex:245
-#: lib/graphql/resolvers/person.ex:376
-#: lib/graphql/resolvers/person.ex:412
-#: lib/graphql/resolvers/person.ex:419
-#: lib/graphql/resolvers/person.ex:448
-#: lib/graphql/resolvers/person.ex:463
+#: lib/graphql/resolvers/person.ex:247
+#: lib/graphql/resolvers/person.ex:378
+#: lib/graphql/resolvers/person.ex:414
+#: lib/graphql/resolvers/person.ex:421
+#: lib/graphql/resolvers/person.ex:450
+#: lib/graphql/resolvers/person.ex:465
 #, elixir-autogen, elixir-format
 msgid "Profile is not owned by authenticated user"
 msgstr ""
@@ -182,41 +183,42 @@ msgstr ""
 msgid "Registrations are not open"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:461
+#: lib/graphql/resolvers/user.ex:474
 #, elixir-autogen, elixir-format
 msgid "The current password is invalid"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:336
-#: lib/graphql/resolvers/user.ex:504
+#: lib/graphql/resolvers/admin.ex:334
+#: lib/graphql/resolvers/user.ex:527
 #, elixir-autogen, elixir-format
 msgid "The new email doesn't seem to be valid"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:339
-#: lib/graphql/resolvers/user.ex:507
+#: lib/graphql/resolvers/admin.ex:323
+#: lib/graphql/resolvers/user.ex:514
 #, elixir-autogen, elixir-format
 msgid "The new email must be different"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:464
+#: lib/graphql/resolvers/user.ex:477
 #, elixir-autogen, elixir-format
 msgid "The new password must be different"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:511
-#: lib/graphql/resolvers/user.ex:573
-#: lib/graphql/resolvers/user.ex:576
+#: lib/graphql/resolvers/user.ex:518
+#: lib/graphql/resolvers/user.ex:602
+#: lib/graphql/resolvers/user.ex:605
 #, elixir-autogen, elixir-format
 msgid "The password provided is invalid"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:468
+#: lib/graphql/resolvers/user.ex:361
+#: lib/graphql/resolvers/user.ex:481
 #, elixir-autogen, elixir-format
 msgid "The password you have chosen is too short. Please make sure your password contains at least 6 characters."
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:323
+#: lib/graphql/resolvers/user.ex:330
 #, elixir-autogen, elixir-format
 msgid "This user can't reset their password"
 msgstr ""
@@ -232,12 +234,12 @@ msgstr ""
 msgid "Unable to validate user"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:554
+#: lib/graphql/resolvers/user.ex:583
 #, elixir-autogen, elixir-format
 msgid "User already disabled"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:619
+#: lib/graphql/resolvers/user.ex:648
 #, elixir-autogen, elixir-format
 msgid "User requested is not logged-in"
 msgstr ""
@@ -262,12 +264,12 @@ msgstr ""
 msgid "You may not list groups unless moderator."
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:519
+#: lib/graphql/resolvers/user.ex:503
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to change your email"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:476
+#: lib/graphql/resolvers/user.ex:489
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to change your password"
 msgstr ""
@@ -277,7 +279,7 @@ msgstr ""
 msgid "You need to be logged-in to delete a group"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:581
+#: lib/graphql/resolvers/user.ex:610
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to delete your account"
 msgstr ""
@@ -302,12 +304,6 @@ msgstr ""
 msgid "You need to have an existing token to get a refresh token"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:306
-#: lib/graphql/resolvers/user.ex:333
-#, elixir-autogen, elixir-format
-msgid "You requested again a confirmation email too soon"
-msgstr ""
-
 #: lib/graphql/resolvers/user.ex:180
 #, elixir-autogen, elixir-format
 msgid "Your email is not on the allowlist"
@@ -360,17 +356,17 @@ msgstr ""
 msgid "Anonymous participation is not enabled"
 msgstr ""
 
-#: lib/graphql/resolvers/person.ex:219
+#: lib/graphql/resolvers/person.ex:221
 #, elixir-autogen, elixir-format
 msgid "Cannot remove the last administrator of a group"
 msgstr ""
 
-#: lib/graphql/resolvers/person.ex:216
+#: lib/graphql/resolvers/person.ex:218
 #, elixir-autogen, elixir-format
 msgid "Cannot remove the last identity of a user"
 msgstr ""
 
-#: lib/graphql/resolvers/comment.ex:147
+#: lib/graphql/resolvers/comment.ex:153
 #, elixir-autogen, elixir-format
 msgid "Comment is already deleted"
 msgstr ""
@@ -398,8 +394,8 @@ msgid "Event id not found"
 msgstr ""
 
 #: lib/graphql/error.ex:114
-#: lib/graphql/resolvers/event.ex:355
-#: lib/graphql/resolvers/event.ex:407
+#: lib/graphql/resolvers/event.ex:382
+#: lib/graphql/resolvers/event.ex:434
 #, elixir-autogen, elixir-format
 msgid "Event not found"
 msgstr ""
@@ -407,7 +403,7 @@ msgstr ""
 #: lib/graphql/resolvers/participant.ex:87
 #: lib/graphql/resolvers/participant.ex:128
 #: lib/graphql/resolvers/participant.ex:155
-#: lib/graphql/resolvers/participant.ex:336
+#: lib/graphql/resolvers/participant.ex:343
 #, elixir-autogen, elixir-format
 msgid "Event with this ID %{id} doesn't exist"
 msgstr ""
@@ -417,7 +413,7 @@ msgstr ""
 msgid "Internal Error"
 msgstr ""
 
-#: lib/graphql/resolvers/discussion.ex:219
+#: lib/graphql/resolvers/discussion.ex:222
 #, elixir-autogen, elixir-format
 msgid "No discussion with ID %{id}"
 msgstr ""
@@ -484,10 +480,10 @@ msgstr ""
 #: lib/graphql/resolvers/post.ex:133
 #: lib/graphql/resolvers/post.ex:175
 #: lib/graphql/resolvers/post.ex:209
-#: lib/graphql/resolvers/resource.ex:90
-#: lib/graphql/resolvers/resource.ex:135
-#: lib/graphql/resolvers/resource.ex:168
-#: lib/graphql/resolvers/resource.ex:202
+#: lib/graphql/resolvers/resource.ex:92
+#: lib/graphql/resolvers/resource.ex:137
+#: lib/graphql/resolvers/resource.ex:170
+#: lib/graphql/resolvers/resource.ex:204
 #: lib/graphql/resolvers/todos.ex:58
 #: lib/graphql/resolvers/todos.ex:83
 #: lib/graphql/resolvers/todos.ex:110
@@ -499,7 +495,7 @@ msgid "Profile is not member of group"
 msgstr ""
 
 #: lib/graphql/resolvers/actor.ex:67
-#: lib/graphql/resolvers/person.ex:242
+#: lib/graphql/resolvers/person.ex:244
 #, elixir-autogen, elixir-format
 msgid "Profile not found"
 msgstr ""
@@ -509,8 +505,8 @@ msgstr ""
 msgid "Report not found"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:172
-#: lib/graphql/resolvers/resource.ex:199
+#: lib/graphql/resolvers/resource.ex:174
+#: lib/graphql/resolvers/resource.ex:201
 #, elixir-autogen, elixir-format
 msgid "Resource doesn't exist"
 msgstr ""
@@ -520,7 +516,7 @@ msgstr ""
 msgid "The event has already reached its maximum capacity"
 msgstr ""
 
-#: lib/graphql/resolvers/participant.ex:282
+#: lib/graphql/resolvers/participant.ex:289
 #, elixir-autogen, elixir-format
 msgid "This token is invalid"
 msgstr ""
@@ -554,7 +550,7 @@ msgstr ""
 msgid "User not found"
 msgstr ""
 
-#: lib/graphql/resolvers/person.ex:333
+#: lib/graphql/resolvers/person.ex:335
 #, elixir-autogen, elixir-format
 msgid "You already have a profile for this user"
 msgstr ""
@@ -576,7 +572,7 @@ msgstr ""
 msgid "You are not a moderator or admin for this group"
 msgstr ""
 
-#: lib/graphql/resolvers/comment.ex:80
+#: lib/graphql/resolvers/comment.ex:74
 #, elixir-autogen, elixir-format
 msgid "You are not allowed to create a comment if not connected"
 msgstr ""
@@ -586,7 +582,7 @@ msgstr ""
 msgid "You are not allowed to create a feed token if not connected"
 msgstr ""
 
-#: lib/graphql/resolvers/comment.ex:155
+#: lib/graphql/resolvers/comment.ex:161
 #, elixir-autogen, elixir-format
 msgid "You are not allowed to delete a comment if not connected"
 msgstr ""
@@ -596,7 +592,7 @@ msgstr ""
 msgid "You are not allowed to delete a feed token if not connected"
 msgstr ""
 
-#: lib/graphql/resolvers/comment.ex:114
+#: lib/graphql/resolvers/comment.ex:120
 #, elixir-autogen, elixir-format
 msgid "You are not allowed to update a comment if not connected"
 msgstr ""
@@ -612,12 +608,12 @@ msgstr ""
 msgid "You can't set yourself to a lower member role for this group because you are the only administrator"
 msgstr ""
 
-#: lib/graphql/resolvers/comment.ex:143
+#: lib/graphql/resolvers/comment.ex:149
 #, elixir-autogen, elixir-format
 msgid "You cannot delete this comment"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:403
+#: lib/graphql/resolvers/event.ex:430
 #, elixir-autogen, elixir-format
 msgid "You cannot delete this event"
 msgstr ""
@@ -652,17 +648,17 @@ msgstr ""
 msgid "You need to be logged-in and a moderator to view a report"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:252
+#: lib/graphql/resolvers/admin.ex:258
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in and an administrator to access admin settings"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:236
+#: lib/graphql/resolvers/admin.ex:242
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in and an administrator to access dashboard statistics"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:278
+#: lib/graphql/resolvers/admin.ex:283
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in and an administrator to save admin settings"
 msgstr ""
@@ -672,12 +668,12 @@ msgstr ""
 msgid "You need to be logged-in to access discussions"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:96
+#: lib/graphql/resolvers/resource.ex:98
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to access resources"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:313
+#: lib/graphql/resolvers/event.ex:321
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to create events"
 msgstr ""
@@ -692,12 +688,12 @@ msgstr ""
 msgid "You need to be logged-in to create reports"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:140
+#: lib/graphql/resolvers/resource.ex:142
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to create resources"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:412
+#: lib/graphql/resolvers/event.ex:439
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to delete an event"
 msgstr ""
@@ -707,7 +703,7 @@ msgstr ""
 msgid "You need to be logged-in to delete posts"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:207
+#: lib/graphql/resolvers/resource.ex:209
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to delete resources"
 msgstr ""
@@ -722,7 +718,7 @@ msgstr ""
 msgid "You need to be logged-in to leave an event"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:369
+#: lib/graphql/resolvers/event.ex:396
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to update an event"
 msgstr ""
@@ -732,17 +728,17 @@ msgstr ""
 msgid "You need to be logged-in to update posts"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:177
+#: lib/graphql/resolvers/resource.ex:179
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to update resources"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:236
+#: lib/graphql/resolvers/resource.ex:233
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to view a resource preview"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:132
+#: lib/graphql/resolvers/resource.ex:134
 #, elixir-autogen, elixir-format
 msgid "Parent resource doesn't belong to this group"
 msgstr ""
@@ -828,12 +824,12 @@ msgstr ""
 msgid "Profile is not administrator for the group"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:358
+#: lib/graphql/resolvers/event.ex:385
 #, elixir-autogen, elixir-format
 msgid "You can't edit this event."
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:361
+#: lib/graphql/resolvers/event.ex:388
 #, elixir-autogen, elixir-format
 msgid "You can't attribute this event to this profile."
 msgstr ""
@@ -853,7 +849,7 @@ msgstr ""
 msgid "You don't have the right to remove this member."
 msgstr ""
 
-#: lib/mobilizon/actors/actor.ex:377
+#: lib/mobilizon/actors/actor.ex:378
 #, elixir-autogen, elixir-format
 msgid "This username is already taken."
 msgstr ""
@@ -863,7 +859,7 @@ msgstr ""
 msgid "You must provide either an ID or a slug to access a discussion"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:275
+#: lib/graphql/resolvers/event.ex:276
 #, elixir-autogen, elixir-format
 msgid "Organizer profile is not owned by the user"
 msgstr ""
@@ -875,41 +871,41 @@ msgstr ""
 
 #: lib/graphql/resolvers/group.ex:181
 #: lib/graphql/resolvers/group.ex:223
-#: lib/graphql/resolvers/person.ex:157
-#: lib/graphql/resolvers/person.ex:191
-#: lib/graphql/resolvers/person.ex:324
+#: lib/graphql/resolvers/person.ex:159
+#: lib/graphql/resolvers/person.ex:193
+#: lib/graphql/resolvers/person.ex:326
 #, elixir-autogen, elixir-format
 msgid "The provided picture is too heavy"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:129
+#: lib/graphql/resolvers/resource.ex:131
 #, elixir-autogen, elixir-format
 msgid "Error while creating resource"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:537
+#: lib/graphql/resolvers/user.ex:566
 #, elixir-autogen, elixir-format
 msgid "Invalid activation token"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:226
+#: lib/graphql/resolvers/resource.ex:228
 #, elixir-autogen, elixir-format
 msgid "Unable to fetch resource details from this URL."
 msgstr ""
 
 #: lib/graphql/resolvers/event.ex:165
 #: lib/graphql/resolvers/participant.ex:253
-#: lib/graphql/resolvers/participant.ex:328
+#: lib/graphql/resolvers/participant.ex:335
 #, elixir-autogen, elixir-format
 msgid "Provided profile doesn't have moderator permissions on this event"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:286
+#: lib/graphql/resolvers/event.ex:294
 #, elixir-autogen, elixir-format
 msgid "Organizer profile doesn't have permission to create an event on behalf of this group"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:349
+#: lib/graphql/resolvers/event.ex:369
 #, elixir-autogen, elixir-format
 msgid "This profile doesn't have permission to update an event on behalf of this group"
 msgstr ""
@@ -919,7 +915,7 @@ msgstr ""
 msgid "Your e-mail has been denied registration or uses a disallowed e-mail provider"
 msgstr ""
 
-#: lib/graphql/resolvers/comment.ex:150
+#: lib/graphql/resolvers/comment.ex:156
 #, elixir-autogen, elixir-format
 msgid "Comment not found"
 msgstr ""
@@ -929,12 +925,12 @@ msgstr ""
 msgid "Error while creating a discussion"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:658
+#: lib/graphql/resolvers/user.ex:687
 #, elixir-autogen, elixir-format
 msgid "Error while updating locale"
 msgstr ""
 
-#: lib/graphql/resolvers/person.ex:327
+#: lib/graphql/resolvers/person.ex:329
 #, elixir-autogen, elixir-format
 msgid "Error while uploading pictures"
 msgstr ""
@@ -949,13 +945,13 @@ msgstr ""
 msgid "Failed to update the group"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:333
-#: lib/graphql/resolvers/user.ex:501
+#: lib/graphql/resolvers/admin.ex:357
+#: lib/graphql/resolvers/user.ex:547
 #, elixir-autogen, elixir-format
 msgid "Failed to update user email"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:533
+#: lib/graphql/resolvers/user.ex:562
 #, elixir-autogen, elixir-format
 msgid "Failed to validate user email"
 msgstr ""
@@ -965,37 +961,37 @@ msgstr ""
 msgid "The anonymous actor ID is invalid"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:165
+#: lib/graphql/resolvers/resource.ex:167
 #, elixir-autogen, elixir-format
 msgid "Unknown error while updating resource"
 msgstr ""
 
-#: lib/graphql/resolvers/comment.ex:105
+#: lib/graphql/resolvers/comment.ex:111
 #, elixir-autogen, elixir-format
 msgid "You are not the comment creator"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:458
+#: lib/graphql/resolvers/user.ex:471
 #, elixir-autogen, elixir-format
 msgid "You cannot change your password."
 msgstr ""
 
-#: lib/graphql/resolvers/participant.ex:321
+#: lib/graphql/resolvers/participant.ex:328
 #, elixir-autogen, elixir-format
 msgid "Format not supported"
 msgstr ""
 
-#: lib/graphql/resolvers/participant.ex:305
+#: lib/graphql/resolvers/participant.ex:312
 #, elixir-autogen, elixir-format
 msgid "A dependency needed to export to %{format} is not installed"
 msgstr ""
 
-#: lib/graphql/resolvers/participant.ex:313
+#: lib/graphql/resolvers/participant.ex:320
 #, elixir-autogen, elixir-format
 msgid "An error occured while saving export"
 msgstr ""
 
-#: lib/web/controllers/export_controller.ex:30
+#: lib/web/controllers/export_controller.ex:32
 #, elixir-autogen, elixir-format
 msgid "Export to format %{format} is not enabled on this instance"
 msgstr ""
@@ -1005,17 +1001,17 @@ msgstr ""
 msgid "Only admins can create groups"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:279
+#: lib/graphql/resolvers/event.ex:280
 #, elixir-autogen, elixir-format
 msgid "Only groups can create events"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:305
+#: lib/graphql/resolvers/event.ex:313
 #, elixir-autogen, elixir-format
 msgid "Unknown error while creating event"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:514
+#: lib/graphql/resolvers/user.ex:498
 #, elixir-autogen, elixir-format
 msgid "User cannot change email"
 msgstr ""
@@ -1030,12 +1026,12 @@ msgstr ""
 msgid "Follow not found"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:379
+#: lib/graphql/resolvers/user.ex:392
 #, elixir-autogen, elixir-format
 msgid "Profile with username %{username} not found"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:374
+#: lib/graphql/resolvers/user.ex:387
 #, elixir-autogen, elixir-format
 msgid "This profile does not belong to you"
 msgstr ""
@@ -1080,22 +1076,22 @@ msgstr ""
 msgid "Your email seems to be using an invalid format"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:382
+#: lib/graphql/resolvers/admin.ex:399
 #, elixir-autogen, elixir-format
 msgid "Can't confirm an already confirmed user"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:386
+#: lib/graphql/resolvers/admin.ex:403
 #, elixir-autogen, elixir-format
 msgid "Deconfirming users is not supported"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:358
+#: lib/graphql/resolvers/admin.ex:375
 #, elixir-autogen, elixir-format, fuzzy
 msgid "The new role must be different"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:309
+#: lib/graphql/resolvers/admin.ex:314
 #, elixir-autogen, elixir-format, fuzzy
 msgid "You need to be logged-in and an administrator to edit an user's details"
 msgstr ""
@@ -1105,28 +1101,28 @@ msgstr ""
 msgid "A profile or group with that name already exists"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:519
+#: lib/graphql/resolvers/admin.ex:542
 #, elixir-autogen, elixir-format
 msgid "Unable to find an instance to follow at this address"
 msgstr ""
 
-#: lib/mobilizon/actors/actor.ex:396
+#: lib/mobilizon/actors/actor.ex:397
 #, elixir-autogen, elixir-format
 msgid "Username must only contain alphanumeric lowercased characters and underscores."
 msgstr ""
 
 #: lib/graphql/resolvers/user.ex:303
-#: lib/graphql/resolvers/user.ex:326
+#: lib/graphql/resolvers/user.ex:333
 #, elixir-autogen, elixir-format, fuzzy
 msgid "This email doesn't seem to be valid"
 msgstr ""
 
-#: lib/graphql/resolvers/comment.ex:65
+#: lib/graphql/resolvers/comment.ex:59
 #, elixir-autogen, elixir-format
 msgid "This comment was detected as spam."
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:293
+#: lib/graphql/resolvers/event.ex:301
 #, elixir-autogen, elixir-format
 msgid "This event was detected as spam."
 msgstr ""
@@ -1147,7 +1143,7 @@ msgstr ""
 msgid "You need to be a moderator or an administrator to create a note on a report"
 msgstr ""
 
-#: lib/graphql/resolvers/person.ex:330
+#: lib/graphql/resolvers/person.ex:332
 #, elixir-autogen, elixir-format
 msgid "Your profile was detected as spam."
 msgstr ""
@@ -1157,7 +1153,7 @@ msgstr ""
 msgid "Your registration has been detected as spam and cannot be processed."
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:86
+#: lib/web/controllers/application_controller.ex:88
 #, elixir-autogen, elixir-format
 msgid "All of name, scope and redirect_uri parameters are required to create an application"
 msgstr ""
@@ -1172,171 +1168,227 @@ msgstr ""
 msgid "Application token not found"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:89
+#: lib/graphql/resolvers/application.ex:90
 #, elixir-autogen, elixir-format, fuzzy
 msgid "Error while revoking token"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:59
+#: lib/web/controllers/application_controller.ex:61
 #, elixir-autogen, elixir-format
 msgid "Impossible to create application."
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:356
+#: lib/web/controllers/application_controller.ex:358
 #, elixir-autogen, elixir-format
 msgid "Incorrect parameters sent. You need to provide at least the grant_type and client_id parameters, depending on the grant type being used."
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:329
+#: lib/web/controllers/application_controller.ex:331
 #, elixir-autogen, elixir-format
 msgid "Invalid client credentials provided"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:337
+#: lib/web/controllers/application_controller.ex:339
 #, elixir-autogen, elixir-format
 msgid "Invalid refresh token provided"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:170
-#: lib/web/controllers/application_controller.ex:401
+#: lib/web/controllers/application_controller.ex:172
+#: lib/web/controllers/application_controller.ex:403
 #, elixir-autogen, elixir-format
 msgid "No application was found with this client_id"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:37
+#: lib/graphql/resolvers/application.ex:38
 #, elixir-autogen, elixir-format
 msgid "No application with this client_id was found"
 msgstr ""
 
-#: lib/graphql/authorization.ex:80
+#: lib/graphql/authorization.ex:81
 #, elixir-autogen, elixir-format
 msgid "Not authorized to access field %{field}"
 msgstr ""
 
-#: lib/graphql/authorization.ex:70
-#: lib/graphql/authorization.ex:75
+#: lib/graphql/authorization.ex:71
+#: lib/graphql/authorization.ex:76
 #, elixir-autogen, elixir-format
 msgid "Not authorized to access object %{object}"
 msgstr ""
 
-#: lib/graphql/authorization.ex:63
+#: lib/graphql/authorization.ex:64
 #, elixir-autogen, elixir-format
 msgid "Not authorized to access this %{object_type}"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:279
+#: lib/web/controllers/application_controller.ex:281
 #, elixir-autogen, elixir-format
 msgid "Please slow down the rate of your requests"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:267
+#: lib/web/controllers/application_controller.ex:269
 #, elixir-autogen, elixir-format
 msgid "The authorization request is still pending"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:249
+#: lib/web/controllers/application_controller.ex:251
 #, elixir-autogen, elixir-format
 msgid "The client_id provided or the device_code associated is invalid"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:133
+#: lib/graphql/resolvers/application.ex:139
 #, elixir-autogen, elixir-format
 msgid "The device user code was not provided before approving the application"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:304
+#: lib/web/controllers/application_controller.ex:306
 #, elixir-autogen, elixir-format
 msgid "The given device_code has expired"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:44
+#: lib/graphql/resolvers/application.ex:45
 #, elixir-autogen, elixir-format
 msgid "The given redirect_uri is not in the list of allowed redirect URIs"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:158
+#: lib/web/controllers/application_controller.ex:160
 #, elixir-autogen, elixir-format
 msgid "The given scope is not in the list of the app declared scopes"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:109
-#: lib/graphql/resolvers/application.ex:146
+#: lib/graphql/resolvers/application.ex:112
+#: lib/graphql/resolvers/application.ex:154
 #, elixir-autogen, elixir-format
 msgid "The given user code has expired"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:112
-#: lib/graphql/resolvers/application.ex:140
+#: lib/graphql/resolvers/application.ex:118
+#: lib/graphql/resolvers/application.ex:146
 #, elixir-autogen, elixir-format
 msgid "The given user code is invalid"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:411
+#: lib/web/controllers/application_controller.ex:413
 #, elixir-autogen, elixir-format
 msgid "The provided client_id does not match the provided code"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:414
+#: lib/web/controllers/application_controller.ex:416
 #, elixir-autogen, elixir-format
 msgid "The provided client_secret is invalid"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:407
+#: lib/web/controllers/application_controller.ex:409
 #, elixir-autogen, elixir-format
 msgid "The provided code is invalid or expired"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:418
+#: lib/web/controllers/application_controller.ex:420
 #, elixir-autogen, elixir-format
 msgid "The provided scope is invalid or not included in the app declared scopes"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:45
+#: lib/web/controllers/application_controller.ex:47
 #, elixir-autogen, elixir-format
 msgid "The scope parameter is not a space separated list of valid scopes"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:292
+#: lib/web/controllers/application_controller.ex:294
 #, elixir-autogen, elixir-format
 msgid "The user rejected the requested authorization"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:404
+#: lib/web/controllers/application_controller.ex:406
 #, elixir-autogen, elixir-format
 msgid "This redirect URI is not allowed"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:381
+#: lib/web/controllers/application_controller.ex:383
 #, elixir-autogen, elixir-format, fuzzy
 msgid "Token not found"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:72
+#: lib/web/controllers/application_controller.ex:74
 #, elixir-autogen, elixir-format
 msgid "Too many requests"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:184
+#: lib/web/controllers/application_controller.ex:186
 #, elixir-autogen, elixir-format
 msgid "Unable to produce device code"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:373
+#: lib/web/controllers/application_controller.ex:375
 #, elixir-autogen, elixir-format
 msgid "Unable to revoke token"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:198
+#: lib/web/controllers/application_controller.ex:200
 #, elixir-autogen, elixir-format
 msgid "You need to pass both client_id and scope as parameters to obtain a device code"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:136
+#: lib/web/controllers/application_controller.ex:138
 #, elixir-autogen, elixir-format
 msgid "You need to provide a valid redirect_uri to autorize an application"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:126
+#: lib/web/controllers/application_controller.ex:128
 #, elixir-autogen, elixir-format
 msgid "You need to specify client_id, redirect_uri, scope and state to autorize an application"
 msgstr ""
+
+#: lib/graphql/resolvers/user.ex:306
+#, elixir-autogen, elixir-format
+msgid "Couldn't send an email. Internal error."
+msgstr ""
+
+#: lib/graphql/resolvers/participant.ex:286
+#, elixir-autogen, elixir-format
+msgid "Participation is already confirmed"
+msgstr ""
+
+#: lib/graphql/resolvers/participant.ex:283
+#, elixir-autogen, elixir-format
+msgid "Participation is confirmed but not approved yet by an organizer"
+msgstr ""
+
+#: lib/graphql/resolvers/event.ex:287
+#: lib/graphql/resolvers/event.ex:376
+#, elixir-autogen, elixir-format
+msgid "Providing external registration is not allowed"
+msgstr ""
+
+#: lib/graphql/resolvers/push_subscription.ex:48
+#, elixir-autogen, elixir-format
+msgid "The same push subscription has already been registered"
+msgstr ""
+
+#: lib/graphql/resolvers/admin.ex:536
+#, elixir-autogen, elixir-format
+msgid "This instance is pending follow approval"
+msgstr ""
+
+#: lib/graphql/schema/custom/timezone.ex:23
+#, elixir-autogen, elixir-format
+msgid "Timezone ID %{timezone} is invalid"
+msgstr ""
+
+#: lib/graphql/resolvers/admin.ex:539
+#, elixir-autogen, elixir-format, fuzzy
+msgid "You are already following this instance"
+msgstr ""
+
+#: lib/graphql/resolvers/user.ex:310
+#, elixir-autogen, elixir-format, fuzzy
+msgid "You requested again a confirmation email too soon. Please try again in a few minutes"
+msgstr ""
+
+#: lib/graphql/resolvers/user.ex:341
+#, elixir-autogen, elixir-format
+msgid "You requested again a password reset email too soon. Please try again in a few minutes"
+msgstr ""
+
+#: lib/graphql/resolvers/user.ex:368
+#, elixir-autogen, elixir-format
+msgid "The token you provided is invalid. Make sure that the URL is exactly the one provided inside the email you got."
+msgstr ""
diff --git a/priv/gettext/gl/LC_MESSAGES/activity.po b/priv/gettext/gl/LC_MESSAGES/activity.po
index fe01cebfc1142c23f3912bc6c798af9341934044..c4debeee95eac0ffa402a86ccb544bdd4355024e 100644
--- a/priv/gettext/gl/LC_MESSAGES/activity.po
+++ b/priv/gettext/gl/LC_MESSAGES/activity.po
@@ -9,7 +9,7 @@
 msgid ""
 msgstr ""
 "Language: gl\n"
-"Plural-Forms: nplurals=2\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
 
 #: lib/web/templates/email/activity/_member_activity_item.html.heex:14
 #: lib/web/templates/email/activity/_member_activity_item.text.eex:12
@@ -454,3 +454,15 @@ msgstr ""
 #, elixir-autogen, elixir-format, fuzzy
 msgid "%{profile} approved the member %{member}."
 msgstr ""
+
+#: lib/service/activity/renderer/event.ex:74
+#: lib/web/templates/email/activity/_event_activity_item.html.heex:55
+#: lib/web/templates/email/activity/_event_activity_item.text.eex:31
+#, elixir-autogen, elixir-format
+msgid "%{profile} joined your event %{event}."
+msgstr ""
+
+#: lib/web/views/email_view.ex:45
+#, elixir-autogen, elixir-format
+msgid "An anonymous profile"
+msgstr ""
diff --git a/priv/gettext/gl/LC_MESSAGES/default.po b/priv/gettext/gl/LC_MESSAGES/default.po
index 59e4c209cc1ea57266220ff2f301266aeda25551..7406d80ba29486d768fae40130e69cc6aa67e714 100644
--- a/priv/gettext/gl/LC_MESSAGES/default.po
+++ b/priv/gettext/gl/LC_MESSAGES/default.po
@@ -21,7 +21,7 @@ msgstr ""
 "Se non solicitaches isto, ignora este email. O teu constrasinal non cambiará "
 "ata que accedas á ligazón inferior e cres un novo."
 
-#: lib/web/templates/email/report.html.heex:120
+#: lib/web/templates/email/report.html.heex:121
 #, elixir-autogen, elixir-format
 msgid "%{title} by %{creator}"
 msgstr "%{title} por %{creator}"
@@ -37,23 +37,17 @@ msgstr "Activar a miña conta"
 msgid "Ask the community on Framacolibri"
 msgstr "Pregunta á comunidade en Framacolibri"
 
-#: lib/web/templates/email/report.text.eex:15
+#: lib/web/templates/email/report.text.eex:17
 #, elixir-autogen, elixir-format
 msgid "Comments"
 msgstr "Comentarios"
 
-#: lib/web/templates/email/report.html.heex:115
-#: lib/web/templates/email/report.text.eex:11
-#, elixir-autogen, elixir-format
-msgid "Event"
-msgstr "Evento"
-
 #: lib/web/email/user.ex:49
 #, elixir-autogen, elixir-format
 msgid "Instructions to reset your password on %{instance}"
 msgstr "Instruccións para restablecer o contrasinal en %{instance}"
 
-#: lib/web/templates/email/report.text.eex:21
+#: lib/web/templates/email/report.text.eex:23
 #, elixir-autogen, elixir-format
 msgid "Reason"
 msgstr "Razón"
@@ -351,12 +345,12 @@ msgctxt "terms"
 msgid "What information do we collect?"
 msgstr "Que información recollemos?"
 
-#: lib/web/email/user.ex:182
+#: lib/web/email/user.ex:188
 #, elixir-autogen, elixir-format
 msgid "Mobilizon on %{instance}: confirm your email address"
 msgstr "Mobilizon en %{instance}: confirma o enderezo de email"
 
-#: lib/web/email/user.ex:159
+#: lib/web/email/user.ex:165
 #, elixir-autogen, elixir-format
 msgid "Mobilizon on %{instance}: email changed"
 msgstr "Mobilizon en %{instance}: email cambiado"
@@ -972,7 +966,7 @@ msgstr "Fin"
 msgid "Event update!"
 msgstr "Actualización do evento!"
 
-#: lib/web/templates/email/report.html.heex:155
+#: lib/web/templates/email/report.html.heex:158
 #, elixir-autogen, elixir-format
 msgid "Flagged comments"
 msgstr "Comentarios marcados"
@@ -1068,7 +1062,7 @@ msgstr "Case rematamos!"
 msgid "New email confirmation"
 msgstr "Novo email de confirmación"
 
-#: lib/web/templates/email/report.html.heex:191
+#: lib/web/templates/email/report.html.heex:194
 #, elixir-autogen, elixir-format
 msgid "Reasons for report"
 msgstr "Razóns para denunciar"
@@ -1127,12 +1121,12 @@ msgstr "É unha mágoa, pero a organización rexeitou a túa solicitude."
 msgid "Verify your email address"
 msgstr "Verifica o teu enderezo de email"
 
-#: lib/web/templates/email/report.html.heex:232
+#: lib/web/templates/email/report.html.heex:235
 #, elixir-autogen, elixir-format
 msgid "View report"
 msgstr "Ver denuncia"
 
-#: lib/web/templates/email/report.text.eex:24
+#: lib/web/templates/email/report.text.eex:26
 #, elixir-autogen, elixir-format
 msgid "View report:"
 msgstr "Ver denuncia:"
@@ -1245,14 +1239,6 @@ msgstr ""
 "Este grupo estaba localizado noutra instancia, seguirá funcionando para "
 "outras instancias pero non nesta."
 
-#: lib/web/templates/email/group_suspension.html.heex:67
-#: lib/web/templates/email/group_suspension.text.eex:5
-#, elixir-autogen, elixir-format
-msgid "As this group was located on this instance, all of it's data has been irretrievably deleted."
-msgstr ""
-"Como este grupo estaba noutra instancia, todos os seus datos serán "
-"irreversiblemente eliminados."
-
 #: lib/web/templates/email/group_suspension.html.heex:18
 #: lib/web/templates/email/group_suspension.text.eex:1
 #, elixir-autogen, elixir-format
@@ -1266,7 +1252,7 @@ msgstr ""
 "Os moderadores da túa instancia decidiron suspender %{group_name} "
 "(%{group_address}). Xa non pertences a este grupo."
 
-#: lib/web/email/group.ex:107
+#: lib/web/email/group.ex:108
 #, elixir-autogen, elixir-format
 msgid "The group %{group} has been suspended on %{instance}"
 msgstr "O grupo %{group} foi suspendido en %{instance}"
@@ -1629,20 +1615,6 @@ msgstr ""
 msgid "Public feed for %{instance}"
 msgstr "Fonte pública de %{instance}"
 
-#: lib/graphql/resolvers/user.ex:350
-#, elixir-autogen, elixir-format
-msgid "The password you have choosen is too short. Please make sure your password contains at least 6 charaters."
-msgstr ""
-"O contrasinal escollido é demasiado curto. Comproba que o teu contrasinal "
-"teña polo menos 6 caracteres."
-
-#: lib/graphql/resolvers/user.ex:356
-#, elixir-autogen, elixir-format
-msgid "The token you provided is invalid. Make sure that the URL is exactly the one provided inside the email you got."
-msgstr ""
-"O token proporcionado non é válido. Asegúrate de que o URL é exactamente o "
-"proporcionado no email que recibiches."
-
 #: lib/web/email/actor.ex:43
 #, elixir-autogen, elixir-format
 msgid "Your participation to %{event} has been cancelled!"
@@ -1670,63 +1642,63 @@ msgid "Your participation to %{event} on %{instance} has been cancelled!"
 msgstr "Confirmouse a túa participación no evento %{title}"
 
 #. File name template for exported list of participants. Should NOT contain spaces. Make sure the output is going to be something standardized that is acceptable as a file name on most systems.
-#: lib/service/export/participants/csv.ex:81
+#: lib/service/export/participants/csv.ex:97
 #: lib/service/export/participants/ods.ex:86
 #: lib/service/export/participants/pdf.ex:96
 #, elixir-autogen, elixir-format
 msgid "%{event}_participants"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:61
+#: lib/service/export/participants/common.ex:66
 #, elixir-autogen, elixir-format
 msgid "Participant message"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:61
+#: lib/service/export/participants/common.ex:63
 #, elixir-autogen, elixir-format
 msgid "Participant name"
 msgstr "Participación aprobada"
 
-#: lib/service/export/participants/common.ex:61
+#: lib/service/export/participants/common.ex:64
 #, elixir-autogen, elixir-format
 msgid "Participant status"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:52
+#: lib/service/export/participants/common.ex:53
 #: lib/web/templates/email/admin/_role.html.heex:3
 #: lib/web/templates/email/admin/_role.text.eex:1
 #, elixir-autogen, elixir-format
 msgid "Administrator"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:55
+#: lib/service/export/participants/common.ex:56
 #, elixir-autogen, elixir-format
 msgid "Creator"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:49
+#: lib/service/export/participants/common.ex:50
 #: lib/web/templates/email/admin/_role.html.heex:5
 #: lib/web/templates/email/admin/_role.text.eex:1
 #, elixir-autogen, elixir-format
 msgid "Moderator"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:37
+#: lib/service/export/participants/common.ex:38
 #, elixir-autogen, elixir-format
 msgid "Not approved"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:40
+#: lib/service/export/participants/common.ex:41
 #, elixir-autogen, elixir-format
 msgid "Not confirmed"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:46
+#: lib/service/export/participants/common.ex:47
 #, elixir-autogen, elixir-format
 msgid "Participant"
 msgstr "Participación aprobada"
 
-#: lib/service/export/participants/common.ex:43
+#: lib/service/export/participants/common.ex:44
 #, elixir-autogen, elixir-format
 msgid "Rejected"
 msgstr ""
@@ -1751,7 +1723,7 @@ msgstr ""
 msgid "Participants for %{event}"
 msgstr "Participación aprobada"
 
-#: lib/service/export/participants/common.ex:88
+#: lib/service/export/participants/common.ex:95
 #, elixir-autogen, elixir-format
 msgid "Anonymous participant"
 msgstr ""
@@ -1870,7 +1842,7 @@ msgstr "Participación aprobada"
 msgid "Title: %{title}"
 msgstr ""
 
-#: lib/web/email/group.ex:46
+#: lib/web/email/group.ex:47
 #, elixir-autogen, elixir-format
 msgid "📅 Just scheduled by %{group}: %{event}"
 msgstr ""
@@ -2292,3 +2264,26 @@ msgstr ""
 #, elixir-autogen, elixir-format
 msgid "Until next time!"
 msgstr ""
+
+#: lib/web/templates/email/group_suspension.html.heex:67
+#: lib/web/templates/email/group_suspension.text.eex:5
+#, elixir-autogen, elixir-format, fuzzy
+msgid "As this group was located on this instance, all of its data has been irretrievably deleted."
+msgstr ""
+"Como este grupo estaba noutra instancia, todos os seus datos serán "
+"irreversiblemente eliminados."
+
+#: lib/web/templates/email/report.text.eex:11
+#, elixir-autogen, elixir-format, fuzzy
+msgid "Events"
+msgstr "Evento"
+
+#: lib/web/templates/email/report.html.heex:115
+#, elixir-autogen, elixir-format, fuzzy
+msgid "Flagged events"
+msgstr "Comentarios marcados"
+
+#: lib/service/export/participants/common.ex:65
+#, elixir-autogen, elixir-format, fuzzy
+msgid "Participant registration date"
+msgstr ""
diff --git a/priv/gettext/gl/LC_MESSAGES/errors.po b/priv/gettext/gl/LC_MESSAGES/errors.po
index da74ecb242af79d193c30fc13d105f2af395c024..1dc600a5177f5928de7fc56242e2a6aebe7e2a40 100644
--- a/priv/gettext/gl/LC_MESSAGES/errors.po
+++ b/priv/gettext/gl/LC_MESSAGES/errors.po
@@ -110,7 +110,7 @@ msgstr "O perfil actual non é membro deste grupo"
 msgid "Current profile is not an administrator of the selected group"
 msgstr "O perfil actual non é administrador do grupo seleccionado"
 
-#: lib/graphql/resolvers/user.ex:644
+#: lib/graphql/resolvers/user.ex:673
 #, elixir-autogen, elixir-format
 msgid "Error while saving user settings"
 msgstr "Erro ó gardar os axustes de usuaria"
@@ -154,8 +154,8 @@ msgstr "Non se atopou o perfil para a usuaria moderadora"
 msgid "No user to validate with this email was found"
 msgstr "Non se atopou unha usuaria con este email para validar"
 
-#: lib/graphql/resolvers/person.ex:337
-#: lib/graphql/resolvers/user.ex:330
+#: lib/graphql/resolvers/person.ex:339
+#: lib/graphql/resolvers/user.ex:337
 #, elixir-autogen, elixir-format
 msgid "No user with this email was found"
 msgstr "Non se atopa ningunha usuaria con este email"
@@ -163,12 +163,12 @@ msgstr "Non se atopa ningunha usuaria con este email"
 #: lib/graphql/resolvers/feed_token.ex:28
 #: lib/graphql/resolvers/participant.ex:32
 #: lib/graphql/resolvers/participant.ex:210
-#: lib/graphql/resolvers/person.ex:245
-#: lib/graphql/resolvers/person.ex:376
-#: lib/graphql/resolvers/person.ex:412
-#: lib/graphql/resolvers/person.ex:419
-#: lib/graphql/resolvers/person.ex:448
-#: lib/graphql/resolvers/person.ex:463
+#: lib/graphql/resolvers/person.ex:247
+#: lib/graphql/resolvers/person.ex:378
+#: lib/graphql/resolvers/person.ex:414
+#: lib/graphql/resolvers/person.ex:421
+#: lib/graphql/resolvers/person.ex:450
+#: lib/graphql/resolvers/person.ex:465
 #, elixir-autogen, elixir-format
 msgid "Profile is not owned by authenticated user"
 msgstr "O perfil non pertence a unha usuaria autenticada"
@@ -178,43 +178,44 @@ msgstr "O perfil non pertence a unha usuaria autenticada"
 msgid "Registrations are not open"
 msgstr "O rexistro está pechado"
 
-#: lib/graphql/resolvers/user.ex:461
+#: lib/graphql/resolvers/user.ex:474
 #, elixir-autogen, elixir-format
 msgid "The current password is invalid"
 msgstr "O contrasinal actual non é válido"
 
-#: lib/graphql/resolvers/admin.ex:336
-#: lib/graphql/resolvers/user.ex:504
+#: lib/graphql/resolvers/admin.ex:334
+#: lib/graphql/resolvers/user.ex:527
 #, elixir-autogen, elixir-format
 msgid "The new email doesn't seem to be valid"
 msgstr "O novo email non semella ser válido"
 
-#: lib/graphql/resolvers/admin.ex:339
-#: lib/graphql/resolvers/user.ex:507
+#: lib/graphql/resolvers/admin.ex:323
+#: lib/graphql/resolvers/user.ex:514
 #, elixir-autogen, elixir-format
 msgid "The new email must be different"
 msgstr "O novo email ten que ser diferente"
 
-#: lib/graphql/resolvers/user.ex:464
+#: lib/graphql/resolvers/user.ex:477
 #, elixir-autogen, elixir-format
 msgid "The new password must be different"
 msgstr "O novo contrasinal ten que ser diferente"
 
-#: lib/graphql/resolvers/user.ex:511
-#: lib/graphql/resolvers/user.ex:573
-#: lib/graphql/resolvers/user.ex:576
+#: lib/graphql/resolvers/user.ex:518
+#: lib/graphql/resolvers/user.ex:602
+#: lib/graphql/resolvers/user.ex:605
 #, elixir-autogen, elixir-format
 msgid "The password provided is invalid"
 msgstr "O contrasinal escrito non é válido"
 
-#: lib/graphql/resolvers/user.ex:468
+#: lib/graphql/resolvers/user.ex:361
+#: lib/graphql/resolvers/user.ex:481
 #, elixir-autogen, elixir-format
 msgid "The password you have chosen is too short. Please make sure your password contains at least 6 characters."
 msgstr ""
 "O contrasinal escollido é demasiado curto, ten que ter 6 caracteres polo "
 "menos."
 
-#: lib/graphql/resolvers/user.ex:323
+#: lib/graphql/resolvers/user.ex:330
 #, elixir-autogen, elixir-format
 msgid "This user can't reset their password"
 msgstr "Esta usuaria non pode restablecer o seu contrasinal"
@@ -230,12 +231,12 @@ msgstr "Estab usuaria foi desactivada"
 msgid "Unable to validate user"
 msgstr "Non se puido validar a usuaria"
 
-#: lib/graphql/resolvers/user.ex:554
+#: lib/graphql/resolvers/user.ex:583
 #, elixir-autogen, elixir-format
 msgid "User already disabled"
 msgstr "A usuaria xa está desactivada"
 
-#: lib/graphql/resolvers/user.ex:619
+#: lib/graphql/resolvers/user.ex:648
 #, elixir-autogen, elixir-format
 msgid "User requested is not logged-in"
 msgstr "A usuaria solicitada non está conectada"
@@ -260,12 +261,12 @@ msgstr "Non podes unirte a este grupo"
 msgid "You may not list groups unless moderator."
 msgstr "Non podes facer listas de grupos porque non es moderadora."
 
-#: lib/graphql/resolvers/user.ex:519
+#: lib/graphql/resolvers/user.ex:503
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to change your email"
 msgstr "Tes que estar conectada para poder cambiar o email"
 
-#: lib/graphql/resolvers/user.ex:476
+#: lib/graphql/resolvers/user.ex:489
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to change your password"
 msgstr "Tes que estar conectada para poder cambiar o contrasinal"
@@ -275,7 +276,7 @@ msgstr "Tes que estar conectada para poder cambiar o contrasinal"
 msgid "You need to be logged-in to delete a group"
 msgstr "Tes que estar conectada para poder eleminar un grupo"
 
-#: lib/graphql/resolvers/user.ex:581
+#: lib/graphql/resolvers/user.ex:610
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to delete your account"
 msgstr "Tes que estar conectada para poder eliminar a conta"
@@ -300,12 +301,6 @@ msgstr "Tes que estar conectada para poder actualizar un grupo"
 msgid "You need to have an existing token to get a refresh token"
 msgstr "Tes que ter un token existente para obter un token actualizado"
 
-#: lib/graphql/resolvers/user.ex:306
-#: lib/graphql/resolvers/user.ex:333
-#, elixir-autogen, elixir-format
-msgid "You requested again a confirmation email too soon"
-msgstr "Solicitaches demasiado pronto un email de confirmación"
-
 #: lib/graphql/resolvers/user.ex:180
 #, elixir-autogen, elixir-format
 msgid "Your email is not on the allowlist"
@@ -358,17 +353,17 @@ msgstr "A túa instancia require un email válido"
 msgid "Anonymous participation is not enabled"
 msgstr "Non está permitida a participación ánonima"
 
-#: lib/graphql/resolvers/person.ex:219
+#: lib/graphql/resolvers/person.ex:221
 #, elixir-autogen, elixir-format
 msgid "Cannot remove the last administrator of a group"
 msgstr "Non se pode eliminar a última administradora dun grupo"
 
-#: lib/graphql/resolvers/person.ex:216
+#: lib/graphql/resolvers/person.ex:218
 #, elixir-autogen, elixir-format
 msgid "Cannot remove the last identity of a user"
 msgstr "Non se pode eliminar a última identidade dunha usuaria"
 
-#: lib/graphql/resolvers/comment.ex:147
+#: lib/graphql/resolvers/comment.ex:153
 #, elixir-autogen, elixir-format
 msgid "Comment is already deleted"
 msgstr "O comentario xa foi eliminado"
@@ -396,8 +391,8 @@ msgid "Event id not found"
 msgstr "Non se atopou o ID do evento"
 
 #: lib/graphql/error.ex:114
-#: lib/graphql/resolvers/event.ex:355
-#: lib/graphql/resolvers/event.ex:407
+#: lib/graphql/resolvers/event.ex:382
+#: lib/graphql/resolvers/event.ex:434
 #, elixir-autogen, elixir-format
 msgid "Event not found"
 msgstr "Evento non atopado"
@@ -405,7 +400,7 @@ msgstr "Evento non atopado"
 #: lib/graphql/resolvers/participant.ex:87
 #: lib/graphql/resolvers/participant.ex:128
 #: lib/graphql/resolvers/participant.ex:155
-#: lib/graphql/resolvers/participant.ex:336
+#: lib/graphql/resolvers/participant.ex:343
 #, elixir-autogen, elixir-format
 msgid "Event with this ID %{id} doesn't exist"
 msgstr "Non existe un evento co ID %{id}"
@@ -415,7 +410,7 @@ msgstr "Non existe un evento co ID %{id}"
 msgid "Internal Error"
 msgstr "Erro interno"
 
-#: lib/graphql/resolvers/discussion.ex:219
+#: lib/graphql/resolvers/discussion.ex:222
 #, elixir-autogen, elixir-format
 msgid "No discussion with ID %{id}"
 msgstr "Non hai conversa con ID %{id}"
@@ -482,10 +477,10 @@ msgstr "O perfil xa é membro deste grupo"
 #: lib/graphql/resolvers/post.ex:133
 #: lib/graphql/resolvers/post.ex:175
 #: lib/graphql/resolvers/post.ex:209
-#: lib/graphql/resolvers/resource.ex:90
-#: lib/graphql/resolvers/resource.ex:135
-#: lib/graphql/resolvers/resource.ex:168
-#: lib/graphql/resolvers/resource.ex:202
+#: lib/graphql/resolvers/resource.ex:92
+#: lib/graphql/resolvers/resource.ex:137
+#: lib/graphql/resolvers/resource.ex:170
+#: lib/graphql/resolvers/resource.ex:204
 #: lib/graphql/resolvers/todos.ex:58
 #: lib/graphql/resolvers/todos.ex:83
 #: lib/graphql/resolvers/todos.ex:110
@@ -497,7 +492,7 @@ msgid "Profile is not member of group"
 msgstr "O perfil non é membro do grupo"
 
 #: lib/graphql/resolvers/actor.ex:67
-#: lib/graphql/resolvers/person.ex:242
+#: lib/graphql/resolvers/person.ex:244
 #, elixir-autogen, elixir-format
 msgid "Profile not found"
 msgstr "Perfil non atopado"
@@ -507,8 +502,8 @@ msgstr "Perfil non atopado"
 msgid "Report not found"
 msgstr "Denuncia non atopada"
 
-#: lib/graphql/resolvers/resource.ex:172
-#: lib/graphql/resolvers/resource.ex:199
+#: lib/graphql/resolvers/resource.ex:174
+#: lib/graphql/resolvers/resource.ex:201
 #, elixir-autogen, elixir-format
 msgid "Resource doesn't exist"
 msgstr "Non existe o recurso"
@@ -518,7 +513,7 @@ msgstr "Non existe o recurso"
 msgid "The event has already reached its maximum capacity"
 msgstr "Este evento xa acadou a súa capacidade máxima"
 
-#: lib/graphql/resolvers/participant.ex:282
+#: lib/graphql/resolvers/participant.ex:289
 #, elixir-autogen, elixir-format
 msgid "This token is invalid"
 msgstr "Este token non é válido"
@@ -552,7 +547,7 @@ msgstr "O token non é un UUID válido"
 msgid "User not found"
 msgstr "Usuaria non atopada"
 
-#: lib/graphql/resolvers/person.ex:333
+#: lib/graphql/resolvers/person.ex:335
 #, elixir-autogen, elixir-format
 msgid "You already have a profile for this user"
 msgstr "Xa tes un perfil para esta usuaria"
@@ -574,7 +569,7 @@ msgstr "Non es membro deste grupo"
 msgid "You are not a moderator or admin for this group"
 msgstr "Non es moderadora ou administradora deste grupo"
 
-#: lib/graphql/resolvers/comment.ex:80
+#: lib/graphql/resolvers/comment.ex:74
 #, elixir-autogen, elixir-format
 msgid "You are not allowed to create a comment if not connected"
 msgstr "Non tes permiso para crear un comentario sen estar conectada"
@@ -584,7 +579,7 @@ msgstr "Non tes permiso para crear un comentario sen estar conectada"
 msgid "You are not allowed to create a feed token if not connected"
 msgstr "Non tes permiso para crear un token da fonte se non estás conectada"
 
-#: lib/graphql/resolvers/comment.ex:155
+#: lib/graphql/resolvers/comment.ex:161
 #, elixir-autogen, elixir-format
 msgid "You are not allowed to delete a comment if not connected"
 msgstr "Non tes permiso para eliminar un comentario se non estás conectada"
@@ -594,7 +589,7 @@ msgstr "Non tes permiso para eliminar un comentario se non estás conectada"
 msgid "You are not allowed to delete a feed token if not connected"
 msgstr "Non tes permiso para eliminar o token da fonte se non estás conectada"
 
-#: lib/graphql/resolvers/comment.ex:114
+#: lib/graphql/resolvers/comment.ex:120
 #, elixir-autogen, elixir-format
 msgid "You are not allowed to update a comment if not connected"
 msgstr "Non tes permiso para actualizar un comentario se non estás conectada"
@@ -613,12 +608,12 @@ msgstr ""
 "Non podes adxudicarte un rol menor neste grupo porque es a única "
 "administradora"
 
-#: lib/graphql/resolvers/comment.ex:143
+#: lib/graphql/resolvers/comment.ex:149
 #, elixir-autogen, elixir-format
 msgid "You cannot delete this comment"
 msgstr "Non podes eliminar este comentario"
 
-#: lib/graphql/resolvers/event.ex:403
+#: lib/graphql/resolvers/event.ex:430
 #, elixir-autogen, elixir-format
 msgid "You cannot delete this event"
 msgstr "Non podes eliminar este evento"
@@ -655,21 +650,21 @@ msgstr "Tes que estas conectada e ser moderadora para actualizar unha denuncia"
 msgid "You need to be logged-in and a moderator to view a report"
 msgstr "Tes que estar conectada e ser moderadora para ver unha denuncia"
 
-#: lib/graphql/resolvers/admin.ex:252
+#: lib/graphql/resolvers/admin.ex:258
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in and an administrator to access admin settings"
 msgstr ""
 "Tes que estar conectada e ser administradora para acceder ós axustes de "
 "administración"
 
-#: lib/graphql/resolvers/admin.ex:236
+#: lib/graphql/resolvers/admin.ex:242
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in and an administrator to access dashboard statistics"
 msgstr ""
 "Tes que estar conectada e ser administradora para acceder ó taboleiro de "
 "estatísticas"
 
-#: lib/graphql/resolvers/admin.ex:278
+#: lib/graphql/resolvers/admin.ex:283
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in and an administrator to save admin settings"
 msgstr ""
@@ -681,12 +676,12 @@ msgstr ""
 msgid "You need to be logged-in to access discussions"
 msgstr "Tes que estar conectada para acceder ás conversas"
 
-#: lib/graphql/resolvers/resource.ex:96
+#: lib/graphql/resolvers/resource.ex:98
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to access resources"
 msgstr "Tes que estar conectada para acceder ós recursos"
 
-#: lib/graphql/resolvers/event.ex:313
+#: lib/graphql/resolvers/event.ex:321
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to create events"
 msgstr "Tes que estar conectada para crear eventos"
@@ -701,12 +696,12 @@ msgstr "Tes que estar conectada para crear publicacións"
 msgid "You need to be logged-in to create reports"
 msgstr "Tes que estar conectada para crear denuncias"
 
-#: lib/graphql/resolvers/resource.ex:140
+#: lib/graphql/resolvers/resource.ex:142
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to create resources"
 msgstr "Tes que estar conectada para crear recursos"
 
-#: lib/graphql/resolvers/event.ex:412
+#: lib/graphql/resolvers/event.ex:439
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to delete an event"
 msgstr "Tes que estar conectada para eliminar un evento"
@@ -716,7 +711,7 @@ msgstr "Tes que estar conectada para eliminar un evento"
 msgid "You need to be logged-in to delete posts"
 msgstr "Tes que estar conectada para eliminar publicacións"
 
-#: lib/graphql/resolvers/resource.ex:207
+#: lib/graphql/resolvers/resource.ex:209
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to delete resources"
 msgstr "Tes que estar conectada para eliminar recursos"
@@ -731,7 +726,7 @@ msgstr "Tes que estar conectada para unirte a un evento"
 msgid "You need to be logged-in to leave an event"
 msgstr "Tes que estar conectada para saír dun evento"
 
-#: lib/graphql/resolvers/event.ex:369
+#: lib/graphql/resolvers/event.ex:396
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to update an event"
 msgstr "Tes que estar conectada para actualizar un evento"
@@ -741,17 +736,17 @@ msgstr "Tes que estar conectada para actualizar un evento"
 msgid "You need to be logged-in to update posts"
 msgstr "Tes que estar conectada para actualizar publicacións"
 
-#: lib/graphql/resolvers/resource.ex:177
+#: lib/graphql/resolvers/resource.ex:179
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to update resources"
 msgstr "Tes que estar conectada para actualizar recursos"
 
-#: lib/graphql/resolvers/resource.ex:236
+#: lib/graphql/resolvers/resource.ex:233
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to view a resource preview"
 msgstr "Tes que estar conectada para ver vista previa dun recurso"
 
-#: lib/graphql/resolvers/resource.ex:132
+#: lib/graphql/resolvers/resource.ex:134
 #, elixir-autogen, elixir-format
 msgid "Parent resource doesn't belong to this group"
 msgstr "O recurso relacionado non pertence a este grupo"
@@ -838,12 +833,12 @@ msgstr "O ficheiro non ten un tipo MIME permitido."
 msgid "Profile is not administrator for the group"
 msgstr "O perfil non é administrador do grupo"
 
-#: lib/graphql/resolvers/event.ex:358
+#: lib/graphql/resolvers/event.ex:385
 #, elixir-autogen, elixir-format
 msgid "You can't edit this event."
 msgstr "Non podes editar este evento."
 
-#: lib/graphql/resolvers/event.ex:361
+#: lib/graphql/resolvers/event.ex:388
 #, elixir-autogen, elixir-format
 msgid "You can't attribute this event to this profile."
 msgstr "Non podes atribuír este evento a este perfil."
@@ -863,7 +858,7 @@ msgstr "Este membro xa foi rexeitado."
 msgid "You don't have the right to remove this member."
 msgstr "Non tes permiso para eliminar este membro."
 
-#: lib/mobilizon/actors/actor.ex:377
+#: lib/mobilizon/actors/actor.ex:378
 #, elixir-autogen, elixir-format
 msgid "This username is already taken."
 msgstr "Este nome de usuaria xa está pillado."
@@ -873,7 +868,7 @@ msgstr "Este nome de usuaria xa está pillado."
 msgid "You must provide either an ID or a slug to access a discussion"
 msgstr "Debes proporcionar ou ben un ID ou nome para acceder á conversa"
 
-#: lib/graphql/resolvers/event.ex:275
+#: lib/graphql/resolvers/event.ex:276
 #, elixir-autogen, elixir-format
 msgid "Organizer profile is not owned by the user"
 msgstr "O perfil da organización non pertence á usuaria"
@@ -885,43 +880,43 @@ msgstr "O ID do perfil proporcionado non é o perfil anónimo"
 
 #: lib/graphql/resolvers/group.ex:181
 #: lib/graphql/resolvers/group.ex:223
-#: lib/graphql/resolvers/person.ex:157
-#: lib/graphql/resolvers/person.ex:191
-#: lib/graphql/resolvers/person.ex:324
+#: lib/graphql/resolvers/person.ex:159
+#: lib/graphql/resolvers/person.ex:193
+#: lib/graphql/resolvers/person.ex:326
 #, elixir-autogen, elixir-format
 msgid "The provided picture is too heavy"
 msgstr "A imaxe proporcionada é demasiado grande (mb)"
 
-#: lib/graphql/resolvers/resource.ex:129
+#: lib/graphql/resolvers/resource.ex:131
 #, elixir-autogen, elixir-format
 msgid "Error while creating resource"
 msgstr "Erro ao crear o recurso"
 
-#: lib/graphql/resolvers/user.ex:537
+#: lib/graphql/resolvers/user.ex:566
 #, elixir-autogen, elixir-format
 msgid "Invalid activation token"
 msgstr "O token de activación non é válido"
 
-#: lib/graphql/resolvers/resource.ex:226
+#: lib/graphql/resolvers/resource.ex:228
 #, elixir-autogen, elixir-format
 msgid "Unable to fetch resource details from this URL."
 msgstr "Non se puideron obter os detalles do recurso desde o URL."
 
 #: lib/graphql/resolvers/event.ex:165
 #: lib/graphql/resolvers/participant.ex:253
-#: lib/graphql/resolvers/participant.ex:328
+#: lib/graphql/resolvers/participant.ex:335
 #, elixir-autogen, elixir-format
 msgid "Provided profile doesn't have moderator permissions on this event"
 msgstr "O perfil da moderadora proporcionado non ten permisos neste evento"
 
-#: lib/graphql/resolvers/event.ex:286
+#: lib/graphql/resolvers/event.ex:294
 #, elixir-autogen, elixir-format
 msgid "Organizer profile doesn't have permission to create an event on behalf of this group"
 msgstr ""
 "O perfil do organizador non ten permiso para crear un evento en nome deste "
 "grupo"
 
-#: lib/graphql/resolvers/event.ex:349
+#: lib/graphql/resolvers/event.ex:369
 #, elixir-autogen, elixir-format
 msgid "This profile doesn't have permission to update an event on behalf of this group"
 msgstr ""
@@ -934,7 +929,7 @@ msgstr ""
 "Foi denegado o teu email para rexistrarte ou utiliza un provedor de email "
 "non permitido"
 
-#: lib/graphql/resolvers/comment.ex:150
+#: lib/graphql/resolvers/comment.ex:156
 #, elixir-autogen, elixir-format
 msgid "Comment not found"
 msgstr "Evento non atopado"
@@ -944,12 +939,12 @@ msgstr "Evento non atopado"
 msgid "Error while creating a discussion"
 msgstr "Erro ao crear o recurso"
 
-#: lib/graphql/resolvers/user.ex:658
+#: lib/graphql/resolvers/user.ex:687
 #, elixir-autogen, elixir-format
 msgid "Error while updating locale"
 msgstr "Erro ó actualizar a denuncia"
 
-#: lib/graphql/resolvers/person.ex:327
+#: lib/graphql/resolvers/person.ex:329
 #, elixir-autogen, elixir-format
 msgid "Error while uploading pictures"
 msgstr "Erro ó actualizar a denuncia"
@@ -964,13 +959,13 @@ msgstr ""
 msgid "Failed to update the group"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:333
-#: lib/graphql/resolvers/user.ex:501
+#: lib/graphql/resolvers/admin.ex:357
+#: lib/graphql/resolvers/user.ex:547
 #, elixir-autogen, elixir-format
 msgid "Failed to update user email"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:533
+#: lib/graphql/resolvers/user.ex:562
 #, elixir-autogen, elixir-format
 msgid "Failed to validate user email"
 msgstr "Non se puido validar a usuaria"
@@ -980,37 +975,37 @@ msgstr "Non se puido validar a usuaria"
 msgid "The anonymous actor ID is invalid"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:165
+#: lib/graphql/resolvers/resource.ex:167
 #, elixir-autogen, elixir-format
 msgid "Unknown error while updating resource"
 msgstr ""
 
-#: lib/graphql/resolvers/comment.ex:105
+#: lib/graphql/resolvers/comment.ex:111
 #, elixir-autogen, elixir-format
 msgid "You are not the comment creator"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:458
+#: lib/graphql/resolvers/user.ex:471
 #, elixir-autogen, elixir-format
 msgid "You cannot change your password."
 msgstr ""
 
-#: lib/graphql/resolvers/participant.ex:321
+#: lib/graphql/resolvers/participant.ex:328
 #, elixir-autogen, elixir-format
 msgid "Format not supported"
 msgstr ""
 
-#: lib/graphql/resolvers/participant.ex:305
+#: lib/graphql/resolvers/participant.ex:312
 #, elixir-autogen, elixir-format
 msgid "A dependency needed to export to %{format} is not installed"
 msgstr ""
 
-#: lib/graphql/resolvers/participant.ex:313
+#: lib/graphql/resolvers/participant.ex:320
 #, elixir-autogen, elixir-format
 msgid "An error occured while saving export"
 msgstr ""
 
-#: lib/web/controllers/export_controller.ex:30
+#: lib/web/controllers/export_controller.ex:32
 #, elixir-autogen, elixir-format
 msgid "Export to format %{format} is not enabled on this instance"
 msgstr ""
@@ -1020,17 +1015,17 @@ msgstr ""
 msgid "Only admins can create groups"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:279
+#: lib/graphql/resolvers/event.ex:280
 #, elixir-autogen, elixir-format
 msgid "Only groups can create events"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:305
+#: lib/graphql/resolvers/event.ex:313
 #, elixir-autogen, elixir-format
 msgid "Unknown error while creating event"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:514
+#: lib/graphql/resolvers/user.ex:498
 #, elixir-autogen, elixir-format
 msgid "User cannot change email"
 msgstr ""
@@ -1045,12 +1040,12 @@ msgstr ""
 msgid "Follow not found"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:379
+#: lib/graphql/resolvers/user.ex:392
 #, elixir-autogen, elixir-format
 msgid "Profile with username %{username} not found"
 msgstr "Non se atopa a persoa con nome de usuaria %{username}"
 
-#: lib/graphql/resolvers/user.ex:374
+#: lib/graphql/resolvers/user.ex:387
 #, elixir-autogen, elixir-format
 msgid "This profile does not belong to you"
 msgstr ""
@@ -1095,22 +1090,22 @@ msgstr ""
 msgid "Your email seems to be using an invalid format"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:382
+#: lib/graphql/resolvers/admin.ex:399
 #, elixir-autogen, elixir-format
 msgid "Can't confirm an already confirmed user"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:386
+#: lib/graphql/resolvers/admin.ex:403
 #, elixir-autogen, elixir-format
 msgid "Deconfirming users is not supported"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:358
+#: lib/graphql/resolvers/admin.ex:375
 #, elixir-autogen, elixir-format, fuzzy
 msgid "The new role must be different"
 msgstr "O novo email ten que ser diferente"
 
-#: lib/graphql/resolvers/admin.ex:309
+#: lib/graphql/resolvers/admin.ex:314
 #, elixir-autogen, elixir-format, fuzzy
 msgid "You need to be logged-in and an administrator to edit an user's details"
 msgstr ""
@@ -1122,28 +1117,28 @@ msgstr ""
 msgid "A profile or group with that name already exists"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:519
+#: lib/graphql/resolvers/admin.ex:542
 #, elixir-autogen, elixir-format
 msgid "Unable to find an instance to follow at this address"
 msgstr ""
 
-#: lib/mobilizon/actors/actor.ex:396
+#: lib/mobilizon/actors/actor.ex:397
 #, elixir-autogen, elixir-format
 msgid "Username must only contain alphanumeric lowercased characters and underscores."
 msgstr ""
 
 #: lib/graphql/resolvers/user.ex:303
-#: lib/graphql/resolvers/user.ex:326
+#: lib/graphql/resolvers/user.ex:333
 #, elixir-autogen, elixir-format, fuzzy
 msgid "This email doesn't seem to be valid"
 msgstr "O novo email non semella ser válido"
 
-#: lib/graphql/resolvers/comment.ex:65
+#: lib/graphql/resolvers/comment.ex:59
 #, elixir-autogen, elixir-format
 msgid "This comment was detected as spam."
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:293
+#: lib/graphql/resolvers/event.ex:301
 #, elixir-autogen, elixir-format
 msgid "This event was detected as spam."
 msgstr ""
@@ -1164,7 +1159,7 @@ msgstr ""
 msgid "You need to be a moderator or an administrator to create a note on a report"
 msgstr ""
 
-#: lib/graphql/resolvers/person.ex:330
+#: lib/graphql/resolvers/person.ex:332
 #, elixir-autogen, elixir-format
 msgid "Your profile was detected as spam."
 msgstr ""
@@ -1174,7 +1169,7 @@ msgstr ""
 msgid "Your registration has been detected as spam and cannot be processed."
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:86
+#: lib/web/controllers/application_controller.ex:88
 #, elixir-autogen, elixir-format
 msgid "All of name, scope and redirect_uri parameters are required to create an application"
 msgstr ""
@@ -1189,171 +1184,227 @@ msgstr ""
 msgid "Application token not found"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:89
+#: lib/graphql/resolvers/application.ex:90
 #, elixir-autogen, elixir-format, fuzzy
 msgid "Error while revoking token"
 msgstr "Erro ó gardar a denuncia"
 
-#: lib/web/controllers/application_controller.ex:59
+#: lib/web/controllers/application_controller.ex:61
 #, elixir-autogen, elixir-format
 msgid "Impossible to create application."
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:356
+#: lib/web/controllers/application_controller.ex:358
 #, elixir-autogen, elixir-format
 msgid "Incorrect parameters sent. You need to provide at least the grant_type and client_id parameters, depending on the grant type being used."
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:329
+#: lib/web/controllers/application_controller.ex:331
 #, elixir-autogen, elixir-format
 msgid "Invalid client credentials provided"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:337
+#: lib/web/controllers/application_controller.ex:339
 #, elixir-autogen, elixir-format
 msgid "Invalid refresh token provided"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:170
-#: lib/web/controllers/application_controller.ex:401
+#: lib/web/controllers/application_controller.ex:172
+#: lib/web/controllers/application_controller.ex:403
 #, elixir-autogen, elixir-format
 msgid "No application was found with this client_id"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:37
+#: lib/graphql/resolvers/application.ex:38
 #, elixir-autogen, elixir-format
 msgid "No application with this client_id was found"
 msgstr ""
 
-#: lib/graphql/authorization.ex:80
+#: lib/graphql/authorization.ex:81
 #, elixir-autogen, elixir-format
 msgid "Not authorized to access field %{field}"
 msgstr ""
 
-#: lib/graphql/authorization.ex:70
-#: lib/graphql/authorization.ex:75
+#: lib/graphql/authorization.ex:71
+#: lib/graphql/authorization.ex:76
 #, elixir-autogen, elixir-format
 msgid "Not authorized to access object %{object}"
 msgstr ""
 
-#: lib/graphql/authorization.ex:63
+#: lib/graphql/authorization.ex:64
 #, elixir-autogen, elixir-format
 msgid "Not authorized to access this %{object_type}"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:279
+#: lib/web/controllers/application_controller.ex:281
 #, elixir-autogen, elixir-format
 msgid "Please slow down the rate of your requests"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:267
+#: lib/web/controllers/application_controller.ex:269
 #, elixir-autogen, elixir-format
 msgid "The authorization request is still pending"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:249
+#: lib/web/controllers/application_controller.ex:251
 #, elixir-autogen, elixir-format
 msgid "The client_id provided or the device_code associated is invalid"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:133
+#: lib/graphql/resolvers/application.ex:139
 #, elixir-autogen, elixir-format
 msgid "The device user code was not provided before approving the application"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:304
+#: lib/web/controllers/application_controller.ex:306
 #, elixir-autogen, elixir-format
 msgid "The given device_code has expired"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:44
+#: lib/graphql/resolvers/application.ex:45
 #, elixir-autogen, elixir-format
 msgid "The given redirect_uri is not in the list of allowed redirect URIs"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:158
+#: lib/web/controllers/application_controller.ex:160
 #, elixir-autogen, elixir-format
 msgid "The given scope is not in the list of the app declared scopes"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:109
-#: lib/graphql/resolvers/application.ex:146
+#: lib/graphql/resolvers/application.ex:112
+#: lib/graphql/resolvers/application.ex:154
 #, elixir-autogen, elixir-format
 msgid "The given user code has expired"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:112
-#: lib/graphql/resolvers/application.ex:140
+#: lib/graphql/resolvers/application.ex:118
+#: lib/graphql/resolvers/application.ex:146
 #, elixir-autogen, elixir-format
 msgid "The given user code is invalid"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:411
+#: lib/web/controllers/application_controller.ex:413
 #, elixir-autogen, elixir-format
 msgid "The provided client_id does not match the provided code"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:414
+#: lib/web/controllers/application_controller.ex:416
 #, elixir-autogen, elixir-format
 msgid "The provided client_secret is invalid"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:407
+#: lib/web/controllers/application_controller.ex:409
 #, elixir-autogen, elixir-format
 msgid "The provided code is invalid or expired"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:418
+#: lib/web/controllers/application_controller.ex:420
 #, elixir-autogen, elixir-format
 msgid "The provided scope is invalid or not included in the app declared scopes"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:45
+#: lib/web/controllers/application_controller.ex:47
 #, elixir-autogen, elixir-format
 msgid "The scope parameter is not a space separated list of valid scopes"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:292
+#: lib/web/controllers/application_controller.ex:294
 #, elixir-autogen, elixir-format
 msgid "The user rejected the requested authorization"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:404
+#: lib/web/controllers/application_controller.ex:406
 #, elixir-autogen, elixir-format
 msgid "This redirect URI is not allowed"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:381
+#: lib/web/controllers/application_controller.ex:383
 #, elixir-autogen, elixir-format, fuzzy
 msgid "Token not found"
 msgstr "Evento non atopado"
 
-#: lib/web/controllers/application_controller.ex:72
+#: lib/web/controllers/application_controller.ex:74
 #, elixir-autogen, elixir-format
 msgid "Too many requests"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:184
+#: lib/web/controllers/application_controller.ex:186
 #, elixir-autogen, elixir-format
 msgid "Unable to produce device code"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:373
+#: lib/web/controllers/application_controller.ex:375
 #, elixir-autogen, elixir-format
 msgid "Unable to revoke token"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:198
+#: lib/web/controllers/application_controller.ex:200
 #, elixir-autogen, elixir-format
 msgid "You need to pass both client_id and scope as parameters to obtain a device code"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:136
+#: lib/web/controllers/application_controller.ex:138
 #, elixir-autogen, elixir-format
 msgid "You need to provide a valid redirect_uri to autorize an application"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:126
+#: lib/web/controllers/application_controller.ex:128
 #, elixir-autogen, elixir-format
 msgid "You need to specify client_id, redirect_uri, scope and state to autorize an application"
 msgstr ""
+
+#: lib/graphql/resolvers/user.ex:306
+#, elixir-autogen, elixir-format
+msgid "Couldn't send an email. Internal error."
+msgstr ""
+
+#: lib/graphql/resolvers/participant.ex:286
+#, elixir-autogen, elixir-format
+msgid "Participation is already confirmed"
+msgstr ""
+
+#: lib/graphql/resolvers/participant.ex:283
+#, elixir-autogen, elixir-format
+msgid "Participation is confirmed but not approved yet by an organizer"
+msgstr ""
+
+#: lib/graphql/resolvers/event.ex:287
+#: lib/graphql/resolvers/event.ex:376
+#, elixir-autogen, elixir-format
+msgid "Providing external registration is not allowed"
+msgstr ""
+
+#: lib/graphql/resolvers/push_subscription.ex:48
+#, elixir-autogen, elixir-format
+msgid "The same push subscription has already been registered"
+msgstr ""
+
+#: lib/graphql/resolvers/admin.ex:536
+#, elixir-autogen, elixir-format
+msgid "This instance is pending follow approval"
+msgstr ""
+
+#: lib/graphql/schema/custom/timezone.ex:23
+#, elixir-autogen, elixir-format
+msgid "Timezone ID %{timezone} is invalid"
+msgstr ""
+
+#: lib/graphql/resolvers/admin.ex:539
+#, elixir-autogen, elixir-format, fuzzy
+msgid "You are already following this instance"
+msgstr ""
+
+#: lib/graphql/resolvers/user.ex:310
+#, elixir-autogen, elixir-format, fuzzy
+msgid "You requested again a confirmation email too soon. Please try again in a few minutes"
+msgstr "Solicitaches demasiado pronto un email de confirmación"
+
+#: lib/graphql/resolvers/user.ex:341
+#, elixir-autogen, elixir-format
+msgid "You requested again a password reset email too soon. Please try again in a few minutes"
+msgstr ""
+
+#: lib/graphql/resolvers/user.ex:368
+#, elixir-autogen, elixir-format
+msgid "The token you provided is invalid. Make sure that the URL is exactly the one provided inside the email you got."
+msgstr ""
diff --git a/priv/gettext/he/LC_MESSAGES/activity.po b/priv/gettext/he/LC_MESSAGES/activity.po
index 669d96e5e620b447aeaa830d88206702ee9475b0..b6741aa10e15c6940d6ef7250a52e597275682e8 100644
--- a/priv/gettext/he/LC_MESSAGES/activity.po
+++ b/priv/gettext/he/LC_MESSAGES/activity.po
@@ -479,3 +479,15 @@ msgstr "%{profile} הגיב.ה בדיון %{discussion} בקבוצה %{group}."
 #, elixir-autogen, elixir-format, fuzzy
 msgid "%{profile} approved the member %{member}."
 msgstr "%{profile} הוסיפ.ה את החבר.ה %{member}."
+
+#: lib/service/activity/renderer/event.ex:74
+#: lib/web/templates/email/activity/_event_activity_item.html.heex:55
+#: lib/web/templates/email/activity/_event_activity_item.text.eex:31
+#, elixir-autogen, elixir-format
+msgid "%{profile} joined your event %{event}."
+msgstr ""
+
+#: lib/web/views/email_view.ex:45
+#, elixir-autogen, elixir-format
+msgid "An anonymous profile"
+msgstr ""
diff --git a/priv/gettext/he/LC_MESSAGES/default.po b/priv/gettext/he/LC_MESSAGES/default.po
index 7b4eda4a638951b68daebbc02503968a031b57d1..5657cce966a05108cdd8905651ed70abbdab06c7 100644
--- a/priv/gettext/he/LC_MESSAGES/default.po
+++ b/priv/gettext/he/LC_MESSAGES/default.po
@@ -9,14 +9,15 @@
 msgid ""
 msgstr ""
 "Language: he\n"
-"Plural-Forms: nplurals=2\n"
+"Plural-Forms: nplurals=4; plural=(n == 1) ? 0 : ((n == 2) ? 1 : ((n > 10 && "
+"n % 10 == 0) ? 2 : 3));\n"
 
 #: lib/web/templates/email/password_reset.html.heex:66
 #, elixir-autogen, elixir-format
 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 ""
 
-#: lib/web/templates/email/report.html.heex:120
+#: lib/web/templates/email/report.html.heex:121
 #, elixir-autogen, elixir-format
 msgid "%{title} by %{creator}"
 msgstr ""
@@ -32,23 +33,17 @@ msgstr ""
 msgid "Ask the community on Framacolibri"
 msgstr ""
 
-#: lib/web/templates/email/report.text.eex:15
+#: lib/web/templates/email/report.text.eex:17
 #, elixir-autogen, elixir-format
 msgid "Comments"
 msgstr ""
 
-#: lib/web/templates/email/report.html.heex:115
-#: lib/web/templates/email/report.text.eex:11
-#, elixir-autogen, elixir-format
-msgid "Event"
-msgstr ""
-
 #: lib/web/email/user.ex:49
 #, elixir-autogen, elixir-format
 msgid "Instructions to reset your password on %{instance}"
 msgstr ""
 
-#: lib/web/templates/email/report.text.eex:21
+#: lib/web/templates/email/report.text.eex:23
 #, elixir-autogen, elixir-format
 msgid "Reason"
 msgstr ""
@@ -308,31 +303,16 @@ msgctxt "terms"
 msgid "What information do we collect?"
 msgstr ""
 
-#: lib/web/email/user.ex:182
+#: lib/web/email/user.ex:188
 #, elixir-autogen, elixir-format
 msgid "Mobilizon on %{instance}: confirm your email address"
 msgstr ""
 
-#: lib/web/email/user.ex:159
+#: lib/web/email/user.ex:165
 #, elixir-autogen, elixir-format
 msgid "Mobilizon on %{instance}: email changed"
 msgstr ""
 
-#: lib/web/email/notification.ex:52
-#, elixir-format
-msgid "One event planned today"
-msgid_plural "%{nb_events} events planned today"
-msgstr[0] ""
-msgstr[1] ""
-
-#: lib/web/templates/email/on_day_notification.html.heex:47
-#: lib/web/templates/email/on_day_notification.text.eex:3
-#, elixir-format
-msgid "You have one event today:"
-msgid_plural "You have %{total} events today:"
-msgstr[0] ""
-msgstr[1] ""
-
 #: lib/web/templates/email/group_invite.text.eex:3
 #, elixir-autogen, elixir-format
 msgid "%{inviter} just invited you to join their group %{group}"
@@ -376,28 +356,6 @@ msgstr ""
 msgid "You have been invited by %{inviter} to join group %{group}"
 msgstr ""
 
-#: lib/web/email/notification.ex:81
-#, elixir-format
-msgid "One event planned this week"
-msgid_plural "%{nb_events} events planned this week"
-msgstr[0] ""
-msgstr[1] ""
-
-#: lib/web/email/notification.ex:107
-#, elixir-format
-msgid "One participation request for event %{title} to process"
-msgid_plural "%{number_participation_requests} participation requests for event %{title} to process"
-msgstr[0] ""
-msgstr[1] ""
-
-#: lib/web/templates/email/notification_each_week.html.heex:47
-#: lib/web/templates/email/notification_each_week.text.eex:3
-#, elixir-format
-msgid "You have one event this week:"
-msgid_plural "You have %{total} events this week:"
-msgstr[0] ""
-msgstr[1] ""
-
 #: lib/service/metadata/utils.ex:53
 #, elixir-autogen, elixir-format
 msgid "The event organizer didn't add any description."
@@ -751,20 +709,6 @@ msgstr ""
 msgid "Please do not use it for real purposes."
 msgstr ""
 
-#: lib/web/templates/email/anonymous_participation_confirmation.html.heex:88
-#: lib/web/templates/email/anonymous_participation_confirmation.text.eex:6
-#: lib/web/templates/email/event_updated.html.heex:172
-#: lib/web/templates/email/event_updated.text.eex:14
-#: lib/web/templates/email/notification_each_week.html.heex:92
-#: lib/web/templates/email/notification_each_week.text.eex:11
-#: lib/web/templates/email/on_day_notification.html.heex:89
-#: lib/web/templates/email/on_day_notification.text.eex:11
-#, elixir-format
-msgid "Would you wish to cancel your attendance, visit the event page through the link above and click the « Attending » button."
-msgid_plural "Would you wish to cancel your attendance to one or several events, visit the event pages through the links above and click the « Attending » button."
-msgstr[0] ""
-msgstr[1] ""
-
 #: lib/web/templates/email/email.text.eex:11
 #, elixir-autogen, elixir-format
 msgid "%{instance} is powered by Mobilizon."
@@ -804,7 +748,7 @@ msgstr ""
 msgid "Event update!"
 msgstr ""
 
-#: lib/web/templates/email/report.html.heex:155
+#: lib/web/templates/email/report.html.heex:158
 #, elixir-autogen, elixir-format
 msgid "Flagged comments"
 msgstr ""
@@ -885,7 +829,7 @@ msgstr ""
 msgid "New email confirmation"
 msgstr ""
 
-#: lib/web/templates/email/report.html.heex:191
+#: lib/web/templates/email/report.html.heex:194
 #, elixir-autogen, elixir-format
 msgid "Reasons for report"
 msgstr ""
@@ -940,12 +884,12 @@ msgstr ""
 msgid "Verify your email address"
 msgstr ""
 
-#: lib/web/templates/email/report.html.heex:232
+#: lib/web/templates/email/report.html.heex:235
 #, elixir-autogen, elixir-format
 msgid "View report"
 msgstr ""
 
-#: lib/web/templates/email/report.text.eex:24
+#: lib/web/templates/email/report.text.eex:26
 #, elixir-autogen, elixir-format
 msgid "View report:"
 msgstr ""
@@ -1043,12 +987,6 @@ msgstr ""
 msgid "As this group was located on another instance, it will continue to work for other instances than this one."
 msgstr ""
 
-#: lib/web/templates/email/group_suspension.html.heex:67
-#: lib/web/templates/email/group_suspension.text.eex:5
-#, elixir-autogen, elixir-format
-msgid "As this group was located on this instance, all of it's data has been irretrievably deleted."
-msgstr ""
-
 #: lib/web/templates/email/group_suspension.html.heex:18
 #: lib/web/templates/email/group_suspension.text.eex:1
 #, elixir-autogen, elixir-format
@@ -1060,7 +998,7 @@ msgstr ""
 msgid "Your instance's moderation team has decided to suspend %{group_name} (%{group_address}). You are no longer a member of this group."
 msgstr ""
 
-#: lib/web/email/group.ex:107
+#: lib/web/email/group.ex:108
 #, elixir-autogen, elixir-format
 msgid "The group %{group} has been suspended on %{instance}"
 msgstr ""
@@ -1342,16 +1280,6 @@ msgstr ""
 msgid "Public feed for %{instance}"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:350
-#, elixir-autogen, elixir-format
-msgid "The password you have choosen is too short. Please make sure your password contains at least 6 charaters."
-msgstr ""
-
-#: lib/graphql/resolvers/user.ex:356
-#, elixir-autogen, elixir-format
-msgid "The token you provided is invalid. Make sure that the URL is exactly the one provided inside the email you got."
-msgstr ""
-
 #: lib/web/email/actor.ex:43
 #, elixir-autogen, elixir-format
 msgid "Your participation to %{event} has been cancelled!"
@@ -1375,63 +1303,63 @@ msgid "Your participation to %{event} on %{instance} has been cancelled!"
 msgstr ""
 
 #. File name template for exported list of participants. Should NOT contain spaces. Make sure the output is going to be something standardized that is acceptable as a file name on most systems.
-#: lib/service/export/participants/csv.ex:81
+#: lib/service/export/participants/csv.ex:97
 #: lib/service/export/participants/ods.ex:86
 #: lib/service/export/participants/pdf.ex:96
 #, elixir-autogen, elixir-format
 msgid "%{event}_participants"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:61
+#: lib/service/export/participants/common.ex:66
 #, elixir-autogen, elixir-format
 msgid "Participant message"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:61
+#: lib/service/export/participants/common.ex:63
 #, elixir-autogen, elixir-format
 msgid "Participant name"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:61
+#: lib/service/export/participants/common.ex:64
 #, elixir-autogen, elixir-format
 msgid "Participant status"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:52
+#: lib/service/export/participants/common.ex:53
 #: lib/web/templates/email/admin/_role.html.heex:3
 #: lib/web/templates/email/admin/_role.text.eex:1
 #, elixir-autogen, elixir-format
 msgid "Administrator"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:55
+#: lib/service/export/participants/common.ex:56
 #, elixir-autogen, elixir-format
 msgid "Creator"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:49
+#: lib/service/export/participants/common.ex:50
 #: lib/web/templates/email/admin/_role.html.heex:5
 #: lib/web/templates/email/admin/_role.text.eex:1
 #, elixir-autogen, elixir-format
 msgid "Moderator"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:37
+#: lib/service/export/participants/common.ex:38
 #, elixir-autogen, elixir-format
 msgid "Not approved"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:40
+#: lib/service/export/participants/common.ex:41
 #, elixir-autogen, elixir-format
 msgid "Not confirmed"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:46
+#: lib/service/export/participants/common.ex:47
 #, elixir-autogen, elixir-format
 msgid "Participant"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:43
+#: lib/service/export/participants/common.ex:44
 #, elixir-autogen, elixir-format
 msgid "Rejected"
 msgstr ""
@@ -1456,7 +1384,7 @@ msgstr ""
 msgid "Participants for %{event}"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:88
+#: lib/service/export/participants/common.ex:95
 #, elixir-autogen, elixir-format
 msgid "Anonymous participant"
 msgstr ""
@@ -1575,7 +1503,7 @@ msgstr ""
 msgid "Title: %{title}"
 msgstr ""
 
-#: lib/web/email/group.ex:46
+#: lib/web/email/group.ex:47
 #, elixir-autogen, elixir-format
 msgid "📅 Just scheduled by %{group}: %{event}"
 msgstr ""
@@ -1642,14 +1570,6 @@ msgstr ""
 msgid "Your membership request for group %{link_start}<b>%{group}</b>%{link_end} has been approved."
 msgstr ""
 
-#: lib/web/templates/email/pending_participation_notification.html.heex:47
-#: lib/web/templates/email/pending_participation_notification.text.eex:4
-#, elixir-format
-msgid "You have one pending attendance request to process for the following event:"
-msgid_plural "You have %{number_participation_requests} attendance requests to process for the following event:"
-msgstr[0] ""
-msgstr[1] ""
-
 #: lib/web/templates/email/admin_user_role_changed.html.heex:18
 #: lib/web/templates/email/admin_user_role_changed.text.eex:1
 #, elixir-autogen, elixir-format
@@ -1988,3 +1908,24 @@ msgstr ""
 #, elixir-autogen, elixir-format
 msgid "Until next time!"
 msgstr ""
+
+#: lib/web/templates/email/group_suspension.html.heex:67
+#: lib/web/templates/email/group_suspension.text.eex:5
+#, elixir-autogen, elixir-format, fuzzy
+msgid "As this group was located on this instance, all of its data has been irretrievably deleted."
+msgstr ""
+
+#: lib/web/templates/email/report.text.eex:11
+#, elixir-autogen, elixir-format, fuzzy
+msgid "Events"
+msgstr ""
+
+#: lib/web/templates/email/report.html.heex:115
+#, elixir-autogen, elixir-format, fuzzy
+msgid "Flagged events"
+msgstr ""
+
+#: lib/service/export/participants/common.ex:65
+#, elixir-autogen, elixir-format, fuzzy
+msgid "Participant registration date"
+msgstr ""
diff --git a/priv/gettext/he/LC_MESSAGES/errors.po b/priv/gettext/he/LC_MESSAGES/errors.po
index bee0eb572d0738e5b167d603a39465ef1493b9a1..50d6ae6f62d8640ae717c0f2bb90628ac429f634 100644
--- a/priv/gettext/he/LC_MESSAGES/errors.po
+++ b/priv/gettext/he/LC_MESSAGES/errors.po
@@ -9,7 +9,8 @@
 msgid ""
 msgstr ""
 "Language: he\n"
-"Plural-Forms: nplurals=2\n"
+"Plural-Forms: nplurals=4; plural=(n == 1) ? 0 : ((n == 2) ? 1 : ((n > 10 && "
+"n % 10 == 0) ? 2 : 3));\n"
 
 #: lib/mobilizon/discussions/discussion.ex:69
 #, elixir-autogen
@@ -43,36 +44,6 @@ msgstr ""
 msgid "are still associated with this entry"
 msgstr ""
 
-msgid "should be %{count} character(s)"
-msgid_plural "should be %{count} character(s)"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "should have %{count} item(s)"
-msgid_plural "should have %{count} item(s)"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "should be at least %{count} character(s)"
-msgid_plural "should be at least %{count} character(s)"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "should have at least %{count} item(s)"
-msgid_plural "should have at least %{count} item(s)"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "should be at most %{count} character(s)"
-msgid_plural "should be at most %{count} character(s)"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "should have at most %{count} item(s)"
-msgid_plural "should have at most %{count} item(s)"
-msgstr[0] ""
-msgstr[1] ""
-
 msgid "must be less than %{number}"
 msgstr ""
 
@@ -103,7 +74,7 @@ msgstr ""
 msgid "Current profile is not an administrator of the selected group"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:644
+#: lib/graphql/resolvers/user.ex:673
 #, elixir-autogen, elixir-format
 msgid "Error while saving user settings"
 msgstr ""
@@ -146,8 +117,8 @@ msgstr ""
 msgid "No user to validate with this email was found"
 msgstr ""
 
-#: lib/graphql/resolvers/person.ex:337
-#: lib/graphql/resolvers/user.ex:330
+#: lib/graphql/resolvers/person.ex:339
+#: lib/graphql/resolvers/user.ex:337
 #, elixir-autogen, elixir-format
 msgid "No user with this email was found"
 msgstr ""
@@ -155,12 +126,12 @@ msgstr ""
 #: lib/graphql/resolvers/feed_token.ex:28
 #: lib/graphql/resolvers/participant.ex:32
 #: lib/graphql/resolvers/participant.ex:210
-#: lib/graphql/resolvers/person.ex:245
-#: lib/graphql/resolvers/person.ex:376
-#: lib/graphql/resolvers/person.ex:412
-#: lib/graphql/resolvers/person.ex:419
-#: lib/graphql/resolvers/person.ex:448
-#: lib/graphql/resolvers/person.ex:463
+#: lib/graphql/resolvers/person.ex:247
+#: lib/graphql/resolvers/person.ex:378
+#: lib/graphql/resolvers/person.ex:414
+#: lib/graphql/resolvers/person.ex:421
+#: lib/graphql/resolvers/person.ex:450
+#: lib/graphql/resolvers/person.ex:465
 #, elixir-autogen, elixir-format
 msgid "Profile is not owned by authenticated user"
 msgstr ""
@@ -170,41 +141,42 @@ msgstr ""
 msgid "Registrations are not open"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:461
+#: lib/graphql/resolvers/user.ex:474
 #, elixir-autogen, elixir-format
 msgid "The current password is invalid"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:336
-#: lib/graphql/resolvers/user.ex:504
+#: lib/graphql/resolvers/admin.ex:334
+#: lib/graphql/resolvers/user.ex:527
 #, elixir-autogen, elixir-format
 msgid "The new email doesn't seem to be valid"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:339
-#: lib/graphql/resolvers/user.ex:507
+#: lib/graphql/resolvers/admin.ex:323
+#: lib/graphql/resolvers/user.ex:514
 #, elixir-autogen, elixir-format
 msgid "The new email must be different"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:464
+#: lib/graphql/resolvers/user.ex:477
 #, elixir-autogen, elixir-format
 msgid "The new password must be different"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:511
-#: lib/graphql/resolvers/user.ex:573
-#: lib/graphql/resolvers/user.ex:576
+#: lib/graphql/resolvers/user.ex:518
+#: lib/graphql/resolvers/user.ex:602
+#: lib/graphql/resolvers/user.ex:605
 #, elixir-autogen, elixir-format
 msgid "The password provided is invalid"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:468
+#: lib/graphql/resolvers/user.ex:361
+#: lib/graphql/resolvers/user.ex:481
 #, elixir-autogen, elixir-format
 msgid "The password you have chosen is too short. Please make sure your password contains at least 6 characters."
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:323
+#: lib/graphql/resolvers/user.ex:330
 #, elixir-autogen, elixir-format
 msgid "This user can't reset their password"
 msgstr ""
@@ -220,12 +192,12 @@ msgstr ""
 msgid "Unable to validate user"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:554
+#: lib/graphql/resolvers/user.ex:583
 #, elixir-autogen, elixir-format
 msgid "User already disabled"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:619
+#: lib/graphql/resolvers/user.ex:648
 #, elixir-autogen, elixir-format
 msgid "User requested is not logged-in"
 msgstr ""
@@ -250,12 +222,12 @@ msgstr ""
 msgid "You may not list groups unless moderator."
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:519
+#: lib/graphql/resolvers/user.ex:503
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to change your email"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:476
+#: lib/graphql/resolvers/user.ex:489
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to change your password"
 msgstr ""
@@ -265,7 +237,7 @@ msgstr ""
 msgid "You need to be logged-in to delete a group"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:581
+#: lib/graphql/resolvers/user.ex:610
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to delete your account"
 msgstr ""
@@ -290,12 +262,6 @@ msgstr ""
 msgid "You need to have an existing token to get a refresh token"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:306
-#: lib/graphql/resolvers/user.ex:333
-#, elixir-autogen, elixir-format
-msgid "You requested again a confirmation email too soon"
-msgstr ""
-
 #: lib/graphql/resolvers/user.ex:180
 #, elixir-autogen, elixir-format
 msgid "Your email is not on the allowlist"
@@ -348,17 +314,17 @@ msgstr ""
 msgid "Anonymous participation is not enabled"
 msgstr ""
 
-#: lib/graphql/resolvers/person.ex:219
+#: lib/graphql/resolvers/person.ex:221
 #, elixir-autogen, elixir-format
 msgid "Cannot remove the last administrator of a group"
 msgstr ""
 
-#: lib/graphql/resolvers/person.ex:216
+#: lib/graphql/resolvers/person.ex:218
 #, elixir-autogen, elixir-format
 msgid "Cannot remove the last identity of a user"
 msgstr ""
 
-#: lib/graphql/resolvers/comment.ex:147
+#: lib/graphql/resolvers/comment.ex:153
 #, elixir-autogen, elixir-format
 msgid "Comment is already deleted"
 msgstr ""
@@ -386,8 +352,8 @@ msgid "Event id not found"
 msgstr ""
 
 #: lib/graphql/error.ex:114
-#: lib/graphql/resolvers/event.ex:355
-#: lib/graphql/resolvers/event.ex:407
+#: lib/graphql/resolvers/event.ex:382
+#: lib/graphql/resolvers/event.ex:434
 #, elixir-autogen, elixir-format
 msgid "Event not found"
 msgstr ""
@@ -395,7 +361,7 @@ msgstr ""
 #: lib/graphql/resolvers/participant.ex:87
 #: lib/graphql/resolvers/participant.ex:128
 #: lib/graphql/resolvers/participant.ex:155
-#: lib/graphql/resolvers/participant.ex:336
+#: lib/graphql/resolvers/participant.ex:343
 #, elixir-autogen, elixir-format
 msgid "Event with this ID %{id} doesn't exist"
 msgstr ""
@@ -405,7 +371,7 @@ msgstr ""
 msgid "Internal Error"
 msgstr ""
 
-#: lib/graphql/resolvers/discussion.ex:219
+#: lib/graphql/resolvers/discussion.ex:222
 #, elixir-autogen, elixir-format
 msgid "No discussion with ID %{id}"
 msgstr ""
@@ -472,10 +438,10 @@ msgstr ""
 #: lib/graphql/resolvers/post.ex:133
 #: lib/graphql/resolvers/post.ex:175
 #: lib/graphql/resolvers/post.ex:209
-#: lib/graphql/resolvers/resource.ex:90
-#: lib/graphql/resolvers/resource.ex:135
-#: lib/graphql/resolvers/resource.ex:168
-#: lib/graphql/resolvers/resource.ex:202
+#: lib/graphql/resolvers/resource.ex:92
+#: lib/graphql/resolvers/resource.ex:137
+#: lib/graphql/resolvers/resource.ex:170
+#: lib/graphql/resolvers/resource.ex:204
 #: lib/graphql/resolvers/todos.ex:58
 #: lib/graphql/resolvers/todos.ex:83
 #: lib/graphql/resolvers/todos.ex:110
@@ -487,7 +453,7 @@ msgid "Profile is not member of group"
 msgstr ""
 
 #: lib/graphql/resolvers/actor.ex:67
-#: lib/graphql/resolvers/person.ex:242
+#: lib/graphql/resolvers/person.ex:244
 #, elixir-autogen, elixir-format
 msgid "Profile not found"
 msgstr ""
@@ -497,8 +463,8 @@ msgstr ""
 msgid "Report not found"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:172
-#: lib/graphql/resolvers/resource.ex:199
+#: lib/graphql/resolvers/resource.ex:174
+#: lib/graphql/resolvers/resource.ex:201
 #, elixir-autogen, elixir-format
 msgid "Resource doesn't exist"
 msgstr ""
@@ -508,7 +474,7 @@ msgstr ""
 msgid "The event has already reached its maximum capacity"
 msgstr ""
 
-#: lib/graphql/resolvers/participant.ex:282
+#: lib/graphql/resolvers/participant.ex:289
 #, elixir-autogen, elixir-format
 msgid "This token is invalid"
 msgstr ""
@@ -542,7 +508,7 @@ msgstr ""
 msgid "User not found"
 msgstr ""
 
-#: lib/graphql/resolvers/person.ex:333
+#: lib/graphql/resolvers/person.ex:335
 #, elixir-autogen, elixir-format
 msgid "You already have a profile for this user"
 msgstr ""
@@ -564,7 +530,7 @@ msgstr ""
 msgid "You are not a moderator or admin for this group"
 msgstr ""
 
-#: lib/graphql/resolvers/comment.ex:80
+#: lib/graphql/resolvers/comment.ex:74
 #, elixir-autogen, elixir-format
 msgid "You are not allowed to create a comment if not connected"
 msgstr ""
@@ -574,7 +540,7 @@ msgstr ""
 msgid "You are not allowed to create a feed token if not connected"
 msgstr ""
 
-#: lib/graphql/resolvers/comment.ex:155
+#: lib/graphql/resolvers/comment.ex:161
 #, elixir-autogen, elixir-format
 msgid "You are not allowed to delete a comment if not connected"
 msgstr ""
@@ -584,7 +550,7 @@ msgstr ""
 msgid "You are not allowed to delete a feed token if not connected"
 msgstr ""
 
-#: lib/graphql/resolvers/comment.ex:114
+#: lib/graphql/resolvers/comment.ex:120
 #, elixir-autogen, elixir-format
 msgid "You are not allowed to update a comment if not connected"
 msgstr ""
@@ -600,12 +566,12 @@ msgstr ""
 msgid "You can't set yourself to a lower member role for this group because you are the only administrator"
 msgstr ""
 
-#: lib/graphql/resolvers/comment.ex:143
+#: lib/graphql/resolvers/comment.ex:149
 #, elixir-autogen, elixir-format
 msgid "You cannot delete this comment"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:403
+#: lib/graphql/resolvers/event.ex:430
 #, elixir-autogen, elixir-format
 msgid "You cannot delete this event"
 msgstr ""
@@ -640,17 +606,17 @@ msgstr ""
 msgid "You need to be logged-in and a moderator to view a report"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:252
+#: lib/graphql/resolvers/admin.ex:258
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in and an administrator to access admin settings"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:236
+#: lib/graphql/resolvers/admin.ex:242
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in and an administrator to access dashboard statistics"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:278
+#: lib/graphql/resolvers/admin.ex:283
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in and an administrator to save admin settings"
 msgstr ""
@@ -660,12 +626,12 @@ msgstr ""
 msgid "You need to be logged-in to access discussions"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:96
+#: lib/graphql/resolvers/resource.ex:98
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to access resources"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:313
+#: lib/graphql/resolvers/event.ex:321
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to create events"
 msgstr ""
@@ -680,12 +646,12 @@ msgstr ""
 msgid "You need to be logged-in to create reports"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:140
+#: lib/graphql/resolvers/resource.ex:142
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to create resources"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:412
+#: lib/graphql/resolvers/event.ex:439
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to delete an event"
 msgstr ""
@@ -695,7 +661,7 @@ msgstr ""
 msgid "You need to be logged-in to delete posts"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:207
+#: lib/graphql/resolvers/resource.ex:209
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to delete resources"
 msgstr ""
@@ -710,7 +676,7 @@ msgstr ""
 msgid "You need to be logged-in to leave an event"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:369
+#: lib/graphql/resolvers/event.ex:396
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to update an event"
 msgstr ""
@@ -720,17 +686,17 @@ msgstr ""
 msgid "You need to be logged-in to update posts"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:177
+#: lib/graphql/resolvers/resource.ex:179
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to update resources"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:236
+#: lib/graphql/resolvers/resource.ex:233
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to view a resource preview"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:132
+#: lib/graphql/resolvers/resource.ex:134
 #, elixir-autogen, elixir-format
 msgid "Parent resource doesn't belong to this group"
 msgstr ""
@@ -816,12 +782,12 @@ msgstr ""
 msgid "Profile is not administrator for the group"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:358
+#: lib/graphql/resolvers/event.ex:385
 #, elixir-autogen, elixir-format
 msgid "You can't edit this event."
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:361
+#: lib/graphql/resolvers/event.ex:388
 #, elixir-autogen, elixir-format
 msgid "You can't attribute this event to this profile."
 msgstr ""
@@ -841,7 +807,7 @@ msgstr ""
 msgid "You don't have the right to remove this member."
 msgstr ""
 
-#: lib/mobilizon/actors/actor.ex:377
+#: lib/mobilizon/actors/actor.ex:378
 #, elixir-autogen, elixir-format
 msgid "This username is already taken."
 msgstr ""
@@ -851,7 +817,7 @@ msgstr ""
 msgid "You must provide either an ID or a slug to access a discussion"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:275
+#: lib/graphql/resolvers/event.ex:276
 #, elixir-autogen, elixir-format
 msgid "Organizer profile is not owned by the user"
 msgstr ""
@@ -863,41 +829,41 @@ msgstr ""
 
 #: lib/graphql/resolvers/group.ex:181
 #: lib/graphql/resolvers/group.ex:223
-#: lib/graphql/resolvers/person.ex:157
-#: lib/graphql/resolvers/person.ex:191
-#: lib/graphql/resolvers/person.ex:324
+#: lib/graphql/resolvers/person.ex:159
+#: lib/graphql/resolvers/person.ex:193
+#: lib/graphql/resolvers/person.ex:326
 #, elixir-autogen, elixir-format
 msgid "The provided picture is too heavy"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:129
+#: lib/graphql/resolvers/resource.ex:131
 #, elixir-autogen, elixir-format
 msgid "Error while creating resource"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:537
+#: lib/graphql/resolvers/user.ex:566
 #, elixir-autogen, elixir-format
 msgid "Invalid activation token"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:226
+#: lib/graphql/resolvers/resource.ex:228
 #, elixir-autogen, elixir-format
 msgid "Unable to fetch resource details from this URL."
 msgstr ""
 
 #: lib/graphql/resolvers/event.ex:165
 #: lib/graphql/resolvers/participant.ex:253
-#: lib/graphql/resolvers/participant.ex:328
+#: lib/graphql/resolvers/participant.ex:335
 #, elixir-autogen, elixir-format
 msgid "Provided profile doesn't have moderator permissions on this event"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:286
+#: lib/graphql/resolvers/event.ex:294
 #, elixir-autogen, elixir-format
 msgid "Organizer profile doesn't have permission to create an event on behalf of this group"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:349
+#: lib/graphql/resolvers/event.ex:369
 #, elixir-autogen, elixir-format
 msgid "This profile doesn't have permission to update an event on behalf of this group"
 msgstr ""
@@ -907,7 +873,7 @@ msgstr ""
 msgid "Your e-mail has been denied registration or uses a disallowed e-mail provider"
 msgstr ""
 
-#: lib/graphql/resolvers/comment.ex:150
+#: lib/graphql/resolvers/comment.ex:156
 #, elixir-autogen, elixir-format
 msgid "Comment not found"
 msgstr ""
@@ -917,12 +883,12 @@ msgstr ""
 msgid "Error while creating a discussion"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:658
+#: lib/graphql/resolvers/user.ex:687
 #, elixir-autogen, elixir-format
 msgid "Error while updating locale"
 msgstr ""
 
-#: lib/graphql/resolvers/person.ex:327
+#: lib/graphql/resolvers/person.ex:329
 #, elixir-autogen, elixir-format
 msgid "Error while uploading pictures"
 msgstr ""
@@ -937,13 +903,13 @@ msgstr ""
 msgid "Failed to update the group"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:333
-#: lib/graphql/resolvers/user.ex:501
+#: lib/graphql/resolvers/admin.ex:357
+#: lib/graphql/resolvers/user.ex:547
 #, elixir-autogen, elixir-format
 msgid "Failed to update user email"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:533
+#: lib/graphql/resolvers/user.ex:562
 #, elixir-autogen, elixir-format
 msgid "Failed to validate user email"
 msgstr ""
@@ -953,37 +919,37 @@ msgstr ""
 msgid "The anonymous actor ID is invalid"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:165
+#: lib/graphql/resolvers/resource.ex:167
 #, elixir-autogen, elixir-format
 msgid "Unknown error while updating resource"
 msgstr ""
 
-#: lib/graphql/resolvers/comment.ex:105
+#: lib/graphql/resolvers/comment.ex:111
 #, elixir-autogen, elixir-format
 msgid "You are not the comment creator"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:458
+#: lib/graphql/resolvers/user.ex:471
 #, elixir-autogen, elixir-format
 msgid "You cannot change your password."
 msgstr ""
 
-#: lib/graphql/resolvers/participant.ex:321
+#: lib/graphql/resolvers/participant.ex:328
 #, elixir-autogen, elixir-format
 msgid "Format not supported"
 msgstr ""
 
-#: lib/graphql/resolvers/participant.ex:305
+#: lib/graphql/resolvers/participant.ex:312
 #, elixir-autogen, elixir-format
 msgid "A dependency needed to export to %{format} is not installed"
 msgstr ""
 
-#: lib/graphql/resolvers/participant.ex:313
+#: lib/graphql/resolvers/participant.ex:320
 #, elixir-autogen, elixir-format
 msgid "An error occured while saving export"
 msgstr ""
 
-#: lib/web/controllers/export_controller.ex:30
+#: lib/web/controllers/export_controller.ex:32
 #, elixir-autogen, elixir-format
 msgid "Export to format %{format} is not enabled on this instance"
 msgstr ""
@@ -993,17 +959,17 @@ msgstr ""
 msgid "Only admins can create groups"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:279
+#: lib/graphql/resolvers/event.ex:280
 #, elixir-autogen, elixir-format
 msgid "Only groups can create events"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:305
+#: lib/graphql/resolvers/event.ex:313
 #, elixir-autogen, elixir-format
 msgid "Unknown error while creating event"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:514
+#: lib/graphql/resolvers/user.ex:498
 #, elixir-autogen, elixir-format
 msgid "User cannot change email"
 msgstr ""
@@ -1018,12 +984,12 @@ msgstr ""
 msgid "Follow not found"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:379
+#: lib/graphql/resolvers/user.ex:392
 #, elixir-autogen, elixir-format
 msgid "Profile with username %{username} not found"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:374
+#: lib/graphql/resolvers/user.ex:387
 #, elixir-autogen, elixir-format
 msgid "This profile does not belong to you"
 msgstr ""
@@ -1068,22 +1034,22 @@ msgstr ""
 msgid "Your email seems to be using an invalid format"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:382
+#: lib/graphql/resolvers/admin.ex:399
 #, elixir-autogen, elixir-format
 msgid "Can't confirm an already confirmed user"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:386
+#: lib/graphql/resolvers/admin.ex:403
 #, elixir-autogen, elixir-format
 msgid "Deconfirming users is not supported"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:358
+#: lib/graphql/resolvers/admin.ex:375
 #, elixir-autogen, elixir-format, fuzzy
 msgid "The new role must be different"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:309
+#: lib/graphql/resolvers/admin.ex:314
 #, elixir-autogen, elixir-format, fuzzy
 msgid "You need to be logged-in and an administrator to edit an user's details"
 msgstr ""
@@ -1093,28 +1059,28 @@ msgstr ""
 msgid "A profile or group with that name already exists"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:519
+#: lib/graphql/resolvers/admin.ex:542
 #, elixir-autogen, elixir-format
 msgid "Unable to find an instance to follow at this address"
 msgstr ""
 
-#: lib/mobilizon/actors/actor.ex:396
+#: lib/mobilizon/actors/actor.ex:397
 #, elixir-autogen, elixir-format
 msgid "Username must only contain alphanumeric lowercased characters and underscores."
 msgstr ""
 
 #: lib/graphql/resolvers/user.ex:303
-#: lib/graphql/resolvers/user.ex:326
+#: lib/graphql/resolvers/user.ex:333
 #, elixir-autogen, elixir-format, fuzzy
 msgid "This email doesn't seem to be valid"
 msgstr ""
 
-#: lib/graphql/resolvers/comment.ex:65
+#: lib/graphql/resolvers/comment.ex:59
 #, elixir-autogen, elixir-format
 msgid "This comment was detected as spam."
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:293
+#: lib/graphql/resolvers/event.ex:301
 #, elixir-autogen, elixir-format
 msgid "This event was detected as spam."
 msgstr ""
@@ -1135,7 +1101,7 @@ msgstr ""
 msgid "You need to be a moderator or an administrator to create a note on a report"
 msgstr ""
 
-#: lib/graphql/resolvers/person.ex:330
+#: lib/graphql/resolvers/person.ex:332
 #, elixir-autogen, elixir-format
 msgid "Your profile was detected as spam."
 msgstr ""
@@ -1145,7 +1111,7 @@ msgstr ""
 msgid "Your registration has been detected as spam and cannot be processed."
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:86
+#: lib/web/controllers/application_controller.ex:88
 #, elixir-autogen, elixir-format
 msgid "All of name, scope and redirect_uri parameters are required to create an application"
 msgstr ""
@@ -1160,171 +1126,227 @@ msgstr ""
 msgid "Application token not found"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:89
+#: lib/graphql/resolvers/application.ex:90
 #, elixir-autogen, elixir-format, fuzzy
 msgid "Error while revoking token"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:59
+#: lib/web/controllers/application_controller.ex:61
 #, elixir-autogen, elixir-format
 msgid "Impossible to create application."
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:356
+#: lib/web/controllers/application_controller.ex:358
 #, elixir-autogen, elixir-format
 msgid "Incorrect parameters sent. You need to provide at least the grant_type and client_id parameters, depending on the grant type being used."
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:329
+#: lib/web/controllers/application_controller.ex:331
 #, elixir-autogen, elixir-format
 msgid "Invalid client credentials provided"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:337
+#: lib/web/controllers/application_controller.ex:339
 #, elixir-autogen, elixir-format
 msgid "Invalid refresh token provided"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:170
-#: lib/web/controllers/application_controller.ex:401
+#: lib/web/controllers/application_controller.ex:172
+#: lib/web/controllers/application_controller.ex:403
 #, elixir-autogen, elixir-format
 msgid "No application was found with this client_id"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:37
+#: lib/graphql/resolvers/application.ex:38
 #, elixir-autogen, elixir-format
 msgid "No application with this client_id was found"
 msgstr ""
 
-#: lib/graphql/authorization.ex:80
+#: lib/graphql/authorization.ex:81
 #, elixir-autogen, elixir-format
 msgid "Not authorized to access field %{field}"
 msgstr ""
 
-#: lib/graphql/authorization.ex:70
-#: lib/graphql/authorization.ex:75
+#: lib/graphql/authorization.ex:71
+#: lib/graphql/authorization.ex:76
 #, elixir-autogen, elixir-format
 msgid "Not authorized to access object %{object}"
 msgstr ""
 
-#: lib/graphql/authorization.ex:63
+#: lib/graphql/authorization.ex:64
 #, elixir-autogen, elixir-format
 msgid "Not authorized to access this %{object_type}"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:279
+#: lib/web/controllers/application_controller.ex:281
 #, elixir-autogen, elixir-format
 msgid "Please slow down the rate of your requests"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:267
+#: lib/web/controllers/application_controller.ex:269
 #, elixir-autogen, elixir-format
 msgid "The authorization request is still pending"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:249
+#: lib/web/controllers/application_controller.ex:251
 #, elixir-autogen, elixir-format
 msgid "The client_id provided or the device_code associated is invalid"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:133
+#: lib/graphql/resolvers/application.ex:139
 #, elixir-autogen, elixir-format
 msgid "The device user code was not provided before approving the application"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:304
+#: lib/web/controllers/application_controller.ex:306
 #, elixir-autogen, elixir-format
 msgid "The given device_code has expired"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:44
+#: lib/graphql/resolvers/application.ex:45
 #, elixir-autogen, elixir-format
 msgid "The given redirect_uri is not in the list of allowed redirect URIs"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:158
+#: lib/web/controllers/application_controller.ex:160
 #, elixir-autogen, elixir-format
 msgid "The given scope is not in the list of the app declared scopes"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:109
-#: lib/graphql/resolvers/application.ex:146
+#: lib/graphql/resolvers/application.ex:112
+#: lib/graphql/resolvers/application.ex:154
 #, elixir-autogen, elixir-format
 msgid "The given user code has expired"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:112
-#: lib/graphql/resolvers/application.ex:140
+#: lib/graphql/resolvers/application.ex:118
+#: lib/graphql/resolvers/application.ex:146
 #, elixir-autogen, elixir-format
 msgid "The given user code is invalid"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:411
+#: lib/web/controllers/application_controller.ex:413
 #, elixir-autogen, elixir-format
 msgid "The provided client_id does not match the provided code"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:414
+#: lib/web/controllers/application_controller.ex:416
 #, elixir-autogen, elixir-format
 msgid "The provided client_secret is invalid"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:407
+#: lib/web/controllers/application_controller.ex:409
 #, elixir-autogen, elixir-format
 msgid "The provided code is invalid or expired"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:418
+#: lib/web/controllers/application_controller.ex:420
 #, elixir-autogen, elixir-format
 msgid "The provided scope is invalid or not included in the app declared scopes"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:45
+#: lib/web/controllers/application_controller.ex:47
 #, elixir-autogen, elixir-format
 msgid "The scope parameter is not a space separated list of valid scopes"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:292
+#: lib/web/controllers/application_controller.ex:294
 #, elixir-autogen, elixir-format
 msgid "The user rejected the requested authorization"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:404
+#: lib/web/controllers/application_controller.ex:406
 #, elixir-autogen, elixir-format
 msgid "This redirect URI is not allowed"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:381
+#: lib/web/controllers/application_controller.ex:383
 #, elixir-autogen, elixir-format, fuzzy
 msgid "Token not found"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:72
+#: lib/web/controllers/application_controller.ex:74
 #, elixir-autogen, elixir-format
 msgid "Too many requests"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:184
+#: lib/web/controllers/application_controller.ex:186
 #, elixir-autogen, elixir-format
 msgid "Unable to produce device code"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:373
+#: lib/web/controllers/application_controller.ex:375
 #, elixir-autogen, elixir-format
 msgid "Unable to revoke token"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:198
+#: lib/web/controllers/application_controller.ex:200
 #, elixir-autogen, elixir-format
 msgid "You need to pass both client_id and scope as parameters to obtain a device code"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:136
+#: lib/web/controllers/application_controller.ex:138
 #, elixir-autogen, elixir-format
 msgid "You need to provide a valid redirect_uri to autorize an application"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:126
+#: lib/web/controllers/application_controller.ex:128
 #, elixir-autogen, elixir-format
 msgid "You need to specify client_id, redirect_uri, scope and state to autorize an application"
 msgstr ""
+
+#: lib/graphql/resolvers/user.ex:306
+#, elixir-autogen, elixir-format
+msgid "Couldn't send an email. Internal error."
+msgstr ""
+
+#: lib/graphql/resolvers/participant.ex:286
+#, elixir-autogen, elixir-format
+msgid "Participation is already confirmed"
+msgstr ""
+
+#: lib/graphql/resolvers/participant.ex:283
+#, elixir-autogen, elixir-format
+msgid "Participation is confirmed but not approved yet by an organizer"
+msgstr ""
+
+#: lib/graphql/resolvers/event.ex:287
+#: lib/graphql/resolvers/event.ex:376
+#, elixir-autogen, elixir-format
+msgid "Providing external registration is not allowed"
+msgstr ""
+
+#: lib/graphql/resolvers/push_subscription.ex:48
+#, elixir-autogen, elixir-format
+msgid "The same push subscription has already been registered"
+msgstr ""
+
+#: lib/graphql/resolvers/admin.ex:536
+#, elixir-autogen, elixir-format
+msgid "This instance is pending follow approval"
+msgstr ""
+
+#: lib/graphql/schema/custom/timezone.ex:23
+#, elixir-autogen, elixir-format
+msgid "Timezone ID %{timezone} is invalid"
+msgstr ""
+
+#: lib/graphql/resolvers/admin.ex:539
+#, elixir-autogen, elixir-format, fuzzy
+msgid "You are already following this instance"
+msgstr ""
+
+#: lib/graphql/resolvers/user.ex:310
+#, elixir-autogen, elixir-format, fuzzy
+msgid "You requested again a confirmation email too soon. Please try again in a few minutes"
+msgstr ""
+
+#: lib/graphql/resolvers/user.ex:341
+#, elixir-autogen, elixir-format
+msgid "You requested again a password reset email too soon. Please try again in a few minutes"
+msgstr ""
+
+#: lib/graphql/resolvers/user.ex:368
+#, elixir-autogen, elixir-format
+msgid "The token you provided is invalid. Make sure that the URL is exactly the one provided inside the email you got."
+msgstr ""
diff --git a/priv/gettext/hr/LC_MESSAGES/activity.po b/priv/gettext/hr/LC_MESSAGES/activity.po
index 21d4ae1b7ee6089d7f3861c7b30eb5db98fa0195..732194b0aa72b2bbe2355c5849c7fb4d50b37243 100644
--- a/priv/gettext/hr/LC_MESSAGES/activity.po
+++ b/priv/gettext/hr/LC_MESSAGES/activity.po
@@ -482,3 +482,15 @@ msgstr "%{profile} su odgovorili na razgovor %{discussion} u grupi %{group}."
 #, elixir-autogen, elixir-format
 msgid "%{profile} approved the member %{member}."
 msgstr "%{profile} su odobrili člana %{member}."
+
+#: lib/service/activity/renderer/event.ex:74
+#: lib/web/templates/email/activity/_event_activity_item.html.heex:55
+#: lib/web/templates/email/activity/_event_activity_item.text.eex:31
+#, elixir-autogen, elixir-format
+msgid "%{profile} joined your event %{event}."
+msgstr ""
+
+#: lib/web/views/email_view.ex:45
+#, elixir-autogen, elixir-format
+msgid "An anonymous profile"
+msgstr ""
diff --git a/priv/gettext/hr/LC_MESSAGES/default.po b/priv/gettext/hr/LC_MESSAGES/default.po
index 4a07d194ac621c1e2f56f887c5d244ef80c113ae..ac7aa2bcebee8f1e557fb410973c4053c9aa8475 100644
--- a/priv/gettext/hr/LC_MESSAGES/default.po
+++ b/priv/gettext/hr/LC_MESSAGES/default.po
@@ -22,7 +22,7 @@ msgstr ""
 "Ako ovo nisi zatražio/la, zanemari ovu e-maila poruku. Tvoja se lozinka neće "
 "promijeniti sve dok ne pristupiš donjoj poveznici i ne stvoriš novu lozinku."
 
-#: lib/web/templates/email/report.html.heex:120
+#: lib/web/templates/email/report.html.heex:121
 #, elixir-autogen, elixir-format
 msgid "%{title} by %{creator}"
 msgstr "%{title} od %{creator}"
@@ -38,23 +38,17 @@ msgstr "Aktiviraj moj račun"
 msgid "Ask the community on Framacolibri"
 msgstr "Pitaj zajednicu na Framacolibri"
 
-#: lib/web/templates/email/report.text.eex:15
+#: lib/web/templates/email/report.text.eex:17
 #, elixir-autogen, elixir-format
 msgid "Comments"
 msgstr "Komentari"
 
-#: lib/web/templates/email/report.html.heex:115
-#: lib/web/templates/email/report.text.eex:11
-#, elixir-autogen, elixir-format
-msgid "Event"
-msgstr "Događaj"
-
 #: lib/web/email/user.ex:49
 #, elixir-autogen, elixir-format
 msgid "Instructions to reset your password on %{instance}"
 msgstr "Upute za obnavljanje lozinke na %{instance}"
 
-#: lib/web/templates/email/report.text.eex:21
+#: lib/web/templates/email/report.text.eex:23
 #, elixir-autogen, elixir-format
 msgid "Reason"
 msgstr "Razlog"
@@ -328,12 +322,12 @@ msgctxt "terms"
 msgid "What information do we collect?"
 msgstr "Koje podatke prikupljamo?"
 
-#: lib/web/email/user.ex:182
+#: lib/web/email/user.ex:188
 #, elixir-autogen, elixir-format
 msgid "Mobilizon on %{instance}: confirm your email address"
 msgstr "Mobilizon na %{instance}: potvrdi svoju e-mail adresu"
 
-#: lib/web/email/user.ex:159
+#: lib/web/email/user.ex:165
 #, elixir-autogen, elixir-format
 msgid "Mobilizon on %{instance}: email changed"
 msgstr "Mobilizon na %{instance}: e-mail adresa se promijenila"
@@ -861,7 +855,7 @@ msgstr "Kraj"
 msgid "Event update!"
 msgstr "Aktualiziranje događaja!"
 
-#: lib/web/templates/email/report.html.heex:155
+#: lib/web/templates/email/report.html.heex:158
 #, elixir-autogen, elixir-format
 msgid "Flagged comments"
 msgstr "Označeni komentari"
@@ -952,7 +946,7 @@ msgstr "Skoro gotovo!"
 msgid "New email confirmation"
 msgstr "Potvrđivanje nove e-mail adrese"
 
-#: lib/web/templates/email/report.html.heex:191
+#: lib/web/templates/email/report.html.heex:194
 #, elixir-autogen, elixir-format
 msgid "Reasons for report"
 msgstr "Razlozi za izvještaj"
@@ -1010,12 +1004,12 @@ msgstr "Organizatori su nažalost odbili tvoj zahtjev."
 msgid "Verify your email address"
 msgstr "Potvrdi tvoju e-mail adresu"
 
-#: lib/web/templates/email/report.html.heex:232
+#: lib/web/templates/email/report.html.heex:235
 #, elixir-autogen, elixir-format
 msgid "View report"
 msgstr "Pogledaj izvještaj"
 
-#: lib/web/templates/email/report.text.eex:24
+#: lib/web/templates/email/report.text.eex:26
 #, elixir-autogen, elixir-format
 msgid "View report:"
 msgstr "Pogledaj izvještaj:"
@@ -1123,12 +1117,6 @@ msgstr ""
 msgid "As this group was located on another instance, it will continue to work for other instances than this one."
 msgstr ""
 
-#: lib/web/templates/email/group_suspension.html.heex:67
-#: lib/web/templates/email/group_suspension.text.eex:5
-#, elixir-autogen, elixir-format
-msgid "As this group was located on this instance, all of it's data has been irretrievably deleted."
-msgstr ""
-
 #: lib/web/templates/email/group_suspension.html.heex:18
 #: lib/web/templates/email/group_suspension.text.eex:1
 #, elixir-autogen, elixir-format
@@ -1142,7 +1130,7 @@ msgstr ""
 "Tim za moderiranje tvoje instance je odlučio suspendirati %{group_name} "
 "(%{group_address}). Više nisi član ove grupe."
 
-#: lib/web/email/group.ex:107
+#: lib/web/email/group.ex:108
 #, elixir-autogen, elixir-format
 msgid "The group %{group} has been suspended on %{instance}"
 msgstr "Grupa %{group} je suspendirana na instanci %{instance}"
@@ -1445,16 +1433,6 @@ msgstr "Čini se da Mobilizon poslužitej %{instance} privremeno nije dostupan."
 msgid "Public feed for %{instance}"
 msgstr "Javni feed za %{instance}"
 
-#: lib/graphql/resolvers/user.ex:350
-#, elixir-autogen, elixir-format
-msgid "The password you have choosen is too short. Please make sure your password contains at least 6 charaters."
-msgstr "Odabrana lozinka je prekratka. Lozinka mora sadržati barem 6 znakova."
-
-#: lib/graphql/resolvers/user.ex:356
-#, elixir-autogen, elixir-format
-msgid "The token you provided is invalid. Make sure that the URL is exactly the one provided inside the email you got."
-msgstr ""
-
 #: lib/web/email/actor.ex:43
 #, elixir-autogen, elixir-format
 msgid "Your participation to %{event} has been cancelled!"
@@ -1484,63 +1462,63 @@ msgstr ""
 "Tvoje sudjelovanje događaju %{event} na instanci %{instance} je otkazano!!"
 
 #. File name template for exported list of participants. Should NOT contain spaces. Make sure the output is going to be something standardized that is acceptable as a file name on most systems.
-#: lib/service/export/participants/csv.ex:81
+#: lib/service/export/participants/csv.ex:97
 #: lib/service/export/participants/ods.ex:86
 #: lib/service/export/participants/pdf.ex:96
 #, elixir-autogen, elixir-format
 msgid "%{event}_participants"
 msgstr "%{event}_sudionici"
 
-#: lib/service/export/participants/common.ex:61
+#: lib/service/export/participants/common.ex:66
 #, elixir-autogen, elixir-format
 msgid "Participant message"
 msgstr "Poruka sudionika"
 
-#: lib/service/export/participants/common.ex:61
+#: lib/service/export/participants/common.ex:63
 #, elixir-autogen, elixir-format
 msgid "Participant name"
 msgstr "Ime sudionika"
 
-#: lib/service/export/participants/common.ex:61
+#: lib/service/export/participants/common.ex:64
 #, elixir-autogen, elixir-format
 msgid "Participant status"
 msgstr "Stanje sudionika"
 
-#: lib/service/export/participants/common.ex:52
+#: lib/service/export/participants/common.ex:53
 #: lib/web/templates/email/admin/_role.html.heex:3
 #: lib/web/templates/email/admin/_role.text.eex:1
 #, elixir-autogen, elixir-format
 msgid "Administrator"
 msgstr "Administrator"
 
-#: lib/service/export/participants/common.ex:55
+#: lib/service/export/participants/common.ex:56
 #, elixir-autogen, elixir-format
 msgid "Creator"
 msgstr "Stvaratelj"
 
-#: lib/service/export/participants/common.ex:49
+#: lib/service/export/participants/common.ex:50
 #: lib/web/templates/email/admin/_role.html.heex:5
 #: lib/web/templates/email/admin/_role.text.eex:1
 #, elixir-autogen, elixir-format
 msgid "Moderator"
 msgstr "Moderator"
 
-#: lib/service/export/participants/common.ex:37
+#: lib/service/export/participants/common.ex:38
 #, elixir-autogen, elixir-format
 msgid "Not approved"
 msgstr "Neodobreno"
 
-#: lib/service/export/participants/common.ex:40
+#: lib/service/export/participants/common.ex:41
 #, elixir-autogen, elixir-format
 msgid "Not confirmed"
 msgstr "Nepotvrđeno"
 
-#: lib/service/export/participants/common.ex:46
+#: lib/service/export/participants/common.ex:47
 #, elixir-autogen, elixir-format
 msgid "Participant"
 msgstr "Sudionik"
 
-#: lib/service/export/participants/common.ex:43
+#: lib/service/export/participants/common.ex:44
 #, elixir-autogen, elixir-format
 msgid "Rejected"
 msgstr "Odbijeno"
@@ -1565,7 +1543,7 @@ msgstr "Broj sudionika"
 msgid "Participants for %{event}"
 msgstr "Sudionici za događaj %{event}"
 
-#: lib/service/export/participants/common.ex:88
+#: lib/service/export/participants/common.ex:95
 #, elixir-autogen, elixir-format
 msgid "Anonymous participant"
 msgstr "Anonimni sudionik"
@@ -1684,7 +1662,7 @@ msgstr "Sudjeluj:"
 msgid "Title: %{title}"
 msgstr "Naslov: %{title}"
 
-#: lib/web/email/group.ex:46
+#: lib/web/email/group.ex:47
 #, elixir-autogen, elixir-format
 msgid "📅 Just scheduled by %{group}: %{event}"
 msgstr "📅 Upravo zakazano od grupe %{group}: %{event}"
@@ -2119,3 +2097,24 @@ msgstr ""
 #, elixir-autogen, elixir-format
 msgid "Until next time!"
 msgstr "Vidimo se!"
+
+#: lib/web/templates/email/group_suspension.html.heex:67
+#: lib/web/templates/email/group_suspension.text.eex:5
+#, elixir-autogen, elixir-format, fuzzy
+msgid "As this group was located on this instance, all of its data has been irretrievably deleted."
+msgstr ""
+
+#: lib/web/templates/email/report.text.eex:11
+#, elixir-autogen, elixir-format, fuzzy
+msgid "Events"
+msgstr "Događaj"
+
+#: lib/web/templates/email/report.html.heex:115
+#, elixir-autogen, elixir-format, fuzzy
+msgid "Flagged events"
+msgstr "Označeni komentari"
+
+#: lib/service/export/participants/common.ex:65
+#, elixir-autogen, elixir-format, fuzzy
+msgid "Participant registration date"
+msgstr "Stanje sudionika"
diff --git a/priv/gettext/hr/LC_MESSAGES/errors.po b/priv/gettext/hr/LC_MESSAGES/errors.po
index 95260d758eb2e0a113886ee03cddcee6393c1367..7dd99e2ba78a6e43cb998a53f171fb47f378fc24 100644
--- a/priv/gettext/hr/LC_MESSAGES/errors.po
+++ b/priv/gettext/hr/LC_MESSAGES/errors.po
@@ -133,7 +133,7 @@ msgstr "Aktualni profil nije član grupe"
 msgid "Current profile is not an administrator of the selected group"
 msgstr "Aktualni profil nije administrator odabrane grupe"
 
-#: lib/graphql/resolvers/user.ex:644
+#: lib/graphql/resolvers/user.ex:673
 #, elixir-autogen, elixir-format
 msgid "Error while saving user settings"
 msgstr "Greška prilikom spremanja korisničkih postavki"
@@ -177,8 +177,8 @@ msgstr "Nije pronađen profil za korisnika moderatora"
 msgid "No user to validate with this email was found"
 msgstr "Nije pronađen nijedan korisnik za potvrđivanje s ovom e-mail adresom"
 
-#: lib/graphql/resolvers/person.ex:337
-#: lib/graphql/resolvers/user.ex:330
+#: lib/graphql/resolvers/person.ex:339
+#: lib/graphql/resolvers/user.ex:337
 #, elixir-autogen, elixir-format
 msgid "No user with this email was found"
 msgstr "Nije pronađen nijedan korisnik s ovom e-mail adresom"
@@ -186,12 +186,12 @@ msgstr "Nije pronađen nijedan korisnik s ovom e-mail adresom"
 #: lib/graphql/resolvers/feed_token.ex:28
 #: lib/graphql/resolvers/participant.ex:32
 #: lib/graphql/resolvers/participant.ex:210
-#: lib/graphql/resolvers/person.ex:245
-#: lib/graphql/resolvers/person.ex:376
-#: lib/graphql/resolvers/person.ex:412
-#: lib/graphql/resolvers/person.ex:419
-#: lib/graphql/resolvers/person.ex:448
-#: lib/graphql/resolvers/person.ex:463
+#: lib/graphql/resolvers/person.ex:247
+#: lib/graphql/resolvers/person.ex:378
+#: lib/graphql/resolvers/person.ex:414
+#: lib/graphql/resolvers/person.ex:421
+#: lib/graphql/resolvers/person.ex:450
+#: lib/graphql/resolvers/person.ex:465
 #, elixir-autogen, elixir-format
 msgid "Profile is not owned by authenticated user"
 msgstr "Profil nije u vlasništvu autentificiranog korisnika"
@@ -201,41 +201,42 @@ msgstr "Profil nije u vlasništvu autentificiranog korisnika"
 msgid "Registrations are not open"
 msgstr "Registracije nisu otvorene"
 
-#: lib/graphql/resolvers/user.ex:461
+#: lib/graphql/resolvers/user.ex:474
 #, elixir-autogen, elixir-format
 msgid "The current password is invalid"
 msgstr "Aktualna lozinka nije ispravna"
 
-#: lib/graphql/resolvers/admin.ex:336
-#: lib/graphql/resolvers/user.ex:504
+#: lib/graphql/resolvers/admin.ex:334
+#: lib/graphql/resolvers/user.ex:527
 #, elixir-autogen, elixir-format
 msgid "The new email doesn't seem to be valid"
 msgstr "ÄŒini se da nova e-mail adresa nije ispravna"
 
-#: lib/graphql/resolvers/admin.ex:339
-#: lib/graphql/resolvers/user.ex:507
+#: lib/graphql/resolvers/admin.ex:323
+#: lib/graphql/resolvers/user.ex:514
 #, elixir-autogen, elixir-format
 msgid "The new email must be different"
 msgstr "Nova e-mail adresa ne smije biti ista kao aktualna"
 
-#: lib/graphql/resolvers/user.ex:464
+#: lib/graphql/resolvers/user.ex:477
 #, elixir-autogen, elixir-format
 msgid "The new password must be different"
 msgstr "Nova lozinka ne smije biti ista kao aktualna"
 
-#: lib/graphql/resolvers/user.ex:511
-#: lib/graphql/resolvers/user.ex:573
-#: lib/graphql/resolvers/user.ex:576
+#: lib/graphql/resolvers/user.ex:518
+#: lib/graphql/resolvers/user.ex:602
+#: lib/graphql/resolvers/user.ex:605
 #, elixir-autogen, elixir-format
 msgid "The password provided is invalid"
 msgstr "Zadana lozinka je neispravna"
 
-#: lib/graphql/resolvers/user.ex:468
+#: lib/graphql/resolvers/user.ex:361
+#: lib/graphql/resolvers/user.ex:481
 #, elixir-autogen, elixir-format
 msgid "The password you have chosen is too short. Please make sure your password contains at least 6 characters."
 msgstr "Lozinka je prekratka. Lozinka mora sadržati barem 6 znakova."
 
-#: lib/graphql/resolvers/user.ex:323
+#: lib/graphql/resolvers/user.ex:330
 #, elixir-autogen, elixir-format
 msgid "This user can't reset their password"
 msgstr "Ovaj korisnik ne može obnoviti svoju lozinku"
@@ -251,12 +252,12 @@ msgstr "Ovaj je korisnik deaktiviran"
 msgid "Unable to validate user"
 msgstr "Nije moguće potvrditi korisnika"
 
-#: lib/graphql/resolvers/user.ex:554
+#: lib/graphql/resolvers/user.ex:583
 #, elixir-autogen, elixir-format
 msgid "User already disabled"
 msgstr "Korisnik je već deaktiviran"
 
-#: lib/graphql/resolvers/user.ex:619
+#: lib/graphql/resolvers/user.ex:648
 #, elixir-autogen, elixir-format
 msgid "User requested is not logged-in"
 msgstr "Zatraženi korisnik nije prijavljen"
@@ -281,12 +282,12 @@ msgstr "Ne možeš se pridružiti ovoj grupi"
 msgid "You may not list groups unless moderator."
 msgstr "Ne možeš izraditi popis grupa ako nisi moderator."
 
-#: lib/graphql/resolvers/user.ex:519
+#: lib/graphql/resolvers/user.ex:503
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to change your email"
 msgstr "Za mijenjanje e-mail adrese moraš biti prijavljen/a"
 
-#: lib/graphql/resolvers/user.ex:476
+#: lib/graphql/resolvers/user.ex:489
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to change your password"
 msgstr "Za mijenjanje lozinke moraš biti prijavljen/a"
@@ -296,7 +297,7 @@ msgstr "Za mijenjanje lozinke moraš biti prijavljen/a"
 msgid "You need to be logged-in to delete a group"
 msgstr "Za brisanje grupe moraš biti prijavljen/a"
 
-#: lib/graphql/resolvers/user.ex:581
+#: lib/graphql/resolvers/user.ex:610
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to delete your account"
 msgstr "Za brisanje tvog računa moraš biti prijavljen/a"
@@ -321,12 +322,6 @@ msgstr "Za aktualiziranje grupe moraš biti prijavljen/a"
 msgid "You need to have an existing token to get a refresh token"
 msgstr "Za primanje tokena za osvježavanje moraš imati postojeći token"
 
-#: lib/graphql/resolvers/user.ex:306
-#: lib/graphql/resolvers/user.ex:333
-#, elixir-autogen, elixir-format
-msgid "You requested again a confirmation email too soon"
-msgstr "Ponovo si zatražio/la potvrdni e-mail prerano"
-
 #: lib/graphql/resolvers/user.ex:180
 #, elixir-autogen, elixir-format
 msgid "Your email is not on the allowlist"
@@ -379,17 +374,17 @@ msgstr "Za tvoju instancu je potrebna ispravna e-mail adresa"
 msgid "Anonymous participation is not enabled"
 msgstr "Anonimno sudjelovanje nije aktivirano"
 
-#: lib/graphql/resolvers/person.ex:219
+#: lib/graphql/resolvers/person.ex:221
 #, elixir-autogen, elixir-format
 msgid "Cannot remove the last administrator of a group"
 msgstr "Nije moguće ukloniti zadnjeg administratora jedne grupe"
 
-#: lib/graphql/resolvers/person.ex:216
+#: lib/graphql/resolvers/person.ex:218
 #, elixir-autogen, elixir-format
 msgid "Cannot remove the last identity of a user"
 msgstr "Nije moguće ukloniti zadnji identitet jednog korisnika"
 
-#: lib/graphql/resolvers/comment.ex:147
+#: lib/graphql/resolvers/comment.ex:153
 #, elixir-autogen, elixir-format
 msgid "Comment is already deleted"
 msgstr "Komentar je već izbrisan"
@@ -417,8 +412,8 @@ msgid "Event id not found"
 msgstr "ID događaja nije pronađen"
 
 #: lib/graphql/error.ex:114
-#: lib/graphql/resolvers/event.ex:355
-#: lib/graphql/resolvers/event.ex:407
+#: lib/graphql/resolvers/event.ex:382
+#: lib/graphql/resolvers/event.ex:434
 #, elixir-autogen, elixir-format
 msgid "Event not found"
 msgstr "Događaj nije pronađen"
@@ -426,7 +421,7 @@ msgstr "Događaj nije pronađen"
 #: lib/graphql/resolvers/participant.ex:87
 #: lib/graphql/resolvers/participant.ex:128
 #: lib/graphql/resolvers/participant.ex:155
-#: lib/graphql/resolvers/participant.ex:336
+#: lib/graphql/resolvers/participant.ex:343
 #, elixir-autogen, elixir-format
 msgid "Event with this ID %{id} doesn't exist"
 msgstr "Događaj s ID oznakom %{id} ne postoji"
@@ -436,7 +431,7 @@ msgstr "Događaj s ID oznakom %{id} ne postoji"
 msgid "Internal Error"
 msgstr "Interna greška"
 
-#: lib/graphql/resolvers/discussion.ex:219
+#: lib/graphql/resolvers/discussion.ex:222
 #, elixir-autogen, elixir-format
 msgid "No discussion with ID %{id}"
 msgstr "Ne postoji diskusija s ID oznakom %{id}"
@@ -503,10 +498,10 @@ msgstr "Profil već je član ove grupe"
 #: lib/graphql/resolvers/post.ex:133
 #: lib/graphql/resolvers/post.ex:175
 #: lib/graphql/resolvers/post.ex:209
-#: lib/graphql/resolvers/resource.ex:90
-#: lib/graphql/resolvers/resource.ex:135
-#: lib/graphql/resolvers/resource.ex:168
-#: lib/graphql/resolvers/resource.ex:202
+#: lib/graphql/resolvers/resource.ex:92
+#: lib/graphql/resolvers/resource.ex:137
+#: lib/graphql/resolvers/resource.ex:170
+#: lib/graphql/resolvers/resource.ex:204
 #: lib/graphql/resolvers/todos.ex:58
 #: lib/graphql/resolvers/todos.ex:83
 #: lib/graphql/resolvers/todos.ex:110
@@ -518,7 +513,7 @@ msgid "Profile is not member of group"
 msgstr "Profil nije član grupe"
 
 #: lib/graphql/resolvers/actor.ex:67
-#: lib/graphql/resolvers/person.ex:242
+#: lib/graphql/resolvers/person.ex:244
 #, elixir-autogen, elixir-format
 msgid "Profile not found"
 msgstr "Profil nije pronađen"
@@ -528,8 +523,8 @@ msgstr "Profil nije pronađen"
 msgid "Report not found"
 msgstr "Izvještaj nije pronađen"
 
-#: lib/graphql/resolvers/resource.ex:172
-#: lib/graphql/resolvers/resource.ex:199
+#: lib/graphql/resolvers/resource.ex:174
+#: lib/graphql/resolvers/resource.ex:201
 #, elixir-autogen, elixir-format
 msgid "Resource doesn't exist"
 msgstr "Resurs ne postoji"
@@ -539,7 +534,7 @@ msgstr "Resurs ne postoji"
 msgid "The event has already reached its maximum capacity"
 msgstr "Događaj je već dosegnuo svoj maksimalni kapacitet"
 
-#: lib/graphql/resolvers/participant.ex:282
+#: lib/graphql/resolvers/participant.ex:289
 #, elixir-autogen, elixir-format
 msgid "This token is invalid"
 msgstr "Ovaj token je neispravan"
@@ -573,7 +568,7 @@ msgstr "Token nije ispravan UUID"
 msgid "User not found"
 msgstr "Korisnik nije pronađen"
 
-#: lib/graphql/resolvers/person.ex:333
+#: lib/graphql/resolvers/person.ex:335
 #, elixir-autogen, elixir-format
 msgid "You already have a profile for this user"
 msgstr "Već imaš profil za ovog korisnika"
@@ -595,7 +590,7 @@ msgstr "Nisi član ove grupe"
 msgid "You are not a moderator or admin for this group"
 msgstr "Nisi moderator niti administrator za ovu grupu"
 
-#: lib/graphql/resolvers/comment.ex:80
+#: lib/graphql/resolvers/comment.ex:74
 #, elixir-autogen, elixir-format
 msgid "You are not allowed to create a comment if not connected"
 msgstr "Ako nisi povezan/a ne smiješ komentirati"
@@ -605,7 +600,7 @@ msgstr "Ako nisi povezan/a ne smiješ komentirati"
 msgid "You are not allowed to create a feed token if not connected"
 msgstr "Ako nisi povezan/a ne smiješ stvoriti token za feed"
 
-#: lib/graphql/resolvers/comment.ex:155
+#: lib/graphql/resolvers/comment.ex:161
 #, elixir-autogen, elixir-format
 msgid "You are not allowed to delete a comment if not connected"
 msgstr "Ako nisi povezan/a ne smiješ izbrisati komentar"
@@ -615,7 +610,7 @@ msgstr "Ako nisi povezan/a ne smiješ izbrisati komentar"
 msgid "You are not allowed to delete a feed token if not connected"
 msgstr "Ako nisi povezan/a ne smiješ izbrisati token za feed"
 
-#: lib/graphql/resolvers/comment.ex:114
+#: lib/graphql/resolvers/comment.ex:120
 #, elixir-autogen, elixir-format
 msgid "You are not allowed to update a comment if not connected"
 msgstr "Ako nisi povezan/a ne smiješ aktualizirati komentar"
@@ -635,12 +630,12 @@ msgstr ""
 "Ne možeš se postaviti na nižu ulogu člana za ovu grupu jer si jedini "
 "administrator"
 
-#: lib/graphql/resolvers/comment.ex:143
+#: lib/graphql/resolvers/comment.ex:149
 #, elixir-autogen, elixir-format
 msgid "You cannot delete this comment"
 msgstr "Ne možeš izbrisati ovaj komentar"
 
-#: lib/graphql/resolvers/event.ex:403
+#: lib/graphql/resolvers/event.ex:430
 #, elixir-autogen, elixir-format
 msgid "You cannot delete this event"
 msgstr "Ne možeš izbrisati ovaj događaj"
@@ -675,21 +670,21 @@ msgstr "Za aktualiziranje izvještaja moraš biti prijavljen/a i biti moderator"
 msgid "You need to be logged-in and a moderator to view a report"
 msgstr "Za prikaz izvještaja moraš biti prijavljen/a i biti moderator"
 
-#: lib/graphql/resolvers/admin.ex:252
+#: lib/graphql/resolvers/admin.ex:258
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in and an administrator to access admin settings"
 msgstr ""
 "Za pristup administratorskim postavkama moraš biti prijavljen/a i biti "
 "moderator"
 
-#: lib/graphql/resolvers/admin.ex:236
+#: lib/graphql/resolvers/admin.ex:242
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in and an administrator to access dashboard statistics"
 msgstr ""
 "Za pristup nadzornoj ploči statistike moraš biti prijavljen/a i biti "
 "administrator"
 
-#: lib/graphql/resolvers/admin.ex:278
+#: lib/graphql/resolvers/admin.ex:283
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in and an administrator to save admin settings"
 msgstr ""
@@ -701,12 +696,12 @@ msgstr ""
 msgid "You need to be logged-in to access discussions"
 msgstr "Za pristup diskusijama moraš biti prijavljen/a"
 
-#: lib/graphql/resolvers/resource.ex:96
+#: lib/graphql/resolvers/resource.ex:98
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to access resources"
 msgstr "Za pristup resursima moraš biti prijavljen/a"
 
-#: lib/graphql/resolvers/event.ex:313
+#: lib/graphql/resolvers/event.ex:321
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to create events"
 msgstr "Za stvaranje događaja moraš biti prijavljen/a"
@@ -721,12 +716,12 @@ msgstr "Za stvaranje objava moraš biti prijavljen/a"
 msgid "You need to be logged-in to create reports"
 msgstr "Za stvaranje izvještaja moraš biti prijavljen/a"
 
-#: lib/graphql/resolvers/resource.ex:140
+#: lib/graphql/resolvers/resource.ex:142
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to create resources"
 msgstr "Za stvaranje resursa moraš biti prijavljen/a"
 
-#: lib/graphql/resolvers/event.ex:412
+#: lib/graphql/resolvers/event.ex:439
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to delete an event"
 msgstr "Za brisanje događaja moraš biti prijavljen/a"
@@ -736,7 +731,7 @@ msgstr "Za brisanje događaja moraš biti prijavljen/a"
 msgid "You need to be logged-in to delete posts"
 msgstr "Za brisanje objava moraš biti prijavljen/a"
 
-#: lib/graphql/resolvers/resource.ex:207
+#: lib/graphql/resolvers/resource.ex:209
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to delete resources"
 msgstr "Za brisanje resursa moraš biti prijavljen/a"
@@ -751,7 +746,7 @@ msgstr "Za pridruživanje događaju moraš biti prijavljen/a"
 msgid "You need to be logged-in to leave an event"
 msgstr "Za napuštanje događaja moraš biti prijavljen/a"
 
-#: lib/graphql/resolvers/event.ex:369
+#: lib/graphql/resolvers/event.ex:396
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to update an event"
 msgstr "Za aktualiziranje događaja moraš biti prijavljen/a"
@@ -761,17 +756,17 @@ msgstr "Za aktualiziranje događaja moraš biti prijavljen/a"
 msgid "You need to be logged-in to update posts"
 msgstr "Za aktualiziranje objava moraš biti prijavljen/a"
 
-#: lib/graphql/resolvers/resource.ex:177
+#: lib/graphql/resolvers/resource.ex:179
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to update resources"
 msgstr "Za aktualiziranje resursa moraš biti prijavljen/a"
 
-#: lib/graphql/resolvers/resource.ex:236
+#: lib/graphql/resolvers/resource.ex:233
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to view a resource preview"
 msgstr "Za prikaz pregleda resursa moraš biti prijavljen/a"
 
-#: lib/graphql/resolvers/resource.ex:132
+#: lib/graphql/resolvers/resource.ex:134
 #, elixir-autogen, elixir-format
 msgid "Parent resource doesn't belong to this group"
 msgstr ""
@@ -859,12 +854,12 @@ msgstr ""
 msgid "Profile is not administrator for the group"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:358
+#: lib/graphql/resolvers/event.ex:385
 #, elixir-autogen, elixir-format
 msgid "You can't edit this event."
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:361
+#: lib/graphql/resolvers/event.ex:388
 #, elixir-autogen, elixir-format
 msgid "You can't attribute this event to this profile."
 msgstr ""
@@ -884,7 +879,7 @@ msgstr ""
 msgid "You don't have the right to remove this member."
 msgstr ""
 
-#: lib/mobilizon/actors/actor.ex:377
+#: lib/mobilizon/actors/actor.ex:378
 #, elixir-autogen, elixir-format
 msgid "This username is already taken."
 msgstr ""
@@ -894,7 +889,7 @@ msgstr ""
 msgid "You must provide either an ID or a slug to access a discussion"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:275
+#: lib/graphql/resolvers/event.ex:276
 #, elixir-autogen, elixir-format
 msgid "Organizer profile is not owned by the user"
 msgstr ""
@@ -906,41 +901,41 @@ msgstr ""
 
 #: lib/graphql/resolvers/group.ex:181
 #: lib/graphql/resolvers/group.ex:223
-#: lib/graphql/resolvers/person.ex:157
-#: lib/graphql/resolvers/person.ex:191
-#: lib/graphql/resolvers/person.ex:324
+#: lib/graphql/resolvers/person.ex:159
+#: lib/graphql/resolvers/person.ex:193
+#: lib/graphql/resolvers/person.ex:326
 #, elixir-autogen, elixir-format
 msgid "The provided picture is too heavy"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:129
+#: lib/graphql/resolvers/resource.ex:131
 #, elixir-autogen, elixir-format
 msgid "Error while creating resource"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:537
+#: lib/graphql/resolvers/user.ex:566
 #, elixir-autogen, elixir-format
 msgid "Invalid activation token"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:226
+#: lib/graphql/resolvers/resource.ex:228
 #, elixir-autogen, elixir-format
 msgid "Unable to fetch resource details from this URL."
 msgstr ""
 
 #: lib/graphql/resolvers/event.ex:165
 #: lib/graphql/resolvers/participant.ex:253
-#: lib/graphql/resolvers/participant.ex:328
+#: lib/graphql/resolvers/participant.ex:335
 #, elixir-autogen, elixir-format
 msgid "Provided profile doesn't have moderator permissions on this event"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:286
+#: lib/graphql/resolvers/event.ex:294
 #, elixir-autogen, elixir-format
 msgid "Organizer profile doesn't have permission to create an event on behalf of this group"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:349
+#: lib/graphql/resolvers/event.ex:369
 #, elixir-autogen, elixir-format
 msgid "This profile doesn't have permission to update an event on behalf of this group"
 msgstr ""
@@ -950,7 +945,7 @@ msgstr ""
 msgid "Your e-mail has been denied registration or uses a disallowed e-mail provider"
 msgstr ""
 
-#: lib/graphql/resolvers/comment.ex:150
+#: lib/graphql/resolvers/comment.ex:156
 #, elixir-autogen, elixir-format
 msgid "Comment not found"
 msgstr ""
@@ -960,12 +955,12 @@ msgstr ""
 msgid "Error while creating a discussion"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:658
+#: lib/graphql/resolvers/user.ex:687
 #, elixir-autogen, elixir-format
 msgid "Error while updating locale"
 msgstr ""
 
-#: lib/graphql/resolvers/person.ex:327
+#: lib/graphql/resolvers/person.ex:329
 #, elixir-autogen, elixir-format
 msgid "Error while uploading pictures"
 msgstr ""
@@ -980,13 +975,13 @@ msgstr ""
 msgid "Failed to update the group"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:333
-#: lib/graphql/resolvers/user.ex:501
+#: lib/graphql/resolvers/admin.ex:357
+#: lib/graphql/resolvers/user.ex:547
 #, elixir-autogen, elixir-format
 msgid "Failed to update user email"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:533
+#: lib/graphql/resolvers/user.ex:562
 #, elixir-autogen, elixir-format
 msgid "Failed to validate user email"
 msgstr ""
@@ -996,37 +991,37 @@ msgstr ""
 msgid "The anonymous actor ID is invalid"
 msgstr "ID anonimnog aktera je neispravan"
 
-#: lib/graphql/resolvers/resource.ex:165
+#: lib/graphql/resolvers/resource.ex:167
 #, elixir-autogen, elixir-format
 msgid "Unknown error while updating resource"
 msgstr ""
 
-#: lib/graphql/resolvers/comment.ex:105
+#: lib/graphql/resolvers/comment.ex:111
 #, elixir-autogen, elixir-format
 msgid "You are not the comment creator"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:458
+#: lib/graphql/resolvers/user.ex:471
 #, elixir-autogen, elixir-format
 msgid "You cannot change your password."
 msgstr ""
 
-#: lib/graphql/resolvers/participant.ex:321
+#: lib/graphql/resolvers/participant.ex:328
 #, elixir-autogen, elixir-format
 msgid "Format not supported"
 msgstr ""
 
-#: lib/graphql/resolvers/participant.ex:305
+#: lib/graphql/resolvers/participant.ex:312
 #, elixir-autogen, elixir-format
 msgid "A dependency needed to export to %{format} is not installed"
 msgstr ""
 
-#: lib/graphql/resolvers/participant.ex:313
+#: lib/graphql/resolvers/participant.ex:320
 #, elixir-autogen, elixir-format
 msgid "An error occured while saving export"
 msgstr ""
 
-#: lib/web/controllers/export_controller.ex:30
+#: lib/web/controllers/export_controller.ex:32
 #, elixir-autogen, elixir-format
 msgid "Export to format %{format} is not enabled on this instance"
 msgstr ""
@@ -1036,17 +1031,17 @@ msgstr ""
 msgid "Only admins can create groups"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:279
+#: lib/graphql/resolvers/event.ex:280
 #, elixir-autogen, elixir-format
 msgid "Only groups can create events"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:305
+#: lib/graphql/resolvers/event.ex:313
 #, elixir-autogen, elixir-format
 msgid "Unknown error while creating event"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:514
+#: lib/graphql/resolvers/user.ex:498
 #, elixir-autogen, elixir-format
 msgid "User cannot change email"
 msgstr ""
@@ -1061,12 +1056,12 @@ msgstr ""
 msgid "Follow not found"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:379
+#: lib/graphql/resolvers/user.ex:392
 #, elixir-autogen, elixir-format
 msgid "Profile with username %{username} not found"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:374
+#: lib/graphql/resolvers/user.ex:387
 #, elixir-autogen, elixir-format
 msgid "This profile does not belong to you"
 msgstr ""
@@ -1111,22 +1106,22 @@ msgstr ""
 msgid "Your email seems to be using an invalid format"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:382
+#: lib/graphql/resolvers/admin.ex:399
 #, elixir-autogen, elixir-format
 msgid "Can't confirm an already confirmed user"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:386
+#: lib/graphql/resolvers/admin.ex:403
 #, elixir-autogen, elixir-format
 msgid "Deconfirming users is not supported"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:358
+#: lib/graphql/resolvers/admin.ex:375
 #, elixir-autogen, elixir-format
 msgid "The new role must be different"
 msgstr "Nova uloga mora biti drugačija"
 
-#: lib/graphql/resolvers/admin.ex:309
+#: lib/graphql/resolvers/admin.ex:314
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in and an administrator to edit an user's details"
 msgstr ""
@@ -1137,28 +1132,28 @@ msgstr ""
 msgid "A profile or group with that name already exists"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:519
+#: lib/graphql/resolvers/admin.ex:542
 #, elixir-autogen, elixir-format
 msgid "Unable to find an instance to follow at this address"
 msgstr ""
 
-#: lib/mobilizon/actors/actor.ex:396
+#: lib/mobilizon/actors/actor.ex:397
 #, elixir-autogen, elixir-format
 msgid "Username must only contain alphanumeric lowercased characters and underscores."
 msgstr ""
 
 #: lib/graphql/resolvers/user.ex:303
-#: lib/graphql/resolvers/user.ex:326
+#: lib/graphql/resolvers/user.ex:333
 #, elixir-autogen, elixir-format, fuzzy
 msgid "This email doesn't seem to be valid"
 msgstr ""
 
-#: lib/graphql/resolvers/comment.ex:65
+#: lib/graphql/resolvers/comment.ex:59
 #, elixir-autogen, elixir-format
 msgid "This comment was detected as spam."
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:293
+#: lib/graphql/resolvers/event.ex:301
 #, elixir-autogen, elixir-format
 msgid "This event was detected as spam."
 msgstr ""
@@ -1179,7 +1174,7 @@ msgstr ""
 msgid "You need to be a moderator or an administrator to create a note on a report"
 msgstr ""
 
-#: lib/graphql/resolvers/person.ex:330
+#: lib/graphql/resolvers/person.ex:332
 #, elixir-autogen, elixir-format
 msgid "Your profile was detected as spam."
 msgstr ""
@@ -1189,7 +1184,7 @@ msgstr ""
 msgid "Your registration has been detected as spam and cannot be processed."
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:86
+#: lib/web/controllers/application_controller.ex:88
 #, elixir-autogen, elixir-format
 msgid "All of name, scope and redirect_uri parameters are required to create an application"
 msgstr ""
@@ -1204,171 +1199,227 @@ msgstr ""
 msgid "Application token not found"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:89
+#: lib/graphql/resolvers/application.ex:90
 #, elixir-autogen, elixir-format, fuzzy
 msgid "Error while revoking token"
 msgstr "Greška tijekom spremanja izvještaja"
 
-#: lib/web/controllers/application_controller.ex:59
+#: lib/web/controllers/application_controller.ex:61
 #, elixir-autogen, elixir-format
 msgid "Impossible to create application."
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:356
+#: lib/web/controllers/application_controller.ex:358
 #, elixir-autogen, elixir-format
 msgid "Incorrect parameters sent. You need to provide at least the grant_type and client_id parameters, depending on the grant type being used."
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:329
+#: lib/web/controllers/application_controller.ex:331
 #, elixir-autogen, elixir-format
 msgid "Invalid client credentials provided"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:337
+#: lib/web/controllers/application_controller.ex:339
 #, elixir-autogen, elixir-format
 msgid "Invalid refresh token provided"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:170
-#: lib/web/controllers/application_controller.ex:401
+#: lib/web/controllers/application_controller.ex:172
+#: lib/web/controllers/application_controller.ex:403
 #, elixir-autogen, elixir-format
 msgid "No application was found with this client_id"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:37
+#: lib/graphql/resolvers/application.ex:38
 #, elixir-autogen, elixir-format
 msgid "No application with this client_id was found"
 msgstr ""
 
-#: lib/graphql/authorization.ex:80
+#: lib/graphql/authorization.ex:81
 #, elixir-autogen, elixir-format
 msgid "Not authorized to access field %{field}"
 msgstr ""
 
-#: lib/graphql/authorization.ex:70
-#: lib/graphql/authorization.ex:75
+#: lib/graphql/authorization.ex:71
+#: lib/graphql/authorization.ex:76
 #, elixir-autogen, elixir-format
 msgid "Not authorized to access object %{object}"
 msgstr ""
 
-#: lib/graphql/authorization.ex:63
+#: lib/graphql/authorization.ex:64
 #, elixir-autogen, elixir-format
 msgid "Not authorized to access this %{object_type}"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:279
+#: lib/web/controllers/application_controller.ex:281
 #, elixir-autogen, elixir-format
 msgid "Please slow down the rate of your requests"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:267
+#: lib/web/controllers/application_controller.ex:269
 #, elixir-autogen, elixir-format
 msgid "The authorization request is still pending"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:249
+#: lib/web/controllers/application_controller.ex:251
 #, elixir-autogen, elixir-format
 msgid "The client_id provided or the device_code associated is invalid"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:133
+#: lib/graphql/resolvers/application.ex:139
 #, elixir-autogen, elixir-format
 msgid "The device user code was not provided before approving the application"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:304
+#: lib/web/controllers/application_controller.ex:306
 #, elixir-autogen, elixir-format
 msgid "The given device_code has expired"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:44
+#: lib/graphql/resolvers/application.ex:45
 #, elixir-autogen, elixir-format
 msgid "The given redirect_uri is not in the list of allowed redirect URIs"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:158
+#: lib/web/controllers/application_controller.ex:160
 #, elixir-autogen, elixir-format
 msgid "The given scope is not in the list of the app declared scopes"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:109
-#: lib/graphql/resolvers/application.ex:146
+#: lib/graphql/resolvers/application.ex:112
+#: lib/graphql/resolvers/application.ex:154
 #, elixir-autogen, elixir-format
 msgid "The given user code has expired"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:112
-#: lib/graphql/resolvers/application.ex:140
+#: lib/graphql/resolvers/application.ex:118
+#: lib/graphql/resolvers/application.ex:146
 #, elixir-autogen, elixir-format
 msgid "The given user code is invalid"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:411
+#: lib/web/controllers/application_controller.ex:413
 #, elixir-autogen, elixir-format
 msgid "The provided client_id does not match the provided code"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:414
+#: lib/web/controllers/application_controller.ex:416
 #, elixir-autogen, elixir-format
 msgid "The provided client_secret is invalid"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:407
+#: lib/web/controllers/application_controller.ex:409
 #, elixir-autogen, elixir-format
 msgid "The provided code is invalid or expired"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:418
+#: lib/web/controllers/application_controller.ex:420
 #, elixir-autogen, elixir-format
 msgid "The provided scope is invalid or not included in the app declared scopes"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:45
+#: lib/web/controllers/application_controller.ex:47
 #, elixir-autogen, elixir-format
 msgid "The scope parameter is not a space separated list of valid scopes"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:292
+#: lib/web/controllers/application_controller.ex:294
 #, elixir-autogen, elixir-format
 msgid "The user rejected the requested authorization"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:404
+#: lib/web/controllers/application_controller.ex:406
 #, elixir-autogen, elixir-format
 msgid "This redirect URI is not allowed"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:381
+#: lib/web/controllers/application_controller.ex:383
 #, elixir-autogen, elixir-format, fuzzy
 msgid "Token not found"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:72
+#: lib/web/controllers/application_controller.ex:74
 #, elixir-autogen, elixir-format
 msgid "Too many requests"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:184
+#: lib/web/controllers/application_controller.ex:186
 #, elixir-autogen, elixir-format
 msgid "Unable to produce device code"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:373
+#: lib/web/controllers/application_controller.ex:375
 #, elixir-autogen, elixir-format
 msgid "Unable to revoke token"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:198
+#: lib/web/controllers/application_controller.ex:200
 #, elixir-autogen, elixir-format
 msgid "You need to pass both client_id and scope as parameters to obtain a device code"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:136
+#: lib/web/controllers/application_controller.ex:138
 #, elixir-autogen, elixir-format
 msgid "You need to provide a valid redirect_uri to autorize an application"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:126
+#: lib/web/controllers/application_controller.ex:128
 #, elixir-autogen, elixir-format
 msgid "You need to specify client_id, redirect_uri, scope and state to autorize an application"
 msgstr ""
+
+#: lib/graphql/resolvers/user.ex:306
+#, elixir-autogen, elixir-format
+msgid "Couldn't send an email. Internal error."
+msgstr ""
+
+#: lib/graphql/resolvers/participant.ex:286
+#, elixir-autogen, elixir-format
+msgid "Participation is already confirmed"
+msgstr ""
+
+#: lib/graphql/resolvers/participant.ex:283
+#, elixir-autogen, elixir-format
+msgid "Participation is confirmed but not approved yet by an organizer"
+msgstr ""
+
+#: lib/graphql/resolvers/event.ex:287
+#: lib/graphql/resolvers/event.ex:376
+#, elixir-autogen, elixir-format
+msgid "Providing external registration is not allowed"
+msgstr ""
+
+#: lib/graphql/resolvers/push_subscription.ex:48
+#, elixir-autogen, elixir-format
+msgid "The same push subscription has already been registered"
+msgstr ""
+
+#: lib/graphql/resolvers/admin.ex:536
+#, elixir-autogen, elixir-format
+msgid "This instance is pending follow approval"
+msgstr ""
+
+#: lib/graphql/schema/custom/timezone.ex:23
+#, elixir-autogen, elixir-format
+msgid "Timezone ID %{timezone} is invalid"
+msgstr ""
+
+#: lib/graphql/resolvers/admin.ex:539
+#, elixir-autogen, elixir-format, fuzzy
+msgid "You are already following this instance"
+msgstr ""
+
+#: lib/graphql/resolvers/user.ex:310
+#, elixir-autogen, elixir-format, fuzzy
+msgid "You requested again a confirmation email too soon. Please try again in a few minutes"
+msgstr "Ponovo si zatražio/la potvrdni e-mail prerano"
+
+#: lib/graphql/resolvers/user.ex:341
+#, elixir-autogen, elixir-format
+msgid "You requested again a password reset email too soon. Please try again in a few minutes"
+msgstr ""
+
+#: lib/graphql/resolvers/user.ex:368
+#, elixir-autogen, elixir-format
+msgid "The token you provided is invalid. Make sure that the URL is exactly the one provided inside the email you got."
+msgstr ""
diff --git a/priv/gettext/hu/LC_MESSAGES/activity.po b/priv/gettext/hu/LC_MESSAGES/activity.po
index f8dd8fd15fea05672f490b90f67563e1aee322e7..034ec4f30f81facaa6438d10e85d3d2ecd5ecf41 100644
--- a/priv/gettext/hu/LC_MESSAGES/activity.po
+++ b/priv/gettext/hu/LC_MESSAGES/activity.po
@@ -496,3 +496,15 @@ msgstr ""
 #, elixir-autogen, elixir-format
 msgid "%{profile} approved the member %{member}."
 msgstr "%{profile} elfogadta %{member} tagot."
+
+#: lib/service/activity/renderer/event.ex:74
+#: lib/web/templates/email/activity/_event_activity_item.html.heex:55
+#: lib/web/templates/email/activity/_event_activity_item.text.eex:31
+#, elixir-autogen, elixir-format
+msgid "%{profile} joined your event %{event}."
+msgstr ""
+
+#: lib/web/views/email_view.ex:45
+#, elixir-autogen, elixir-format
+msgid "An anonymous profile"
+msgstr ""
diff --git a/priv/gettext/hu/LC_MESSAGES/default.po b/priv/gettext/hu/LC_MESSAGES/default.po
index 711949cf458c053368390bc39cd3075cc7adee64..209ac56f1b8565a898eca1a080199166e72acc3c 100644
--- a/priv/gettext/hu/LC_MESSAGES/default.po
+++ b/priv/gettext/hu/LC_MESSAGES/default.po
@@ -26,7 +26,7 @@ msgstr ""
 "addig nem fog megváltozni, amíg nem nyitja meg a lenti hivatkozást, és nem "
 "hoz létre egy újat."
 
-#: lib/web/templates/email/report.html.heex:120
+#: lib/web/templates/email/report.html.heex:121
 #, elixir-autogen, elixir-format
 msgid "%{title} by %{creator}"
 msgstr "%{title} – %{creator}"
@@ -42,23 +42,17 @@ msgstr "Saját fiók aktiválása"
 msgid "Ask the community on Framacolibri"
 msgstr "Kérdezze meg a közösséget a Framacolibrin"
 
-#: lib/web/templates/email/report.text.eex:15
+#: lib/web/templates/email/report.text.eex:17
 #, elixir-autogen, elixir-format
 msgid "Comments"
 msgstr "Hozzászólások"
 
-#: lib/web/templates/email/report.html.heex:115
-#: lib/web/templates/email/report.text.eex:11
-#, elixir-autogen, elixir-format
-msgid "Event"
-msgstr "Esemény"
-
 #: lib/web/email/user.ex:49
 #, elixir-autogen, elixir-format
 msgid "Instructions to reset your password on %{instance}"
 msgstr "Utasítások a(z) %{instance} példányon lévő jelszó visszaállításához"
 
-#: lib/web/templates/email/report.text.eex:21
+#: lib/web/templates/email/report.text.eex:23
 #, elixir-autogen, elixir-format
 msgid "Reason"
 msgstr "Ok"
@@ -355,12 +349,12 @@ msgctxt "terms"
 msgid "What information do we collect?"
 msgstr "Milyen információkat gyűjtünk?"
 
-#: lib/web/email/user.ex:182
+#: lib/web/email/user.ex:188
 #, elixir-autogen, elixir-format
 msgid "Mobilizon on %{instance}: confirm your email address"
 msgstr "Mobilizon a(z) %{instance} példányon: erősítse meg az e-mail-címét"
 
-#: lib/web/email/user.ex:159
+#: lib/web/email/user.ex:165
 #, elixir-autogen, elixir-format
 msgid "Mobilizon on %{instance}: email changed"
 msgstr "Mobilizon a(z) %{instance} példányon: e-mail-cím megváltoztatva"
@@ -879,7 +873,7 @@ msgstr "Befejezés"
 msgid "Event update!"
 msgstr "Eseményfrissítés!"
 
-#: lib/web/templates/email/report.html.heex:155
+#: lib/web/templates/email/report.html.heex:158
 #, elixir-autogen, elixir-format
 msgid "Flagged comments"
 msgstr "Megjelölt hozzászólások"
@@ -978,7 +972,7 @@ msgstr "Majdnem kész!"
 msgid "New email confirmation"
 msgstr "Új e-mail-cím megerősítése"
 
-#: lib/web/templates/email/report.html.heex:191
+#: lib/web/templates/email/report.html.heex:194
 #, elixir-autogen, elixir-format
 msgid "Reasons for report"
 msgstr "Jelentés okai"
@@ -1037,12 +1031,12 @@ msgstr "Sajnos a szervezők elutasították a kérését."
 msgid "Verify your email address"
 msgstr "E-mail-cím ellenőrzése"
 
-#: lib/web/templates/email/report.html.heex:232
+#: lib/web/templates/email/report.html.heex:235
 #, elixir-autogen, elixir-format
 msgid "View report"
 msgstr "Jelentés megtekintése"
 
-#: lib/web/templates/email/report.text.eex:24
+#: lib/web/templates/email/report.text.eex:26
 #, elixir-autogen, elixir-format
 msgid "View report:"
 msgstr "Jelentés megtekintése:"
@@ -1140,12 +1134,6 @@ msgstr ""
 msgid "As this group was located on another instance, it will continue to work for other instances than this one."
 msgstr ""
 
-#: lib/web/templates/email/group_suspension.html.heex:67
-#: lib/web/templates/email/group_suspension.text.eex:5
-#, elixir-autogen, elixir-format
-msgid "As this group was located on this instance, all of it's data has been irretrievably deleted."
-msgstr ""
-
 #: lib/web/templates/email/group_suspension.html.heex:18
 #: lib/web/templates/email/group_suspension.text.eex:1
 #, elixir-autogen, elixir-format
@@ -1157,7 +1145,7 @@ msgstr ""
 msgid "Your instance's moderation team has decided to suspend %{group_name} (%{group_address}). You are no longer a member of this group."
 msgstr ""
 
-#: lib/web/email/group.ex:107
+#: lib/web/email/group.ex:108
 #, elixir-autogen, elixir-format
 msgid "The group %{group} has been suspended on %{instance}"
 msgstr ""
@@ -1457,20 +1445,6 @@ msgstr ""
 msgid "Public feed for %{instance}"
 msgstr "A(z) %{instance} nyilvános hírfolyama"
 
-#: lib/graphql/resolvers/user.ex:350
-#, elixir-autogen, elixir-format
-msgid "The password you have choosen is too short. Please make sure your password contains at least 6 charaters."
-msgstr ""
-"A választott jelszó túl rövid. Győződjön meg arról, hogy a jelszava legalább "
-"6 karakteres legyen."
-
-#: lib/graphql/resolvers/user.ex:356
-#, elixir-autogen, elixir-format
-msgid "The token you provided is invalid. Make sure that the URL is exactly the one provided inside the email you got."
-msgstr ""
-"A megadott token érvénytelen. Győződjön meg róla, hogy a webcím pontosan az, "
-"amelyet az e-mailben megkapott."
-
 #: lib/web/email/actor.ex:43
 #, elixir-autogen, elixir-format
 msgid "Your participation to %{event} has been cancelled!"
@@ -1500,63 +1474,63 @@ msgid "Your participation to %{event} on %{instance} has been cancelled!"
 msgstr "A(z) %{instance} példány %{event} eseményén való részvételét lemondták."
 
 #. File name template for exported list of participants. Should NOT contain spaces. Make sure the output is going to be something standardized that is acceptable as a file name on most systems.
-#: lib/service/export/participants/csv.ex:81
+#: lib/service/export/participants/csv.ex:97
 #: lib/service/export/participants/ods.ex:86
 #: lib/service/export/participants/pdf.ex:96
 #, elixir-autogen, elixir-format
 msgid "%{event}_participants"
 msgstr "%{event}_resztvevoi"
 
-#: lib/service/export/participants/common.ex:61
+#: lib/service/export/participants/common.ex:66
 #, elixir-autogen, elixir-format
 msgid "Participant message"
 msgstr "Résztvevő üzenete"
 
-#: lib/service/export/participants/common.ex:61
+#: lib/service/export/participants/common.ex:63
 #, elixir-autogen, elixir-format
 msgid "Participant name"
 msgstr "Résztvevő neve"
 
-#: lib/service/export/participants/common.ex:61
+#: lib/service/export/participants/common.ex:64
 #, elixir-autogen, elixir-format
 msgid "Participant status"
 msgstr "Résztvevő állapota"
 
-#: lib/service/export/participants/common.ex:52
+#: lib/service/export/participants/common.ex:53
 #: lib/web/templates/email/admin/_role.html.heex:3
 #: lib/web/templates/email/admin/_role.text.eex:1
 #, elixir-autogen, elixir-format
 msgid "Administrator"
 msgstr "Adminisztrátor"
 
-#: lib/service/export/participants/common.ex:55
+#: lib/service/export/participants/common.ex:56
 #, elixir-autogen, elixir-format
 msgid "Creator"
 msgstr "Létrehozó"
 
-#: lib/service/export/participants/common.ex:49
+#: lib/service/export/participants/common.ex:50
 #: lib/web/templates/email/admin/_role.html.heex:5
 #: lib/web/templates/email/admin/_role.text.eex:1
 #, elixir-autogen, elixir-format
 msgid "Moderator"
 msgstr "Moderátor"
 
-#: lib/service/export/participants/common.ex:37
+#: lib/service/export/participants/common.ex:38
 #, elixir-autogen, elixir-format
 msgid "Not approved"
 msgstr "Nincs jóváhagyva"
 
-#: lib/service/export/participants/common.ex:40
+#: lib/service/export/participants/common.ex:41
 #, elixir-autogen, elixir-format
 msgid "Not confirmed"
 msgstr "Nincs megerősítve"
 
-#: lib/service/export/participants/common.ex:46
+#: lib/service/export/participants/common.ex:47
 #, elixir-autogen, elixir-format
 msgid "Participant"
 msgstr "Résztvevő"
 
-#: lib/service/export/participants/common.ex:43
+#: lib/service/export/participants/common.ex:44
 #, elixir-autogen, elixir-format
 msgid "Rejected"
 msgstr "Visszautasítva"
@@ -1581,7 +1555,7 @@ msgstr "Résztvevők száma"
 msgid "Participants for %{event}"
 msgstr "A(z) %{event} résztvevői"
 
-#: lib/service/export/participants/common.ex:88
+#: lib/service/export/participants/common.ex:95
 #, elixir-autogen, elixir-format
 msgid "Anonymous participant"
 msgstr "Névtelen részvétel"
@@ -1700,7 +1674,7 @@ msgstr "Részvétel:"
 msgid "Title: %{title}"
 msgstr "Cím: %{title}"
 
-#: lib/web/email/group.ex:46
+#: lib/web/email/group.ex:47
 #, elixir-autogen, elixir-format
 msgid "📅 Just scheduled by %{group}: %{event}"
 msgstr "📅 %{group} – esemény beütemezve: %{event}"
@@ -2152,3 +2126,24 @@ msgstr ""
 #, elixir-autogen, elixir-format
 msgid "Until next time!"
 msgstr "Viszontlátásra!"
+
+#: lib/web/templates/email/group_suspension.html.heex:67
+#: lib/web/templates/email/group_suspension.text.eex:5
+#, elixir-autogen, elixir-format, fuzzy
+msgid "As this group was located on this instance, all of its data has been irretrievably deleted."
+msgstr ""
+
+#: lib/web/templates/email/report.text.eex:11
+#, elixir-autogen, elixir-format, fuzzy
+msgid "Events"
+msgstr "Esemény"
+
+#: lib/web/templates/email/report.html.heex:115
+#, elixir-autogen, elixir-format, fuzzy
+msgid "Flagged events"
+msgstr "Megjelölt hozzászólások"
+
+#: lib/service/export/participants/common.ex:65
+#, elixir-autogen, elixir-format, fuzzy
+msgid "Participant registration date"
+msgstr "Résztvevő állapota"
diff --git a/priv/gettext/hu/LC_MESSAGES/errors.po b/priv/gettext/hu/LC_MESSAGES/errors.po
index 4b7c94bf4f0c43b21b8f2adf1ffa6e3c9bf036bd..e5b043bfc11f83c0ffb091087112761f2e097d04 100644
--- a/priv/gettext/hu/LC_MESSAGES/errors.po
+++ b/priv/gettext/hu/LC_MESSAGES/errors.po
@@ -126,7 +126,7 @@ msgstr "A jelenlegi profil nem tagja ennek a csoportnak"
 msgid "Current profile is not an administrator of the selected group"
 msgstr "A jelenlegi profil nem adminisztrátora a kijelölt csoportnak"
 
-#: lib/graphql/resolvers/user.ex:644
+#: lib/graphql/resolvers/user.ex:673
 #, elixir-autogen, elixir-format
 msgid "Error while saving user settings"
 msgstr "Hiba a felhasználói beállítások mentésekor"
@@ -169,8 +169,8 @@ msgstr "Nem található profil a moderátor felhasználóhoz"
 msgid "No user to validate with this email was found"
 msgstr "Nem található ezzel az e-mail-címmel ellenőrzendő felhasználó"
 
-#: lib/graphql/resolvers/person.ex:337
-#: lib/graphql/resolvers/user.ex:330
+#: lib/graphql/resolvers/person.ex:339
+#: lib/graphql/resolvers/user.ex:337
 #, elixir-autogen, elixir-format
 msgid "No user with this email was found"
 msgstr "Nem található ezzel az e-mail-címmel rendelkező felhasználó"
@@ -178,12 +178,12 @@ msgstr "Nem található ezzel az e-mail-címmel rendelkező felhasználó"
 #: lib/graphql/resolvers/feed_token.ex:28
 #: lib/graphql/resolvers/participant.ex:32
 #: lib/graphql/resolvers/participant.ex:210
-#: lib/graphql/resolvers/person.ex:245
-#: lib/graphql/resolvers/person.ex:376
-#: lib/graphql/resolvers/person.ex:412
-#: lib/graphql/resolvers/person.ex:419
-#: lib/graphql/resolvers/person.ex:448
-#: lib/graphql/resolvers/person.ex:463
+#: lib/graphql/resolvers/person.ex:247
+#: lib/graphql/resolvers/person.ex:378
+#: lib/graphql/resolvers/person.ex:414
+#: lib/graphql/resolvers/person.ex:421
+#: lib/graphql/resolvers/person.ex:450
+#: lib/graphql/resolvers/person.ex:465
 #, elixir-autogen, elixir-format
 msgid "Profile is not owned by authenticated user"
 msgstr "A profilt nem hitelesített felhasználó birtokolja"
@@ -193,43 +193,44 @@ msgstr "A profilt nem hitelesített felhasználó birtokolja"
 msgid "Registrations are not open"
 msgstr "A regisztrációk nincsenek nyitva"
 
-#: lib/graphql/resolvers/user.ex:461
+#: lib/graphql/resolvers/user.ex:474
 #, elixir-autogen, elixir-format
 msgid "The current password is invalid"
 msgstr "A jelenlegi jelszó érvénytelen"
 
-#: lib/graphql/resolvers/admin.ex:336
-#: lib/graphql/resolvers/user.ex:504
+#: lib/graphql/resolvers/admin.ex:334
+#: lib/graphql/resolvers/user.ex:527
 #, elixir-autogen, elixir-format
 msgid "The new email doesn't seem to be valid"
 msgstr "Az új e-mail-cím nem tűnik érvényesnek"
 
-#: lib/graphql/resolvers/admin.ex:339
-#: lib/graphql/resolvers/user.ex:507
+#: lib/graphql/resolvers/admin.ex:323
+#: lib/graphql/resolvers/user.ex:514
 #, elixir-autogen, elixir-format
 msgid "The new email must be different"
 msgstr "Az új e-mail-címnek eltérőnek kell lennie"
 
-#: lib/graphql/resolvers/user.ex:464
+#: lib/graphql/resolvers/user.ex:477
 #, elixir-autogen, elixir-format
 msgid "The new password must be different"
 msgstr "Az új jelszónak eltérőnek kell lennie"
 
-#: lib/graphql/resolvers/user.ex:511
-#: lib/graphql/resolvers/user.ex:573
-#: lib/graphql/resolvers/user.ex:576
+#: lib/graphql/resolvers/user.ex:518
+#: lib/graphql/resolvers/user.ex:602
+#: lib/graphql/resolvers/user.ex:605
 #, elixir-autogen, elixir-format
 msgid "The password provided is invalid"
 msgstr "A megadott jelszó érvénytelen"
 
-#: lib/graphql/resolvers/user.ex:468
+#: lib/graphql/resolvers/user.ex:361
+#: lib/graphql/resolvers/user.ex:481
 #, elixir-autogen, elixir-format
 msgid "The password you have chosen is too short. Please make sure your password contains at least 6 characters."
 msgstr ""
 "A választott jelszó túl rövid. Győződjön meg arról, hogy a jelszava "
 "tartalmazzon legalább 6 karaktert."
 
-#: lib/graphql/resolvers/user.ex:323
+#: lib/graphql/resolvers/user.ex:330
 #, elixir-autogen, elixir-format
 msgid "This user can't reset their password"
 msgstr "Ez a felhasználó nem tudja visszaállítani a jelszavát"
@@ -245,12 +246,12 @@ msgstr "Ez a felhasználó le lett tiltva"
 msgid "Unable to validate user"
 msgstr "Nem lehet ellenőrizni a felhasználót"
 
-#: lib/graphql/resolvers/user.ex:554
+#: lib/graphql/resolvers/user.ex:583
 #, elixir-autogen, elixir-format
 msgid "User already disabled"
 msgstr "A felhasználó már le van tiltva"
 
-#: lib/graphql/resolvers/user.ex:619
+#: lib/graphql/resolvers/user.ex:648
 #, elixir-autogen, elixir-format
 msgid "User requested is not logged-in"
 msgstr "A kért felhasználó nincs bejelentkezve"
@@ -275,12 +276,12 @@ msgstr "Nem csatlakozhat ehhez a csoporthoz"
 msgid "You may not list groups unless moderator."
 msgstr "Lehet, hogy nem sorolhatja fel a csoportokat, hacsak nem moderátor."
 
-#: lib/graphql/resolvers/user.ex:519
+#: lib/graphql/resolvers/user.ex:503
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to change your email"
 msgstr "Bejelentkezve kell lennie az e-mail-címe megváltoztatásához"
 
-#: lib/graphql/resolvers/user.ex:476
+#: lib/graphql/resolvers/user.ex:489
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to change your password"
 msgstr "Bejelentkezve kell lennie a jelszava megváltoztatásához"
@@ -290,7 +291,7 @@ msgstr "Bejelentkezve kell lennie a jelszava megváltoztatásához"
 msgid "You need to be logged-in to delete a group"
 msgstr "Bejelentkezve kell lennie egy csoport törléséhez"
 
-#: lib/graphql/resolvers/user.ex:581
+#: lib/graphql/resolvers/user.ex:610
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to delete your account"
 msgstr "Bejelentkezve kell lennie a fiókja törléséhez"
@@ -315,12 +316,6 @@ msgstr "Bejelentkezve kell lennie egy csoport frissítéséhez"
 msgid "You need to have an existing token to get a refresh token"
 msgstr "Szüksége van egy meglévő tokenre egy frissítési token beszerzéséhez"
 
-#: lib/graphql/resolvers/user.ex:306
-#: lib/graphql/resolvers/user.ex:333
-#, elixir-autogen, elixir-format
-msgid "You requested again a confirmation email too soon"
-msgstr "Túl hamar kért újra egy megerősítő e-mailt"
-
 #: lib/graphql/resolvers/user.ex:180
 #, elixir-autogen, elixir-format
 msgid "Your email is not on the allowlist"
@@ -375,17 +370,17 @@ msgstr "Érvényes e-mail-címet követelt meg az Ön példánya"
 msgid "Anonymous participation is not enabled"
 msgstr "A névtelen részvétel nincs engedélyezve"
 
-#: lib/graphql/resolvers/person.ex:219
+#: lib/graphql/resolvers/person.ex:221
 #, elixir-autogen, elixir-format
 msgid "Cannot remove the last administrator of a group"
 msgstr "Nem lehet eltávolítani egy csoport utolsó adminisztrátorát"
 
-#: lib/graphql/resolvers/person.ex:216
+#: lib/graphql/resolvers/person.ex:218
 #, elixir-autogen, elixir-format
 msgid "Cannot remove the last identity of a user"
 msgstr "Nem lehet eltávolítani egy felhasználó utolsó személyazonosságát"
 
-#: lib/graphql/resolvers/comment.ex:147
+#: lib/graphql/resolvers/comment.ex:153
 #, elixir-autogen, elixir-format
 msgid "Comment is already deleted"
 msgstr "A hozzászólást már törölték"
@@ -413,8 +408,8 @@ msgid "Event id not found"
 msgstr "Nem található az eseményazonosító"
 
 #: lib/graphql/error.ex:114
-#: lib/graphql/resolvers/event.ex:355
-#: lib/graphql/resolvers/event.ex:407
+#: lib/graphql/resolvers/event.ex:382
+#: lib/graphql/resolvers/event.ex:434
 #, elixir-autogen, elixir-format
 msgid "Event not found"
 msgstr "Nem található az esemény"
@@ -422,7 +417,7 @@ msgstr "Nem található az esemény"
 #: lib/graphql/resolvers/participant.ex:87
 #: lib/graphql/resolvers/participant.ex:128
 #: lib/graphql/resolvers/participant.ex:155
-#: lib/graphql/resolvers/participant.ex:336
+#: lib/graphql/resolvers/participant.ex:343
 #, elixir-autogen, elixir-format
 msgid "Event with this ID %{id} doesn't exist"
 msgstr "Ezzel a(z) %{id} azonosítóval rendelkező esemény nem létezik"
@@ -432,7 +427,7 @@ msgstr "Ezzel a(z) %{id} azonosítóval rendelkező esemény nem létezik"
 msgid "Internal Error"
 msgstr "Belső hiba"
 
-#: lib/graphql/resolvers/discussion.ex:219
+#: lib/graphql/resolvers/discussion.ex:222
 #, elixir-autogen, elixir-format
 msgid "No discussion with ID %{id}"
 msgstr "Nincs %{id} azonosítóval rendelkező megbeszélés"
@@ -499,10 +494,10 @@ msgstr "A profil már tagja ennek a csoportnak"
 #: lib/graphql/resolvers/post.ex:133
 #: lib/graphql/resolvers/post.ex:175
 #: lib/graphql/resolvers/post.ex:209
-#: lib/graphql/resolvers/resource.ex:90
-#: lib/graphql/resolvers/resource.ex:135
-#: lib/graphql/resolvers/resource.ex:168
-#: lib/graphql/resolvers/resource.ex:202
+#: lib/graphql/resolvers/resource.ex:92
+#: lib/graphql/resolvers/resource.ex:137
+#: lib/graphql/resolvers/resource.ex:170
+#: lib/graphql/resolvers/resource.ex:204
 #: lib/graphql/resolvers/todos.ex:58
 #: lib/graphql/resolvers/todos.ex:83
 #: lib/graphql/resolvers/todos.ex:110
@@ -514,7 +509,7 @@ msgid "Profile is not member of group"
 msgstr "A profil nem tagja a csoportnak"
 
 #: lib/graphql/resolvers/actor.ex:67
-#: lib/graphql/resolvers/person.ex:242
+#: lib/graphql/resolvers/person.ex:244
 #, elixir-autogen, elixir-format
 msgid "Profile not found"
 msgstr "Nem található a profil"
@@ -524,8 +519,8 @@ msgstr "Nem található a profil"
 msgid "Report not found"
 msgstr "Nem található a jelentés"
 
-#: lib/graphql/resolvers/resource.ex:172
-#: lib/graphql/resolvers/resource.ex:199
+#: lib/graphql/resolvers/resource.ex:174
+#: lib/graphql/resolvers/resource.ex:201
 #, elixir-autogen, elixir-format
 msgid "Resource doesn't exist"
 msgstr "Az erőforrás nem létezik"
@@ -535,7 +530,7 @@ msgstr "Az erőforrás nem létezik"
 msgid "The event has already reached its maximum capacity"
 msgstr "Az esemény már elérte a legnagyobb kapacitását"
 
-#: lib/graphql/resolvers/participant.ex:282
+#: lib/graphql/resolvers/participant.ex:289
 #, elixir-autogen, elixir-format
 msgid "This token is invalid"
 msgstr "Ez a token érvénytelen"
@@ -569,7 +564,7 @@ msgstr "A token nem érvényes UUID"
 msgid "User not found"
 msgstr "Nem található a felhasználó"
 
-#: lib/graphql/resolvers/person.ex:333
+#: lib/graphql/resolvers/person.ex:335
 #, elixir-autogen, elixir-format
 msgid "You already have a profile for this user"
 msgstr "Már rendelkezik profillal ehhez a felhasználóhoz"
@@ -591,7 +586,7 @@ msgstr "Nem tagja ennek a csoportnak"
 msgid "You are not a moderator or admin for this group"
 msgstr "Nem moderátor vagy adminisztrátor ennél a csoportnál"
 
-#: lib/graphql/resolvers/comment.ex:80
+#: lib/graphql/resolvers/comment.ex:74
 #, elixir-autogen, elixir-format
 msgid "You are not allowed to create a comment if not connected"
 msgstr "Nem hozhat létre hozzászólást, ha nincs kapcsolódva"
@@ -601,7 +596,7 @@ msgstr "Nem hozhat létre hozzászólást, ha nincs kapcsolódva"
 msgid "You are not allowed to create a feed token if not connected"
 msgstr "Nem hozhat létre hírforrástokent, ha nincs kapcsolódva"
 
-#: lib/graphql/resolvers/comment.ex:155
+#: lib/graphql/resolvers/comment.ex:161
 #, elixir-autogen, elixir-format
 msgid "You are not allowed to delete a comment if not connected"
 msgstr "Nem törölhet hozzászólást, ha nincs kapcsolódva"
@@ -611,7 +606,7 @@ msgstr "Nem törölhet hozzászólást, ha nincs kapcsolódva"
 msgid "You are not allowed to delete a feed token if not connected"
 msgstr "Nem törölhet hírforrástokent, ha nincs kapcsolódva"
 
-#: lib/graphql/resolvers/comment.ex:114
+#: lib/graphql/resolvers/comment.ex:120
 #, elixir-autogen, elixir-format
 msgid "You are not allowed to update a comment if not connected"
 msgstr "Nem frissíthet hozzászólást, ha nincs kapcsolódva"
@@ -630,12 +625,12 @@ msgstr ""
 "Nem állíthatja magát alacsonyabb tagszerepre ennél a csoportnál, mert Ön az "
 "egyedüli adminisztrátor"
 
-#: lib/graphql/resolvers/comment.ex:143
+#: lib/graphql/resolvers/comment.ex:149
 #, elixir-autogen, elixir-format
 msgid "You cannot delete this comment"
 msgstr "Nem tudja törölni ezt a hozzászólást"
 
-#: lib/graphql/resolvers/event.ex:403
+#: lib/graphql/resolvers/event.ex:430
 #, elixir-autogen, elixir-format
 msgid "You cannot delete this event"
 msgstr "Nem tudja törölni ezt az eseményt"
@@ -678,21 +673,21 @@ msgstr ""
 "Bejelentkezve kell lennie és moderátornak kell lennie egy jelentés "
 "megtekintéséhez"
 
-#: lib/graphql/resolvers/admin.ex:252
+#: lib/graphql/resolvers/admin.ex:258
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in and an administrator to access admin settings"
 msgstr ""
 "Bejelentkezve kell lennie és adminisztrátornak kell lennie az "
 "adminisztrátori beállításokhoz való hozzáféréshez"
 
-#: lib/graphql/resolvers/admin.ex:236
+#: lib/graphql/resolvers/admin.ex:242
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in and an administrator to access dashboard statistics"
 msgstr ""
 "Bejelentkezve kell lennie és adminisztrátornak kell lennie a vezérlőpulti "
 "statisztikákhoz való hozzáféréshez"
 
-#: lib/graphql/resolvers/admin.ex:278
+#: lib/graphql/resolvers/admin.ex:283
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in and an administrator to save admin settings"
 msgstr ""
@@ -704,12 +699,12 @@ msgstr ""
 msgid "You need to be logged-in to access discussions"
 msgstr "Bejelentkezve kell lennie a megbeszélésekhez való hozzáféréshez"
 
-#: lib/graphql/resolvers/resource.ex:96
+#: lib/graphql/resolvers/resource.ex:98
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to access resources"
 msgstr "Bejelentkezve kell lennie az erőforrásokhoz való hozzáféréshez"
 
-#: lib/graphql/resolvers/event.ex:313
+#: lib/graphql/resolvers/event.ex:321
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to create events"
 msgstr "Bejelentkezve kell lennie az események létrehozásához"
@@ -724,12 +719,12 @@ msgstr "Bejelentkezve kell lennie a bejegyzések létrehozásához"
 msgid "You need to be logged-in to create reports"
 msgstr "Bejelentkezve kell lennie a jelentések létrehozásához"
 
-#: lib/graphql/resolvers/resource.ex:140
+#: lib/graphql/resolvers/resource.ex:142
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to create resources"
 msgstr "Bejelentkezve kell lennie az erőforrások létrehozásához"
 
-#: lib/graphql/resolvers/event.ex:412
+#: lib/graphql/resolvers/event.ex:439
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to delete an event"
 msgstr "Bejelentkezve kell lennie egy esemény törléséhez"
@@ -739,7 +734,7 @@ msgstr "Bejelentkezve kell lennie egy esemény törléséhez"
 msgid "You need to be logged-in to delete posts"
 msgstr "Bejelentkezve kell lennie a bejegyzések törléséhez"
 
-#: lib/graphql/resolvers/resource.ex:207
+#: lib/graphql/resolvers/resource.ex:209
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to delete resources"
 msgstr "Bejelentkezve kell lennie az erőforrások törléséhez"
@@ -754,7 +749,7 @@ msgstr "Bejelentkezve kell lennie egy eseményhez való csatlakozáshoz"
 msgid "You need to be logged-in to leave an event"
 msgstr "Bejelentkezve kell lennie egy esemény elhagyásához"
 
-#: lib/graphql/resolvers/event.ex:369
+#: lib/graphql/resolvers/event.ex:396
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to update an event"
 msgstr "Bejelentkezve kell lennie egy esemény frissítéséhez"
@@ -764,17 +759,17 @@ msgstr "Bejelentkezve kell lennie egy esemény frissítéséhez"
 msgid "You need to be logged-in to update posts"
 msgstr "Bejelentkezve kell lennie a bejegyzések frissítéséhez"
 
-#: lib/graphql/resolvers/resource.ex:177
+#: lib/graphql/resolvers/resource.ex:179
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to update resources"
 msgstr "Bejelentkezve kell lennie az erőforrások frissítéséhez"
 
-#: lib/graphql/resolvers/resource.ex:236
+#: lib/graphql/resolvers/resource.ex:233
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to view a resource preview"
 msgstr "Bejelentkezve kell lennie egy erőforrás előnézetének megtekintéséhez"
 
-#: lib/graphql/resolvers/resource.ex:132
+#: lib/graphql/resolvers/resource.ex:134
 #, elixir-autogen, elixir-format
 msgid "Parent resource doesn't belong to this group"
 msgstr "A szülőerőforrás nem tartozik ehhez a csoporthoz"
@@ -861,12 +856,12 @@ msgstr "A fájl nem rendelkezik engedélyezett MIME-típussal."
 msgid "Profile is not administrator for the group"
 msgstr "A profil nem adminisztrátor ennél a csoportnál"
 
-#: lib/graphql/resolvers/event.ex:358
+#: lib/graphql/resolvers/event.ex:385
 #, elixir-autogen, elixir-format
 msgid "You can't edit this event."
 msgstr "Nem tudja szerkeszteni ezt az eseményt."
 
-#: lib/graphql/resolvers/event.ex:361
+#: lib/graphql/resolvers/event.ex:388
 #, elixir-autogen, elixir-format
 msgid "You can't attribute this event to this profile."
 msgstr "Nem tudja ezt az eseményt ennek a profilnak tulajdonítani."
@@ -886,7 +881,7 @@ msgstr "Ez a tag már vissza lett utasítva."
 msgid "You don't have the right to remove this member."
 msgstr "Nincs meg a jogosultsága a tag eltávolításához."
 
-#: lib/mobilizon/actors/actor.ex:377
+#: lib/mobilizon/actors/actor.ex:378
 #, elixir-autogen, elixir-format
 msgid "This username is already taken."
 msgstr "Ez a felhasználónév már foglalt."
@@ -898,7 +893,7 @@ msgstr ""
 "Meg kell adnia vagy egy azonosítót, vagy egy keresőbarát URL-t egy "
 "megbeszéléshez való hozzáféréshez"
 
-#: lib/graphql/resolvers/event.ex:275
+#: lib/graphql/resolvers/event.ex:276
 #, elixir-autogen, elixir-format
 msgid "Organizer profile is not owned by the user"
 msgstr "A szervező profilját nem a felhasználó birtokolja"
@@ -910,44 +905,44 @@ msgstr "A megadott profilazonosító nem a névtelen profil"
 
 #: lib/graphql/resolvers/group.ex:181
 #: lib/graphql/resolvers/group.ex:223
-#: lib/graphql/resolvers/person.ex:157
-#: lib/graphql/resolvers/person.ex:191
-#: lib/graphql/resolvers/person.ex:324
+#: lib/graphql/resolvers/person.ex:159
+#: lib/graphql/resolvers/person.ex:193
+#: lib/graphql/resolvers/person.ex:326
 #, elixir-autogen, elixir-format
 msgid "The provided picture is too heavy"
 msgstr "A megadott fénykép túl nehéz"
 
-#: lib/graphql/resolvers/resource.ex:129
+#: lib/graphql/resolvers/resource.ex:131
 #, elixir-autogen, elixir-format
 msgid "Error while creating resource"
 msgstr "Hiba az erőforrás létrehozáskor"
 
-#: lib/graphql/resolvers/user.ex:537
+#: lib/graphql/resolvers/user.ex:566
 #, elixir-autogen, elixir-format
 msgid "Invalid activation token"
 msgstr "Érvénytelen aktiválási token"
 
-#: lib/graphql/resolvers/resource.ex:226
+#: lib/graphql/resolvers/resource.ex:228
 #, elixir-autogen, elixir-format
 msgid "Unable to fetch resource details from this URL."
 msgstr "Nem lehet lekérni az erőforrás részleteit erről az URL-ről."
 
 #: lib/graphql/resolvers/event.ex:165
 #: lib/graphql/resolvers/participant.ex:253
-#: lib/graphql/resolvers/participant.ex:328
+#: lib/graphql/resolvers/participant.ex:335
 #, elixir-autogen, elixir-format
 msgid "Provided profile doesn't have moderator permissions on this event"
 msgstr ""
 "A megadott profilnak nincsenek moderátor jogosultságai ezen az eseményen"
 
-#: lib/graphql/resolvers/event.ex:286
+#: lib/graphql/resolvers/event.ex:294
 #, elixir-autogen, elixir-format
 msgid "Organizer profile doesn't have permission to create an event on behalf of this group"
 msgstr ""
 "A szervező profiljának nincs jogosultsága eseményt létrehozni ennek a "
 "csoportnak a nevében"
 
-#: lib/graphql/resolvers/event.ex:349
+#: lib/graphql/resolvers/event.ex:369
 #, elixir-autogen, elixir-format
 msgid "This profile doesn't have permission to update an event on behalf of this group"
 msgstr ""
@@ -961,7 +956,7 @@ msgstr ""
 "Az e-mail-címe meg lett tagadva a regisztrációhoz vagy nem engedélyezett e"
 "-mail-szolgáltatót használ"
 
-#: lib/graphql/resolvers/comment.ex:150
+#: lib/graphql/resolvers/comment.ex:156
 #, elixir-autogen, elixir-format
 msgid "Comment not found"
 msgstr "A hozzászólás nem található"
@@ -971,12 +966,12 @@ msgstr "A hozzászólás nem található"
 msgid "Error while creating a discussion"
 msgstr "Hiba egy megbeszélés létrehozásakor"
 
-#: lib/graphql/resolvers/user.ex:658
+#: lib/graphql/resolvers/user.ex:687
 #, elixir-autogen, elixir-format
 msgid "Error while updating locale"
 msgstr "Hiba a területi beállítások frissítésekor"
 
-#: lib/graphql/resolvers/person.ex:327
+#: lib/graphql/resolvers/person.ex:329
 #, elixir-autogen, elixir-format
 msgid "Error while uploading pictures"
 msgstr "Hiba a képek feltöltésekor"
@@ -991,13 +986,13 @@ msgstr "Nem sikerült elhagyni az eseményt"
 msgid "Failed to update the group"
 msgstr "Nem sikerült frissíteni a csoportot"
 
-#: lib/graphql/resolvers/admin.ex:333
-#: lib/graphql/resolvers/user.ex:501
+#: lib/graphql/resolvers/admin.ex:357
+#: lib/graphql/resolvers/user.ex:547
 #, elixir-autogen, elixir-format
 msgid "Failed to update user email"
 msgstr "Nem sikerült frissíteni a felhasználó e-mail-címét"
 
-#: lib/graphql/resolvers/user.ex:533
+#: lib/graphql/resolvers/user.ex:562
 #, elixir-autogen, elixir-format
 msgid "Failed to validate user email"
 msgstr "Nem sikerült ellenőrizni a felhasználó e-mail-címét"
@@ -1007,39 +1002,39 @@ msgstr "Nem sikerült ellenőrizni a felhasználó e-mail-címét"
 msgid "The anonymous actor ID is invalid"
 msgstr "A névtelen szereplő azonosítója érvénytelen"
 
-#: lib/graphql/resolvers/resource.ex:165
+#: lib/graphql/resolvers/resource.ex:167
 #, elixir-autogen, elixir-format
 msgid "Unknown error while updating resource"
 msgstr "Ismeretlen hiba az erőforrás frissítésekor"
 
-#: lib/graphql/resolvers/comment.ex:105
+#: lib/graphql/resolvers/comment.ex:111
 #, elixir-autogen, elixir-format
 msgid "You are not the comment creator"
 msgstr "Ön nem a hozzászólás létrehozója"
 
-#: lib/graphql/resolvers/user.ex:458
+#: lib/graphql/resolvers/user.ex:471
 #, elixir-autogen, elixir-format
 msgid "You cannot change your password."
 msgstr "Nem tudja megváltoztatni a jelszavát."
 
-#: lib/graphql/resolvers/participant.ex:321
+#: lib/graphql/resolvers/participant.ex:328
 #, elixir-autogen, elixir-format
 msgid "Format not supported"
 msgstr "A formátum nem támogatott"
 
-#: lib/graphql/resolvers/participant.ex:305
+#: lib/graphql/resolvers/participant.ex:312
 #, elixir-autogen, elixir-format
 msgid "A dependency needed to export to %{format} is not installed"
 msgstr ""
 "A(z) %{format} formátumba történő exportáláshoz szükséges egyik függőség "
 "nincs telepítve"
 
-#: lib/graphql/resolvers/participant.ex:313
+#: lib/graphql/resolvers/participant.ex:320
 #, elixir-autogen, elixir-format
 msgid "An error occured while saving export"
 msgstr "Hiba történt az exportálás mentésekor"
 
-#: lib/web/controllers/export_controller.ex:30
+#: lib/web/controllers/export_controller.ex:32
 #, elixir-autogen, elixir-format
 msgid "Export to format %{format} is not enabled on this instance"
 msgstr ""
@@ -1051,17 +1046,17 @@ msgstr ""
 msgid "Only admins can create groups"
 msgstr "Csak adminisztrátorok hozhatnak létre csoportokat"
 
-#: lib/graphql/resolvers/event.ex:279
+#: lib/graphql/resolvers/event.ex:280
 #, elixir-autogen, elixir-format
 msgid "Only groups can create events"
 msgstr "Csak csoportok hozhatnak létre eseményeket"
 
-#: lib/graphql/resolvers/event.ex:305
+#: lib/graphql/resolvers/event.ex:313
 #, elixir-autogen, elixir-format
 msgid "Unknown error while creating event"
 msgstr "Ismeretlen hiba az esemény létrehozásakor"
 
-#: lib/graphql/resolvers/user.ex:514
+#: lib/graphql/resolvers/user.ex:498
 #, elixir-autogen, elixir-format
 msgid "User cannot change email"
 msgstr "A felhasználó nem tudja megváltoztatni az e-mail-címét"
@@ -1076,12 +1071,12 @@ msgstr "A követés nem egyezik az Ön fiókjával"
 msgid "Follow not found"
 msgstr "A követés nem található"
 
-#: lib/graphql/resolvers/user.ex:379
+#: lib/graphql/resolvers/user.ex:392
 #, elixir-autogen, elixir-format
 msgid "Profile with username %{username} not found"
 msgstr "Nem található %{username} felhasználónévvel rendelkező profil"
 
-#: lib/graphql/resolvers/user.ex:374
+#: lib/graphql/resolvers/user.ex:387
 #, elixir-autogen, elixir-format
 msgid "This profile does not belong to you"
 msgstr "Ez a profil nem Önhöz tartozik"
@@ -1126,22 +1121,22 @@ msgstr "Bejelentkezve kell lennie egy tag eltávolításához"
 msgid "Your email seems to be using an invalid format"
 msgstr "Úgy tűnik, hogy az e-mail-címe érvénytelen formátumot használ"
 
-#: lib/graphql/resolvers/admin.ex:382
+#: lib/graphql/resolvers/admin.ex:399
 #, elixir-autogen, elixir-format
 msgid "Can't confirm an already confirmed user"
 msgstr "A már megerősített felhasználó nem erősíthető meg"
 
-#: lib/graphql/resolvers/admin.ex:386
+#: lib/graphql/resolvers/admin.ex:403
 #, elixir-autogen, elixir-format
 msgid "Deconfirming users is not supported"
 msgstr "A felhasználók megerősítésének visszavonása nem támogatott"
 
-#: lib/graphql/resolvers/admin.ex:358
+#: lib/graphql/resolvers/admin.ex:375
 #, elixir-autogen, elixir-format
 msgid "The new role must be different"
 msgstr "Az új szerepnek eltérőnek kell lennie"
 
-#: lib/graphql/resolvers/admin.ex:309
+#: lib/graphql/resolvers/admin.ex:314
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in and an administrator to edit an user's details"
 msgstr ""
@@ -1153,12 +1148,12 @@ msgstr ""
 msgid "A profile or group with that name already exists"
 msgstr "Már létezik ilyen nevű profil vagy csoport"
 
-#: lib/graphql/resolvers/admin.ex:519
+#: lib/graphql/resolvers/admin.ex:542
 #, elixir-autogen, elixir-format
 msgid "Unable to find an instance to follow at this address"
 msgstr "Nem található követhető példány ezen a címen"
 
-#: lib/mobilizon/actors/actor.ex:396
+#: lib/mobilizon/actors/actor.ex:397
 #, elixir-autogen, elixir-format
 msgid "Username must only contain alphanumeric lowercased characters and underscores."
 msgstr ""
@@ -1166,17 +1161,17 @@ msgstr ""
 "tartalmazhat."
 
 #: lib/graphql/resolvers/user.ex:303
-#: lib/graphql/resolvers/user.ex:326
+#: lib/graphql/resolvers/user.ex:333
 #, elixir-autogen, elixir-format
 msgid "This email doesn't seem to be valid"
 msgstr "Ez az e-mail-cím nem tűnik érvényesnek"
 
-#: lib/graphql/resolvers/comment.ex:65
+#: lib/graphql/resolvers/comment.ex:59
 #, elixir-autogen, elixir-format
 msgid "This comment was detected as spam."
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:293
+#: lib/graphql/resolvers/event.ex:301
 #, elixir-autogen, elixir-format
 msgid "This event was detected as spam."
 msgstr ""
@@ -1197,7 +1192,7 @@ msgstr ""
 msgid "You need to be a moderator or an administrator to create a note on a report"
 msgstr ""
 
-#: lib/graphql/resolvers/person.ex:330
+#: lib/graphql/resolvers/person.ex:332
 #, elixir-autogen, elixir-format
 msgid "Your profile was detected as spam."
 msgstr ""
@@ -1207,7 +1202,7 @@ msgstr ""
 msgid "Your registration has been detected as spam and cannot be processed."
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:86
+#: lib/web/controllers/application_controller.ex:88
 #, elixir-autogen, elixir-format
 msgid "All of name, scope and redirect_uri parameters are required to create an application"
 msgstr ""
@@ -1222,171 +1217,227 @@ msgstr ""
 msgid "Application token not found"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:89
+#: lib/graphql/resolvers/application.ex:90
 #, elixir-autogen, elixir-format, fuzzy
 msgid "Error while revoking token"
 msgstr "Hiba a jelentés mentésekor"
 
-#: lib/web/controllers/application_controller.ex:59
+#: lib/web/controllers/application_controller.ex:61
 #, elixir-autogen, elixir-format
 msgid "Impossible to create application."
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:356
+#: lib/web/controllers/application_controller.ex:358
 #, elixir-autogen, elixir-format
 msgid "Incorrect parameters sent. You need to provide at least the grant_type and client_id parameters, depending on the grant type being used."
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:329
+#: lib/web/controllers/application_controller.ex:331
 #, elixir-autogen, elixir-format
 msgid "Invalid client credentials provided"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:337
+#: lib/web/controllers/application_controller.ex:339
 #, elixir-autogen, elixir-format
 msgid "Invalid refresh token provided"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:170
-#: lib/web/controllers/application_controller.ex:401
+#: lib/web/controllers/application_controller.ex:172
+#: lib/web/controllers/application_controller.ex:403
 #, elixir-autogen, elixir-format
 msgid "No application was found with this client_id"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:37
+#: lib/graphql/resolvers/application.ex:38
 #, elixir-autogen, elixir-format
 msgid "No application with this client_id was found"
 msgstr ""
 
-#: lib/graphql/authorization.ex:80
+#: lib/graphql/authorization.ex:81
 #, elixir-autogen, elixir-format
 msgid "Not authorized to access field %{field}"
 msgstr ""
 
-#: lib/graphql/authorization.ex:70
-#: lib/graphql/authorization.ex:75
+#: lib/graphql/authorization.ex:71
+#: lib/graphql/authorization.ex:76
 #, elixir-autogen, elixir-format
 msgid "Not authorized to access object %{object}"
 msgstr ""
 
-#: lib/graphql/authorization.ex:63
+#: lib/graphql/authorization.ex:64
 #, elixir-autogen, elixir-format
 msgid "Not authorized to access this %{object_type}"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:279
+#: lib/web/controllers/application_controller.ex:281
 #, elixir-autogen, elixir-format
 msgid "Please slow down the rate of your requests"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:267
+#: lib/web/controllers/application_controller.ex:269
 #, elixir-autogen, elixir-format
 msgid "The authorization request is still pending"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:249
+#: lib/web/controllers/application_controller.ex:251
 #, elixir-autogen, elixir-format
 msgid "The client_id provided or the device_code associated is invalid"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:133
+#: lib/graphql/resolvers/application.ex:139
 #, elixir-autogen, elixir-format
 msgid "The device user code was not provided before approving the application"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:304
+#: lib/web/controllers/application_controller.ex:306
 #, elixir-autogen, elixir-format
 msgid "The given device_code has expired"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:44
+#: lib/graphql/resolvers/application.ex:45
 #, elixir-autogen, elixir-format
 msgid "The given redirect_uri is not in the list of allowed redirect URIs"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:158
+#: lib/web/controllers/application_controller.ex:160
 #, elixir-autogen, elixir-format
 msgid "The given scope is not in the list of the app declared scopes"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:109
-#: lib/graphql/resolvers/application.ex:146
+#: lib/graphql/resolvers/application.ex:112
+#: lib/graphql/resolvers/application.ex:154
 #, elixir-autogen, elixir-format
 msgid "The given user code has expired"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:112
-#: lib/graphql/resolvers/application.ex:140
+#: lib/graphql/resolvers/application.ex:118
+#: lib/graphql/resolvers/application.ex:146
 #, elixir-autogen, elixir-format
 msgid "The given user code is invalid"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:411
+#: lib/web/controllers/application_controller.ex:413
 #, elixir-autogen, elixir-format
 msgid "The provided client_id does not match the provided code"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:414
+#: lib/web/controllers/application_controller.ex:416
 #, elixir-autogen, elixir-format
 msgid "The provided client_secret is invalid"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:407
+#: lib/web/controllers/application_controller.ex:409
 #, elixir-autogen, elixir-format
 msgid "The provided code is invalid or expired"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:418
+#: lib/web/controllers/application_controller.ex:420
 #, elixir-autogen, elixir-format
 msgid "The provided scope is invalid or not included in the app declared scopes"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:45
+#: lib/web/controllers/application_controller.ex:47
 #, elixir-autogen, elixir-format
 msgid "The scope parameter is not a space separated list of valid scopes"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:292
+#: lib/web/controllers/application_controller.ex:294
 #, elixir-autogen, elixir-format
 msgid "The user rejected the requested authorization"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:404
+#: lib/web/controllers/application_controller.ex:406
 #, elixir-autogen, elixir-format
 msgid "This redirect URI is not allowed"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:381
+#: lib/web/controllers/application_controller.ex:383
 #, elixir-autogen, elixir-format, fuzzy
 msgid "Token not found"
 msgstr "A hozzászólás nem található"
 
-#: lib/web/controllers/application_controller.ex:72
+#: lib/web/controllers/application_controller.ex:74
 #, elixir-autogen, elixir-format
 msgid "Too many requests"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:184
+#: lib/web/controllers/application_controller.ex:186
 #, elixir-autogen, elixir-format
 msgid "Unable to produce device code"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:373
+#: lib/web/controllers/application_controller.ex:375
 #, elixir-autogen, elixir-format
 msgid "Unable to revoke token"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:198
+#: lib/web/controllers/application_controller.ex:200
 #, elixir-autogen, elixir-format
 msgid "You need to pass both client_id and scope as parameters to obtain a device code"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:136
+#: lib/web/controllers/application_controller.ex:138
 #, elixir-autogen, elixir-format
 msgid "You need to provide a valid redirect_uri to autorize an application"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:126
+#: lib/web/controllers/application_controller.ex:128
 #, elixir-autogen, elixir-format
 msgid "You need to specify client_id, redirect_uri, scope and state to autorize an application"
 msgstr ""
+
+#: lib/graphql/resolvers/user.ex:306
+#, elixir-autogen, elixir-format
+msgid "Couldn't send an email. Internal error."
+msgstr ""
+
+#: lib/graphql/resolvers/participant.ex:286
+#, elixir-autogen, elixir-format
+msgid "Participation is already confirmed"
+msgstr ""
+
+#: lib/graphql/resolvers/participant.ex:283
+#, elixir-autogen, elixir-format
+msgid "Participation is confirmed but not approved yet by an organizer"
+msgstr ""
+
+#: lib/graphql/resolvers/event.ex:287
+#: lib/graphql/resolvers/event.ex:376
+#, elixir-autogen, elixir-format
+msgid "Providing external registration is not allowed"
+msgstr ""
+
+#: lib/graphql/resolvers/push_subscription.ex:48
+#, elixir-autogen, elixir-format
+msgid "The same push subscription has already been registered"
+msgstr ""
+
+#: lib/graphql/resolvers/admin.ex:536
+#, elixir-autogen, elixir-format
+msgid "This instance is pending follow approval"
+msgstr ""
+
+#: lib/graphql/schema/custom/timezone.ex:23
+#, elixir-autogen, elixir-format
+msgid "Timezone ID %{timezone} is invalid"
+msgstr ""
+
+#: lib/graphql/resolvers/admin.ex:539
+#, elixir-autogen, elixir-format, fuzzy
+msgid "You are already following this instance"
+msgstr "Már követi ezt a csoportot"
+
+#: lib/graphql/resolvers/user.ex:310
+#, elixir-autogen, elixir-format, fuzzy
+msgid "You requested again a confirmation email too soon. Please try again in a few minutes"
+msgstr "Túl hamar kért újra egy megerősítő e-mailt"
+
+#: lib/graphql/resolvers/user.ex:341
+#, elixir-autogen, elixir-format
+msgid "You requested again a password reset email too soon. Please try again in a few minutes"
+msgstr ""
+
+#: lib/graphql/resolvers/user.ex:368
+#, elixir-autogen, elixir-format
+msgid "The token you provided is invalid. Make sure that the URL is exactly the one provided inside the email you got."
+msgstr ""
diff --git a/priv/gettext/id/LC_MESSAGES/activity.po b/priv/gettext/id/LC_MESSAGES/activity.po
index 99e3941f86a8d63a8c62ce68ed4e2455c78f164c..3911ae2ab77f063614cf031071b659af62d762c6 100644
--- a/priv/gettext/id/LC_MESSAGES/activity.po
+++ b/priv/gettext/id/LC_MESSAGES/activity.po
@@ -473,3 +473,15 @@ msgstr ""
 #, elixir-autogen, elixir-format, fuzzy
 msgid "%{profile} approved the member %{member}."
 msgstr "%{profile} menambahkan anggota %{member}."
+
+#: lib/service/activity/renderer/event.ex:74
+#: lib/web/templates/email/activity/_event_activity_item.html.heex:55
+#: lib/web/templates/email/activity/_event_activity_item.text.eex:31
+#, elixir-autogen, elixir-format
+msgid "%{profile} joined your event %{event}."
+msgstr ""
+
+#: lib/web/views/email_view.ex:45
+#, elixir-autogen, elixir-format
+msgid "An anonymous profile"
+msgstr ""
diff --git a/priv/gettext/id/LC_MESSAGES/default.po b/priv/gettext/id/LC_MESSAGES/default.po
index bc90d819c9ebbc4968291ad5c93f647e1ec04fca..b81400c1e8ae480abd8d1c80e753af22023f9405 100644
--- a/priv/gettext/id/LC_MESSAGES/default.po
+++ b/priv/gettext/id/LC_MESSAGES/default.po
@@ -22,7 +22,7 @@ msgstr ""
 "akan berubah sampai Anda mengakses tautan di bawah dan membuat sandi yang "
 "baru."
 
-#: lib/web/templates/email/report.html.heex:120
+#: lib/web/templates/email/report.html.heex:121
 #, elixir-autogen, elixir-format
 msgid "%{title} by %{creator}"
 msgstr "%{title} oleh %{creator}"
@@ -38,23 +38,17 @@ msgstr "Aktifkan akun saya"
 msgid "Ask the community on Framacolibri"
 msgstr "Bertanya ke komunitas di Framacolibri"
 
-#: lib/web/templates/email/report.text.eex:15
+#: lib/web/templates/email/report.text.eex:17
 #, elixir-autogen, elixir-format
 msgid "Comments"
 msgstr "Komentar"
 
-#: lib/web/templates/email/report.html.heex:115
-#: lib/web/templates/email/report.text.eex:11
-#, elixir-autogen, elixir-format
-msgid "Event"
-msgstr "Acara"
-
 #: lib/web/email/user.ex:49
 #, elixir-autogen, elixir-format
 msgid "Instructions to reset your password on %{instance}"
 msgstr ""
 
-#: lib/web/templates/email/report.text.eex:21
+#: lib/web/templates/email/report.text.eex:23
 #, elixir-autogen, elixir-format
 msgid "Reason"
 msgstr "Alasan"
@@ -328,12 +322,12 @@ msgctxt "terms"
 msgid "What information do we collect?"
 msgstr "Informasi apa yang kami kumpulkan?"
 
-#: lib/web/email/user.ex:182
+#: lib/web/email/user.ex:188
 #, elixir-autogen, elixir-format
 msgid "Mobilizon on %{instance}: confirm your email address"
 msgstr "Mobilizon pada %{instance}: konfirmasi alamat surel Anda"
 
-#: lib/web/email/user.ex:159
+#: lib/web/email/user.ex:165
 #, elixir-autogen, elixir-format
 msgid "Mobilizon on %{instance}: email changed"
 msgstr "Mobilizon pada %{instance}: surel diubah"
@@ -836,7 +830,7 @@ msgstr ""
 msgid "Event update!"
 msgstr ""
 
-#: lib/web/templates/email/report.html.heex:155
+#: lib/web/templates/email/report.html.heex:158
 #, elixir-autogen, elixir-format
 msgid "Flagged comments"
 msgstr ""
@@ -917,7 +911,7 @@ msgstr "Hampir di sana!"
 msgid "New email confirmation"
 msgstr "Konfirmasi surel baru"
 
-#: lib/web/templates/email/report.html.heex:191
+#: lib/web/templates/email/report.html.heex:194
 #, elixir-autogen, elixir-format
 msgid "Reasons for report"
 msgstr ""
@@ -974,12 +968,12 @@ msgstr "Sayangnya, para penyelenggara menolak permintaan Anda."
 msgid "Verify your email address"
 msgstr "Verifikasi alamat surel Anda"
 
-#: lib/web/templates/email/report.html.heex:232
+#: lib/web/templates/email/report.html.heex:235
 #, elixir-autogen, elixir-format
 msgid "View report"
 msgstr "Lihat laporan"
 
-#: lib/web/templates/email/report.text.eex:24
+#: lib/web/templates/email/report.text.eex:26
 #, elixir-autogen, elixir-format
 msgid "View report:"
 msgstr ""
@@ -1080,12 +1074,6 @@ msgstr ""
 msgid "As this group was located on another instance, it will continue to work for other instances than this one."
 msgstr ""
 
-#: lib/web/templates/email/group_suspension.html.heex:67
-#: lib/web/templates/email/group_suspension.text.eex:5
-#, elixir-autogen, elixir-format
-msgid "As this group was located on this instance, all of it's data has been irretrievably deleted."
-msgstr ""
-
 #: lib/web/templates/email/group_suspension.html.heex:18
 #: lib/web/templates/email/group_suspension.text.eex:1
 #, elixir-autogen, elixir-format
@@ -1097,7 +1085,7 @@ msgstr ""
 msgid "Your instance's moderation team has decided to suspend %{group_name} (%{group_address}). You are no longer a member of this group."
 msgstr ""
 
-#: lib/web/email/group.ex:107
+#: lib/web/email/group.ex:108
 #, elixir-autogen, elixir-format
 msgid "The group %{group} has been suspended on %{instance}"
 msgstr ""
@@ -1379,16 +1367,6 @@ msgstr ""
 msgid "Public feed for %{instance}"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:350
-#, elixir-autogen, elixir-format
-msgid "The password you have choosen is too short. Please make sure your password contains at least 6 charaters."
-msgstr ""
-
-#: lib/graphql/resolvers/user.ex:356
-#, elixir-autogen, elixir-format
-msgid "The token you provided is invalid. Make sure that the URL is exactly the one provided inside the email you got."
-msgstr ""
-
 #: lib/web/email/actor.ex:43
 #, elixir-autogen, elixir-format
 msgid "Your participation to %{event} has been cancelled!"
@@ -1412,63 +1390,63 @@ msgid "Your participation to %{event} on %{instance} has been cancelled!"
 msgstr ""
 
 #. File name template for exported list of participants. Should NOT contain spaces. Make sure the output is going to be something standardized that is acceptable as a file name on most systems.
-#: lib/service/export/participants/csv.ex:81
+#: lib/service/export/participants/csv.ex:97
 #: lib/service/export/participants/ods.ex:86
 #: lib/service/export/participants/pdf.ex:96
 #, elixir-autogen, elixir-format
 msgid "%{event}_participants"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:61
+#: lib/service/export/participants/common.ex:66
 #, elixir-autogen, elixir-format
 msgid "Participant message"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:61
+#: lib/service/export/participants/common.ex:63
 #, elixir-autogen, elixir-format
 msgid "Participant name"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:61
+#: lib/service/export/participants/common.ex:64
 #, elixir-autogen, elixir-format
 msgid "Participant status"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:52
+#: lib/service/export/participants/common.ex:53
 #: lib/web/templates/email/admin/_role.html.heex:3
 #: lib/web/templates/email/admin/_role.text.eex:1
 #, elixir-autogen, elixir-format
 msgid "Administrator"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:55
+#: lib/service/export/participants/common.ex:56
 #, elixir-autogen, elixir-format
 msgid "Creator"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:49
+#: lib/service/export/participants/common.ex:50
 #: lib/web/templates/email/admin/_role.html.heex:5
 #: lib/web/templates/email/admin/_role.text.eex:1
 #, elixir-autogen, elixir-format
 msgid "Moderator"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:37
+#: lib/service/export/participants/common.ex:38
 #, elixir-autogen, elixir-format
 msgid "Not approved"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:40
+#: lib/service/export/participants/common.ex:41
 #, elixir-autogen, elixir-format
 msgid "Not confirmed"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:46
+#: lib/service/export/participants/common.ex:47
 #, elixir-autogen, elixir-format
 msgid "Participant"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:43
+#: lib/service/export/participants/common.ex:44
 #, elixir-autogen, elixir-format
 msgid "Rejected"
 msgstr ""
@@ -1493,7 +1471,7 @@ msgstr ""
 msgid "Participants for %{event}"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:88
+#: lib/service/export/participants/common.ex:95
 #, elixir-autogen, elixir-format
 msgid "Anonymous participant"
 msgstr ""
@@ -1612,7 +1590,7 @@ msgstr ""
 msgid "Title: %{title}"
 msgstr ""
 
-#: lib/web/email/group.ex:46
+#: lib/web/email/group.ex:47
 #, elixir-autogen, elixir-format
 msgid "📅 Just scheduled by %{group}: %{event}"
 msgstr ""
@@ -2024,3 +2002,24 @@ msgstr ""
 #, elixir-autogen, elixir-format
 msgid "Until next time!"
 msgstr ""
+
+#: lib/web/templates/email/group_suspension.html.heex:67
+#: lib/web/templates/email/group_suspension.text.eex:5
+#, elixir-autogen, elixir-format, fuzzy
+msgid "As this group was located on this instance, all of its data has been irretrievably deleted."
+msgstr ""
+
+#: lib/web/templates/email/report.text.eex:11
+#, elixir-autogen, elixir-format, fuzzy
+msgid "Events"
+msgstr "Acara"
+
+#: lib/web/templates/email/report.html.heex:115
+#, elixir-autogen, elixir-format, fuzzy
+msgid "Flagged events"
+msgstr ""
+
+#: lib/service/export/participants/common.ex:65
+#, elixir-autogen, elixir-format, fuzzy
+msgid "Participant registration date"
+msgstr ""
diff --git a/priv/gettext/id/LC_MESSAGES/errors.po b/priv/gettext/id/LC_MESSAGES/errors.po
index 39feda3a8050266b03e6c47e9a876ca2cbc0bd5a..f48c67538b13a568ab16df61595d85c557cfc04d 100644
--- a/priv/gettext/id/LC_MESSAGES/errors.po
+++ b/priv/gettext/id/LC_MESSAGES/errors.po
@@ -104,7 +104,7 @@ msgstr ""
 msgid "Current profile is not an administrator of the selected group"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:644
+#: lib/graphql/resolvers/user.ex:673
 #, elixir-autogen, elixir-format
 msgid "Error while saving user settings"
 msgstr ""
@@ -147,8 +147,8 @@ msgstr ""
 msgid "No user to validate with this email was found"
 msgstr ""
 
-#: lib/graphql/resolvers/person.ex:337
-#: lib/graphql/resolvers/user.ex:330
+#: lib/graphql/resolvers/person.ex:339
+#: lib/graphql/resolvers/user.ex:337
 #, elixir-autogen, elixir-format
 msgid "No user with this email was found"
 msgstr ""
@@ -156,12 +156,12 @@ msgstr ""
 #: lib/graphql/resolvers/feed_token.ex:28
 #: lib/graphql/resolvers/participant.ex:32
 #: lib/graphql/resolvers/participant.ex:210
-#: lib/graphql/resolvers/person.ex:245
-#: lib/graphql/resolvers/person.ex:376
-#: lib/graphql/resolvers/person.ex:412
-#: lib/graphql/resolvers/person.ex:419
-#: lib/graphql/resolvers/person.ex:448
-#: lib/graphql/resolvers/person.ex:463
+#: lib/graphql/resolvers/person.ex:247
+#: lib/graphql/resolvers/person.ex:378
+#: lib/graphql/resolvers/person.ex:414
+#: lib/graphql/resolvers/person.ex:421
+#: lib/graphql/resolvers/person.ex:450
+#: lib/graphql/resolvers/person.ex:465
 #, elixir-autogen, elixir-format
 msgid "Profile is not owned by authenticated user"
 msgstr ""
@@ -171,41 +171,42 @@ msgstr ""
 msgid "Registrations are not open"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:461
+#: lib/graphql/resolvers/user.ex:474
 #, elixir-autogen, elixir-format
 msgid "The current password is invalid"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:336
-#: lib/graphql/resolvers/user.ex:504
+#: lib/graphql/resolvers/admin.ex:334
+#: lib/graphql/resolvers/user.ex:527
 #, elixir-autogen, elixir-format
 msgid "The new email doesn't seem to be valid"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:339
-#: lib/graphql/resolvers/user.ex:507
+#: lib/graphql/resolvers/admin.ex:323
+#: lib/graphql/resolvers/user.ex:514
 #, elixir-autogen, elixir-format
 msgid "The new email must be different"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:464
+#: lib/graphql/resolvers/user.ex:477
 #, elixir-autogen, elixir-format
 msgid "The new password must be different"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:511
-#: lib/graphql/resolvers/user.ex:573
-#: lib/graphql/resolvers/user.ex:576
+#: lib/graphql/resolvers/user.ex:518
+#: lib/graphql/resolvers/user.ex:602
+#: lib/graphql/resolvers/user.ex:605
 #, elixir-autogen, elixir-format
 msgid "The password provided is invalid"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:468
+#: lib/graphql/resolvers/user.ex:361
+#: lib/graphql/resolvers/user.ex:481
 #, elixir-autogen, elixir-format
 msgid "The password you have chosen is too short. Please make sure your password contains at least 6 characters."
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:323
+#: lib/graphql/resolvers/user.ex:330
 #, elixir-autogen, elixir-format
 msgid "This user can't reset their password"
 msgstr ""
@@ -221,12 +222,12 @@ msgstr ""
 msgid "Unable to validate user"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:554
+#: lib/graphql/resolvers/user.ex:583
 #, elixir-autogen, elixir-format
 msgid "User already disabled"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:619
+#: lib/graphql/resolvers/user.ex:648
 #, elixir-autogen, elixir-format
 msgid "User requested is not logged-in"
 msgstr ""
@@ -251,12 +252,12 @@ msgstr ""
 msgid "You may not list groups unless moderator."
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:519
+#: lib/graphql/resolvers/user.ex:503
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to change your email"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:476
+#: lib/graphql/resolvers/user.ex:489
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to change your password"
 msgstr ""
@@ -266,7 +267,7 @@ msgstr ""
 msgid "You need to be logged-in to delete a group"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:581
+#: lib/graphql/resolvers/user.ex:610
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to delete your account"
 msgstr ""
@@ -291,12 +292,6 @@ msgstr ""
 msgid "You need to have an existing token to get a refresh token"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:306
-#: lib/graphql/resolvers/user.ex:333
-#, elixir-autogen, elixir-format
-msgid "You requested again a confirmation email too soon"
-msgstr ""
-
 #: lib/graphql/resolvers/user.ex:180
 #, elixir-autogen, elixir-format
 msgid "Your email is not on the allowlist"
@@ -349,17 +344,17 @@ msgstr ""
 msgid "Anonymous participation is not enabled"
 msgstr ""
 
-#: lib/graphql/resolvers/person.ex:219
+#: lib/graphql/resolvers/person.ex:221
 #, elixir-autogen, elixir-format
 msgid "Cannot remove the last administrator of a group"
 msgstr ""
 
-#: lib/graphql/resolvers/person.ex:216
+#: lib/graphql/resolvers/person.ex:218
 #, elixir-autogen, elixir-format
 msgid "Cannot remove the last identity of a user"
 msgstr ""
 
-#: lib/graphql/resolvers/comment.ex:147
+#: lib/graphql/resolvers/comment.ex:153
 #, elixir-autogen, elixir-format
 msgid "Comment is already deleted"
 msgstr ""
@@ -387,8 +382,8 @@ msgid "Event id not found"
 msgstr ""
 
 #: lib/graphql/error.ex:114
-#: lib/graphql/resolvers/event.ex:355
-#: lib/graphql/resolvers/event.ex:407
+#: lib/graphql/resolvers/event.ex:382
+#: lib/graphql/resolvers/event.ex:434
 #, elixir-autogen, elixir-format
 msgid "Event not found"
 msgstr ""
@@ -396,7 +391,7 @@ msgstr ""
 #: lib/graphql/resolvers/participant.ex:87
 #: lib/graphql/resolvers/participant.ex:128
 #: lib/graphql/resolvers/participant.ex:155
-#: lib/graphql/resolvers/participant.ex:336
+#: lib/graphql/resolvers/participant.ex:343
 #, elixir-autogen, elixir-format
 msgid "Event with this ID %{id} doesn't exist"
 msgstr ""
@@ -406,7 +401,7 @@ msgstr ""
 msgid "Internal Error"
 msgstr ""
 
-#: lib/graphql/resolvers/discussion.ex:219
+#: lib/graphql/resolvers/discussion.ex:222
 #, elixir-autogen, elixir-format
 msgid "No discussion with ID %{id}"
 msgstr ""
@@ -473,10 +468,10 @@ msgstr ""
 #: lib/graphql/resolvers/post.ex:133
 #: lib/graphql/resolvers/post.ex:175
 #: lib/graphql/resolvers/post.ex:209
-#: lib/graphql/resolvers/resource.ex:90
-#: lib/graphql/resolvers/resource.ex:135
-#: lib/graphql/resolvers/resource.ex:168
-#: lib/graphql/resolvers/resource.ex:202
+#: lib/graphql/resolvers/resource.ex:92
+#: lib/graphql/resolvers/resource.ex:137
+#: lib/graphql/resolvers/resource.ex:170
+#: lib/graphql/resolvers/resource.ex:204
 #: lib/graphql/resolvers/todos.ex:58
 #: lib/graphql/resolvers/todos.ex:83
 #: lib/graphql/resolvers/todos.ex:110
@@ -488,7 +483,7 @@ msgid "Profile is not member of group"
 msgstr ""
 
 #: lib/graphql/resolvers/actor.ex:67
-#: lib/graphql/resolvers/person.ex:242
+#: lib/graphql/resolvers/person.ex:244
 #, elixir-autogen, elixir-format
 msgid "Profile not found"
 msgstr ""
@@ -498,8 +493,8 @@ msgstr ""
 msgid "Report not found"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:172
-#: lib/graphql/resolvers/resource.ex:199
+#: lib/graphql/resolvers/resource.ex:174
+#: lib/graphql/resolvers/resource.ex:201
 #, elixir-autogen, elixir-format
 msgid "Resource doesn't exist"
 msgstr ""
@@ -509,7 +504,7 @@ msgstr ""
 msgid "The event has already reached its maximum capacity"
 msgstr ""
 
-#: lib/graphql/resolvers/participant.ex:282
+#: lib/graphql/resolvers/participant.ex:289
 #, elixir-autogen, elixir-format
 msgid "This token is invalid"
 msgstr ""
@@ -543,7 +538,7 @@ msgstr ""
 msgid "User not found"
 msgstr ""
 
-#: lib/graphql/resolvers/person.ex:333
+#: lib/graphql/resolvers/person.ex:335
 #, elixir-autogen, elixir-format
 msgid "You already have a profile for this user"
 msgstr ""
@@ -565,7 +560,7 @@ msgstr ""
 msgid "You are not a moderator or admin for this group"
 msgstr ""
 
-#: lib/graphql/resolvers/comment.ex:80
+#: lib/graphql/resolvers/comment.ex:74
 #, elixir-autogen, elixir-format
 msgid "You are not allowed to create a comment if not connected"
 msgstr ""
@@ -575,7 +570,7 @@ msgstr ""
 msgid "You are not allowed to create a feed token if not connected"
 msgstr ""
 
-#: lib/graphql/resolvers/comment.ex:155
+#: lib/graphql/resolvers/comment.ex:161
 #, elixir-autogen, elixir-format
 msgid "You are not allowed to delete a comment if not connected"
 msgstr ""
@@ -585,7 +580,7 @@ msgstr ""
 msgid "You are not allowed to delete a feed token if not connected"
 msgstr ""
 
-#: lib/graphql/resolvers/comment.ex:114
+#: lib/graphql/resolvers/comment.ex:120
 #, elixir-autogen, elixir-format
 msgid "You are not allowed to update a comment if not connected"
 msgstr ""
@@ -601,12 +596,12 @@ msgstr ""
 msgid "You can't set yourself to a lower member role for this group because you are the only administrator"
 msgstr ""
 
-#: lib/graphql/resolvers/comment.ex:143
+#: lib/graphql/resolvers/comment.ex:149
 #, elixir-autogen, elixir-format
 msgid "You cannot delete this comment"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:403
+#: lib/graphql/resolvers/event.ex:430
 #, elixir-autogen, elixir-format
 msgid "You cannot delete this event"
 msgstr ""
@@ -641,17 +636,17 @@ msgstr ""
 msgid "You need to be logged-in and a moderator to view a report"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:252
+#: lib/graphql/resolvers/admin.ex:258
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in and an administrator to access admin settings"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:236
+#: lib/graphql/resolvers/admin.ex:242
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in and an administrator to access dashboard statistics"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:278
+#: lib/graphql/resolvers/admin.ex:283
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in and an administrator to save admin settings"
 msgstr ""
@@ -661,12 +656,12 @@ msgstr ""
 msgid "You need to be logged-in to access discussions"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:96
+#: lib/graphql/resolvers/resource.ex:98
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to access resources"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:313
+#: lib/graphql/resolvers/event.ex:321
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to create events"
 msgstr ""
@@ -681,12 +676,12 @@ msgstr ""
 msgid "You need to be logged-in to create reports"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:140
+#: lib/graphql/resolvers/resource.ex:142
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to create resources"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:412
+#: lib/graphql/resolvers/event.ex:439
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to delete an event"
 msgstr ""
@@ -696,7 +691,7 @@ msgstr ""
 msgid "You need to be logged-in to delete posts"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:207
+#: lib/graphql/resolvers/resource.ex:209
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to delete resources"
 msgstr ""
@@ -711,7 +706,7 @@ msgstr ""
 msgid "You need to be logged-in to leave an event"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:369
+#: lib/graphql/resolvers/event.ex:396
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to update an event"
 msgstr ""
@@ -721,17 +716,17 @@ msgstr ""
 msgid "You need to be logged-in to update posts"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:177
+#: lib/graphql/resolvers/resource.ex:179
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to update resources"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:236
+#: lib/graphql/resolvers/resource.ex:233
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to view a resource preview"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:132
+#: lib/graphql/resolvers/resource.ex:134
 #, elixir-autogen, elixir-format
 msgid "Parent resource doesn't belong to this group"
 msgstr ""
@@ -817,12 +812,12 @@ msgstr ""
 msgid "Profile is not administrator for the group"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:358
+#: lib/graphql/resolvers/event.ex:385
 #, elixir-autogen, elixir-format
 msgid "You can't edit this event."
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:361
+#: lib/graphql/resolvers/event.ex:388
 #, elixir-autogen, elixir-format
 msgid "You can't attribute this event to this profile."
 msgstr ""
@@ -842,7 +837,7 @@ msgstr ""
 msgid "You don't have the right to remove this member."
 msgstr ""
 
-#: lib/mobilizon/actors/actor.ex:377
+#: lib/mobilizon/actors/actor.ex:378
 #, elixir-autogen, elixir-format
 msgid "This username is already taken."
 msgstr ""
@@ -852,7 +847,7 @@ msgstr ""
 msgid "You must provide either an ID or a slug to access a discussion"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:275
+#: lib/graphql/resolvers/event.ex:276
 #, elixir-autogen, elixir-format
 msgid "Organizer profile is not owned by the user"
 msgstr ""
@@ -864,41 +859,41 @@ msgstr ""
 
 #: lib/graphql/resolvers/group.ex:181
 #: lib/graphql/resolvers/group.ex:223
-#: lib/graphql/resolvers/person.ex:157
-#: lib/graphql/resolvers/person.ex:191
-#: lib/graphql/resolvers/person.ex:324
+#: lib/graphql/resolvers/person.ex:159
+#: lib/graphql/resolvers/person.ex:193
+#: lib/graphql/resolvers/person.ex:326
 #, elixir-autogen, elixir-format
 msgid "The provided picture is too heavy"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:129
+#: lib/graphql/resolvers/resource.ex:131
 #, elixir-autogen, elixir-format
 msgid "Error while creating resource"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:537
+#: lib/graphql/resolvers/user.ex:566
 #, elixir-autogen, elixir-format
 msgid "Invalid activation token"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:226
+#: lib/graphql/resolvers/resource.ex:228
 #, elixir-autogen, elixir-format
 msgid "Unable to fetch resource details from this URL."
 msgstr ""
 
 #: lib/graphql/resolvers/event.ex:165
 #: lib/graphql/resolvers/participant.ex:253
-#: lib/graphql/resolvers/participant.ex:328
+#: lib/graphql/resolvers/participant.ex:335
 #, elixir-autogen, elixir-format
 msgid "Provided profile doesn't have moderator permissions on this event"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:286
+#: lib/graphql/resolvers/event.ex:294
 #, elixir-autogen, elixir-format
 msgid "Organizer profile doesn't have permission to create an event on behalf of this group"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:349
+#: lib/graphql/resolvers/event.ex:369
 #, elixir-autogen, elixir-format
 msgid "This profile doesn't have permission to update an event on behalf of this group"
 msgstr ""
@@ -908,7 +903,7 @@ msgstr ""
 msgid "Your e-mail has been denied registration or uses a disallowed e-mail provider"
 msgstr ""
 
-#: lib/graphql/resolvers/comment.ex:150
+#: lib/graphql/resolvers/comment.ex:156
 #, elixir-autogen, elixir-format
 msgid "Comment not found"
 msgstr ""
@@ -918,12 +913,12 @@ msgstr ""
 msgid "Error while creating a discussion"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:658
+#: lib/graphql/resolvers/user.ex:687
 #, elixir-autogen, elixir-format
 msgid "Error while updating locale"
 msgstr ""
 
-#: lib/graphql/resolvers/person.ex:327
+#: lib/graphql/resolvers/person.ex:329
 #, elixir-autogen, elixir-format
 msgid "Error while uploading pictures"
 msgstr ""
@@ -938,13 +933,13 @@ msgstr ""
 msgid "Failed to update the group"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:333
-#: lib/graphql/resolvers/user.ex:501
+#: lib/graphql/resolvers/admin.ex:357
+#: lib/graphql/resolvers/user.ex:547
 #, elixir-autogen, elixir-format
 msgid "Failed to update user email"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:533
+#: lib/graphql/resolvers/user.ex:562
 #, elixir-autogen, elixir-format
 msgid "Failed to validate user email"
 msgstr ""
@@ -954,37 +949,37 @@ msgstr ""
 msgid "The anonymous actor ID is invalid"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:165
+#: lib/graphql/resolvers/resource.ex:167
 #, elixir-autogen, elixir-format
 msgid "Unknown error while updating resource"
 msgstr ""
 
-#: lib/graphql/resolvers/comment.ex:105
+#: lib/graphql/resolvers/comment.ex:111
 #, elixir-autogen, elixir-format
 msgid "You are not the comment creator"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:458
+#: lib/graphql/resolvers/user.ex:471
 #, elixir-autogen, elixir-format
 msgid "You cannot change your password."
 msgstr ""
 
-#: lib/graphql/resolvers/participant.ex:321
+#: lib/graphql/resolvers/participant.ex:328
 #, elixir-autogen, elixir-format
 msgid "Format not supported"
 msgstr ""
 
-#: lib/graphql/resolvers/participant.ex:305
+#: lib/graphql/resolvers/participant.ex:312
 #, elixir-autogen, elixir-format
 msgid "A dependency needed to export to %{format} is not installed"
 msgstr ""
 
-#: lib/graphql/resolvers/participant.ex:313
+#: lib/graphql/resolvers/participant.ex:320
 #, elixir-autogen, elixir-format
 msgid "An error occured while saving export"
 msgstr ""
 
-#: lib/web/controllers/export_controller.ex:30
+#: lib/web/controllers/export_controller.ex:32
 #, elixir-autogen, elixir-format
 msgid "Export to format %{format} is not enabled on this instance"
 msgstr ""
@@ -994,17 +989,17 @@ msgstr ""
 msgid "Only admins can create groups"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:279
+#: lib/graphql/resolvers/event.ex:280
 #, elixir-autogen, elixir-format
 msgid "Only groups can create events"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:305
+#: lib/graphql/resolvers/event.ex:313
 #, elixir-autogen, elixir-format
 msgid "Unknown error while creating event"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:514
+#: lib/graphql/resolvers/user.ex:498
 #, elixir-autogen, elixir-format
 msgid "User cannot change email"
 msgstr ""
@@ -1019,12 +1014,12 @@ msgstr ""
 msgid "Follow not found"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:379
+#: lib/graphql/resolvers/user.ex:392
 #, elixir-autogen, elixir-format
 msgid "Profile with username %{username} not found"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:374
+#: lib/graphql/resolvers/user.ex:387
 #, elixir-autogen, elixir-format
 msgid "This profile does not belong to you"
 msgstr ""
@@ -1069,22 +1064,22 @@ msgstr ""
 msgid "Your email seems to be using an invalid format"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:382
+#: lib/graphql/resolvers/admin.ex:399
 #, elixir-autogen, elixir-format
 msgid "Can't confirm an already confirmed user"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:386
+#: lib/graphql/resolvers/admin.ex:403
 #, elixir-autogen, elixir-format
 msgid "Deconfirming users is not supported"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:358
+#: lib/graphql/resolvers/admin.ex:375
 #, elixir-autogen, elixir-format, fuzzy
 msgid "The new role must be different"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:309
+#: lib/graphql/resolvers/admin.ex:314
 #, elixir-autogen, elixir-format, fuzzy
 msgid "You need to be logged-in and an administrator to edit an user's details"
 msgstr ""
@@ -1094,28 +1089,28 @@ msgstr ""
 msgid "A profile or group with that name already exists"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:519
+#: lib/graphql/resolvers/admin.ex:542
 #, elixir-autogen, elixir-format
 msgid "Unable to find an instance to follow at this address"
 msgstr ""
 
-#: lib/mobilizon/actors/actor.ex:396
+#: lib/mobilizon/actors/actor.ex:397
 #, elixir-autogen, elixir-format
 msgid "Username must only contain alphanumeric lowercased characters and underscores."
 msgstr ""
 
 #: lib/graphql/resolvers/user.ex:303
-#: lib/graphql/resolvers/user.ex:326
+#: lib/graphql/resolvers/user.ex:333
 #, elixir-autogen, elixir-format, fuzzy
 msgid "This email doesn't seem to be valid"
 msgstr ""
 
-#: lib/graphql/resolvers/comment.ex:65
+#: lib/graphql/resolvers/comment.ex:59
 #, elixir-autogen, elixir-format
 msgid "This comment was detected as spam."
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:293
+#: lib/graphql/resolvers/event.ex:301
 #, elixir-autogen, elixir-format
 msgid "This event was detected as spam."
 msgstr ""
@@ -1136,7 +1131,7 @@ msgstr ""
 msgid "You need to be a moderator or an administrator to create a note on a report"
 msgstr ""
 
-#: lib/graphql/resolvers/person.ex:330
+#: lib/graphql/resolvers/person.ex:332
 #, elixir-autogen, elixir-format
 msgid "Your profile was detected as spam."
 msgstr ""
@@ -1146,7 +1141,7 @@ msgstr ""
 msgid "Your registration has been detected as spam and cannot be processed."
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:86
+#: lib/web/controllers/application_controller.ex:88
 #, elixir-autogen, elixir-format
 msgid "All of name, scope and redirect_uri parameters are required to create an application"
 msgstr ""
@@ -1161,171 +1156,227 @@ msgstr ""
 msgid "Application token not found"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:89
+#: lib/graphql/resolvers/application.ex:90
 #, elixir-autogen, elixir-format, fuzzy
 msgid "Error while revoking token"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:59
+#: lib/web/controllers/application_controller.ex:61
 #, elixir-autogen, elixir-format
 msgid "Impossible to create application."
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:356
+#: lib/web/controllers/application_controller.ex:358
 #, elixir-autogen, elixir-format
 msgid "Incorrect parameters sent. You need to provide at least the grant_type and client_id parameters, depending on the grant type being used."
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:329
+#: lib/web/controllers/application_controller.ex:331
 #, elixir-autogen, elixir-format
 msgid "Invalid client credentials provided"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:337
+#: lib/web/controllers/application_controller.ex:339
 #, elixir-autogen, elixir-format
 msgid "Invalid refresh token provided"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:170
-#: lib/web/controllers/application_controller.ex:401
+#: lib/web/controllers/application_controller.ex:172
+#: lib/web/controllers/application_controller.ex:403
 #, elixir-autogen, elixir-format
 msgid "No application was found with this client_id"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:37
+#: lib/graphql/resolvers/application.ex:38
 #, elixir-autogen, elixir-format
 msgid "No application with this client_id was found"
 msgstr ""
 
-#: lib/graphql/authorization.ex:80
+#: lib/graphql/authorization.ex:81
 #, elixir-autogen, elixir-format
 msgid "Not authorized to access field %{field}"
 msgstr ""
 
-#: lib/graphql/authorization.ex:70
-#: lib/graphql/authorization.ex:75
+#: lib/graphql/authorization.ex:71
+#: lib/graphql/authorization.ex:76
 #, elixir-autogen, elixir-format
 msgid "Not authorized to access object %{object}"
 msgstr ""
 
-#: lib/graphql/authorization.ex:63
+#: lib/graphql/authorization.ex:64
 #, elixir-autogen, elixir-format
 msgid "Not authorized to access this %{object_type}"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:279
+#: lib/web/controllers/application_controller.ex:281
 #, elixir-autogen, elixir-format
 msgid "Please slow down the rate of your requests"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:267
+#: lib/web/controllers/application_controller.ex:269
 #, elixir-autogen, elixir-format
 msgid "The authorization request is still pending"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:249
+#: lib/web/controllers/application_controller.ex:251
 #, elixir-autogen, elixir-format
 msgid "The client_id provided or the device_code associated is invalid"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:133
+#: lib/graphql/resolvers/application.ex:139
 #, elixir-autogen, elixir-format
 msgid "The device user code was not provided before approving the application"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:304
+#: lib/web/controllers/application_controller.ex:306
 #, elixir-autogen, elixir-format
 msgid "The given device_code has expired"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:44
+#: lib/graphql/resolvers/application.ex:45
 #, elixir-autogen, elixir-format
 msgid "The given redirect_uri is not in the list of allowed redirect URIs"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:158
+#: lib/web/controllers/application_controller.ex:160
 #, elixir-autogen, elixir-format
 msgid "The given scope is not in the list of the app declared scopes"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:109
-#: lib/graphql/resolvers/application.ex:146
+#: lib/graphql/resolvers/application.ex:112
+#: lib/graphql/resolvers/application.ex:154
 #, elixir-autogen, elixir-format
 msgid "The given user code has expired"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:112
-#: lib/graphql/resolvers/application.ex:140
+#: lib/graphql/resolvers/application.ex:118
+#: lib/graphql/resolvers/application.ex:146
 #, elixir-autogen, elixir-format
 msgid "The given user code is invalid"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:411
+#: lib/web/controllers/application_controller.ex:413
 #, elixir-autogen, elixir-format
 msgid "The provided client_id does not match the provided code"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:414
+#: lib/web/controllers/application_controller.ex:416
 #, elixir-autogen, elixir-format
 msgid "The provided client_secret is invalid"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:407
+#: lib/web/controllers/application_controller.ex:409
 #, elixir-autogen, elixir-format
 msgid "The provided code is invalid or expired"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:418
+#: lib/web/controllers/application_controller.ex:420
 #, elixir-autogen, elixir-format
 msgid "The provided scope is invalid or not included in the app declared scopes"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:45
+#: lib/web/controllers/application_controller.ex:47
 #, elixir-autogen, elixir-format
 msgid "The scope parameter is not a space separated list of valid scopes"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:292
+#: lib/web/controllers/application_controller.ex:294
 #, elixir-autogen, elixir-format
 msgid "The user rejected the requested authorization"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:404
+#: lib/web/controllers/application_controller.ex:406
 #, elixir-autogen, elixir-format
 msgid "This redirect URI is not allowed"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:381
+#: lib/web/controllers/application_controller.ex:383
 #, elixir-autogen, elixir-format, fuzzy
 msgid "Token not found"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:72
+#: lib/web/controllers/application_controller.ex:74
 #, elixir-autogen, elixir-format
 msgid "Too many requests"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:184
+#: lib/web/controllers/application_controller.ex:186
 #, elixir-autogen, elixir-format
 msgid "Unable to produce device code"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:373
+#: lib/web/controllers/application_controller.ex:375
 #, elixir-autogen, elixir-format
 msgid "Unable to revoke token"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:198
+#: lib/web/controllers/application_controller.ex:200
 #, elixir-autogen, elixir-format
 msgid "You need to pass both client_id and scope as parameters to obtain a device code"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:136
+#: lib/web/controllers/application_controller.ex:138
 #, elixir-autogen, elixir-format
 msgid "You need to provide a valid redirect_uri to autorize an application"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:126
+#: lib/web/controllers/application_controller.ex:128
 #, elixir-autogen, elixir-format
 msgid "You need to specify client_id, redirect_uri, scope and state to autorize an application"
 msgstr ""
+
+#: lib/graphql/resolvers/user.ex:306
+#, elixir-autogen, elixir-format
+msgid "Couldn't send an email. Internal error."
+msgstr ""
+
+#: lib/graphql/resolvers/participant.ex:286
+#, elixir-autogen, elixir-format
+msgid "Participation is already confirmed"
+msgstr ""
+
+#: lib/graphql/resolvers/participant.ex:283
+#, elixir-autogen, elixir-format
+msgid "Participation is confirmed but not approved yet by an organizer"
+msgstr ""
+
+#: lib/graphql/resolvers/event.ex:287
+#: lib/graphql/resolvers/event.ex:376
+#, elixir-autogen, elixir-format
+msgid "Providing external registration is not allowed"
+msgstr ""
+
+#: lib/graphql/resolvers/push_subscription.ex:48
+#, elixir-autogen, elixir-format
+msgid "The same push subscription has already been registered"
+msgstr ""
+
+#: lib/graphql/resolvers/admin.ex:536
+#, elixir-autogen, elixir-format
+msgid "This instance is pending follow approval"
+msgstr ""
+
+#: lib/graphql/schema/custom/timezone.ex:23
+#, elixir-autogen, elixir-format
+msgid "Timezone ID %{timezone} is invalid"
+msgstr ""
+
+#: lib/graphql/resolvers/admin.ex:539
+#, elixir-autogen, elixir-format, fuzzy
+msgid "You are already following this instance"
+msgstr ""
+
+#: lib/graphql/resolvers/user.ex:310
+#, elixir-autogen, elixir-format, fuzzy
+msgid "You requested again a confirmation email too soon. Please try again in a few minutes"
+msgstr ""
+
+#: lib/graphql/resolvers/user.ex:341
+#, elixir-autogen, elixir-format
+msgid "You requested again a password reset email too soon. Please try again in a few minutes"
+msgstr ""
+
+#: lib/graphql/resolvers/user.ex:368
+#, elixir-autogen, elixir-format
+msgid "The token you provided is invalid. Make sure that the URL is exactly the one provided inside the email you got."
+msgstr ""
diff --git a/priv/gettext/it/LC_MESSAGES/activity.po b/priv/gettext/it/LC_MESSAGES/activity.po
index 71dc012d079c665524aafd63938a4af7b3eac155..629e084b335e99351b1ac8cdbc5e8ebd620d9ede 100644
--- a/priv/gettext/it/LC_MESSAGES/activity.po
+++ b/priv/gettext/it/LC_MESSAGES/activity.po
@@ -486,3 +486,15 @@ msgstr ""
 #, elixir-autogen, elixir-format
 msgid "%{profile} approved the member %{member}."
 msgstr "%{profile} ha aggiunto il membro %{member}."
+
+#: lib/service/activity/renderer/event.ex:74
+#: lib/web/templates/email/activity/_event_activity_item.html.heex:55
+#: lib/web/templates/email/activity/_event_activity_item.text.eex:31
+#, elixir-autogen, elixir-format
+msgid "%{profile} joined your event %{event}."
+msgstr ""
+
+#: lib/web/views/email_view.ex:45
+#, elixir-autogen, elixir-format
+msgid "An anonymous profile"
+msgstr ""
diff --git a/priv/gettext/it/LC_MESSAGES/default.po b/priv/gettext/it/LC_MESSAGES/default.po
index 0b71812e90292cab041bad3ab2472d00daa62691..27b502412bf24addd347442ba95fc96344ef8fc7 100644
--- a/priv/gettext/it/LC_MESSAGES/default.po
+++ b/priv/gettext/it/LC_MESSAGES/default.po
@@ -21,7 +21,7 @@ msgstr ""
 "Se non l'hai richiesta tu, ignora questa mail. La tua password non sarà "
 "cambiata fino a che non accederai al link sotto per crearne una nuova."
 
-#: lib/web/templates/email/report.html.heex:120
+#: lib/web/templates/email/report.html.heex:121
 #, elixir-autogen, elixir-format
 msgid "%{title} by %{creator}"
 msgstr "%{title} di %{creator}"
@@ -37,23 +37,17 @@ msgstr "Attiva il mio account"
 msgid "Ask the community on Framacolibri"
 msgstr "Chiedi alla comunità su Framacolibri"
 
-#: lib/web/templates/email/report.text.eex:15
+#: lib/web/templates/email/report.text.eex:17
 #, elixir-autogen, elixir-format
 msgid "Comments"
 msgstr "Commenti"
 
-#: lib/web/templates/email/report.html.heex:115
-#: lib/web/templates/email/report.text.eex:11
-#, elixir-autogen, elixir-format
-msgid "Event"
-msgstr "Evento"
-
 #: lib/web/email/user.ex:49
 #, elixir-autogen, elixir-format
 msgid "Instructions to reset your password on %{instance}"
 msgstr "Istruzioni per reimpostare la tua password su %{instance}"
 
-#: lib/web/templates/email/report.text.eex:21
+#: lib/web/templates/email/report.text.eex:23
 #, elixir-autogen, elixir-format
 msgid "Reason"
 msgstr "Spiegazione"
@@ -352,12 +346,12 @@ msgctxt "terms"
 msgid "What information do we collect?"
 msgstr "Quali informazioni raccogliamo?"
 
-#: lib/web/email/user.ex:182
+#: lib/web/email/user.ex:188
 #, elixir-autogen, elixir-format
 msgid "Mobilizon on %{instance}: confirm your email address"
 msgstr "Mobilizon su %{instance}: conferma il tuo indirizzo email"
 
-#: lib/web/email/user.ex:159
+#: lib/web/email/user.ex:165
 #, elixir-autogen, elixir-format
 msgid "Mobilizon on %{instance}: email changed"
 msgstr "Mobilizon su %{instance}: email modificata"
@@ -998,7 +992,7 @@ msgstr "Fine"
 msgid "Event update!"
 msgstr "Evento aggiornato!"
 
-#: lib/web/templates/email/report.html.heex:155
+#: lib/web/templates/email/report.html.heex:158
 #, elixir-autogen, elixir-format
 msgid "Flagged comments"
 msgstr "Commenti contrassegnati"
@@ -1096,7 +1090,7 @@ msgstr "Ci sei quasi!"
 msgid "New email confirmation"
 msgstr "Conferma del nuovo indirizzo e-mail"
 
-#: lib/web/templates/email/report.html.heex:191
+#: lib/web/templates/email/report.html.heex:194
 #, elixir-autogen, elixir-format
 msgid "Reasons for report"
 msgstr "Ragioni della segnalazione"
@@ -1158,12 +1152,12 @@ msgstr ""
 msgid "Verify your email address"
 msgstr "Verifica il tuo indirizzo e-mail"
 
-#: lib/web/templates/email/report.html.heex:232
+#: lib/web/templates/email/report.html.heex:235
 #, elixir-autogen, elixir-format
 msgid "View report"
 msgstr "Visualizza la segnalazione"
 
-#: lib/web/templates/email/report.text.eex:24
+#: lib/web/templates/email/report.text.eex:26
 #, elixir-autogen, elixir-format
 msgid "View report:"
 msgstr "Visualizza la segnalazione:"
@@ -1278,14 +1272,6 @@ msgstr ""
 "Poiché questo gruppo era posizionato su un'altra istanza, continuerà a "
 "funzionare per altre istanze tranne questa."
 
-#: lib/web/templates/email/group_suspension.html.heex:67
-#: lib/web/templates/email/group_suspension.text.eex:5
-#, elixir-autogen, elixir-format
-msgid "As this group was located on this instance, all of it's data has been irretrievably deleted."
-msgstr ""
-"Poiché questo gruppo si trovava su questa istanza, tutti i suoi dati sono "
-"stati irrimediabilmente cancellati."
-
 #: lib/web/templates/email/group_suspension.html.heex:18
 #: lib/web/templates/email/group_suspension.text.eex:1
 #, elixir-autogen, elixir-format
@@ -1299,7 +1285,7 @@ msgstr ""
 "Il team di moderazione della tua istanza ha deciso di sospendere "
 "%{group_name} (%{group_address}). Non sei più un membro di questo gruppo."
 
-#: lib/web/email/group.ex:107
+#: lib/web/email/group.ex:108
 #, elixir-autogen, elixir-format
 msgid "The group %{group} has been suspended on %{instance}"
 msgstr "Il gruppo %{group} è stato sospeso su %{instance}"
@@ -1676,18 +1662,6 @@ msgstr "Il server Mobilizon sembra essere temporaneamente inattivo."
 msgid "Public feed for %{instance}"
 msgstr "Feed pubblico per %{instance}"
 
-#: lib/graphql/resolvers/user.ex:350
-#, elixir-autogen, elixir-format
-msgid "The password you have choosen is too short. Please make sure your password contains at least 6 charaters."
-msgstr "La password scelta è troppo corta, deve avere almeno 6 caratteri."
-
-#: lib/graphql/resolvers/user.ex:356
-#, elixir-autogen, elixir-format
-msgid "The token you provided is invalid. Make sure that the URL is exactly the one provided inside the email you got."
-msgstr ""
-"Il token fornito non è valido. Assicurarsi che l'URL sia esattamente quello "
-"fornito all'interno dell'e-mail ricevuta."
-
 #: lib/web/email/actor.ex:43
 #, elixir-autogen, elixir-format
 msgid "Your participation to %{event} has been cancelled!"
@@ -1716,63 +1690,63 @@ msgid "Your participation to %{event} on %{instance} has been cancelled!"
 msgstr "La tua partecipazione all'evento %{title} è stata cancellata !"
 
 #. File name template for exported list of participants. Should NOT contain spaces. Make sure the output is going to be something standardized that is acceptable as a file name on most systems.
-#: lib/service/export/participants/csv.ex:81
+#: lib/service/export/participants/csv.ex:97
 #: lib/service/export/participants/ods.ex:86
 #: lib/service/export/participants/pdf.ex:96
 #, elixir-autogen, elixir-format
 msgid "%{event}_participants"
 msgstr "%{event}_partecipanti"
 
-#: lib/service/export/participants/common.ex:61
+#: lib/service/export/participants/common.ex:66
 #, elixir-autogen, elixir-format
 msgid "Participant message"
 msgstr "Messaggio partecipante"
 
-#: lib/service/export/participants/common.ex:61
+#: lib/service/export/participants/common.ex:63
 #, elixir-autogen, elixir-format
 msgid "Participant name"
 msgstr "Partecipazione approvata"
 
-#: lib/service/export/participants/common.ex:61
+#: lib/service/export/participants/common.ex:64
 #, elixir-autogen, elixir-format
 msgid "Participant status"
 msgstr "Stato partecipante"
 
-#: lib/service/export/participants/common.ex:52
+#: lib/service/export/participants/common.ex:53
 #: lib/web/templates/email/admin/_role.html.heex:3
 #: lib/web/templates/email/admin/_role.text.eex:1
 #, elixir-autogen, elixir-format
 msgid "Administrator"
 msgstr "Amministratore"
 
-#: lib/service/export/participants/common.ex:55
+#: lib/service/export/participants/common.ex:56
 #, elixir-autogen, elixir-format
 msgid "Creator"
 msgstr "Creatore"
 
-#: lib/service/export/participants/common.ex:49
+#: lib/service/export/participants/common.ex:50
 #: lib/web/templates/email/admin/_role.html.heex:5
 #: lib/web/templates/email/admin/_role.text.eex:1
 #, elixir-autogen, elixir-format
 msgid "Moderator"
 msgstr "Moderatore"
 
-#: lib/service/export/participants/common.ex:37
+#: lib/service/export/participants/common.ex:38
 #, elixir-autogen, elixir-format
 msgid "Not approved"
 msgstr "Non approvato"
 
-#: lib/service/export/participants/common.ex:40
+#: lib/service/export/participants/common.ex:41
 #, elixir-autogen, elixir-format
 msgid "Not confirmed"
 msgstr "Non confermati"
 
-#: lib/service/export/participants/common.ex:46
+#: lib/service/export/participants/common.ex:47
 #, elixir-autogen, elixir-format
 msgid "Participant"
 msgstr "Partecipazione approvata"
 
-#: lib/service/export/participants/common.ex:43
+#: lib/service/export/participants/common.ex:44
 #, elixir-autogen, elixir-format
 msgid "Rejected"
 msgstr "Respinto"
@@ -1797,7 +1771,7 @@ msgstr "Numero di partecipanti"
 msgid "Participants for %{event}"
 msgstr "Partecipazione approvata"
 
-#: lib/service/export/participants/common.ex:88
+#: lib/service/export/participants/common.ex:95
 #, elixir-autogen, elixir-format
 msgid "Anonymous participant"
 msgstr "Partecipante anonimo"
@@ -1916,7 +1890,7 @@ msgstr "Partecipazione approvata :"
 msgid "Title: %{title}"
 msgstr "Titolo: %{title}"
 
-#: lib/web/email/group.ex:46
+#: lib/web/email/group.ex:47
 #, elixir-autogen, elixir-format
 msgid "📅 Just scheduled by %{group}: %{event}"
 msgstr "📅 Appena programmato da %{group}: %{event}"
@@ -2373,3 +2347,26 @@ msgstr ""
 #, elixir-autogen, elixir-format
 msgid "Until next time!"
 msgstr "Alla prossima!"
+
+#: lib/web/templates/email/group_suspension.html.heex:67
+#: lib/web/templates/email/group_suspension.text.eex:5
+#, elixir-autogen, elixir-format, fuzzy
+msgid "As this group was located on this instance, all of its data has been irretrievably deleted."
+msgstr ""
+"Poiché questo gruppo si trovava su questa istanza, tutti i suoi dati sono "
+"stati irrimediabilmente cancellati."
+
+#: lib/web/templates/email/report.text.eex:11
+#, elixir-autogen, elixir-format, fuzzy
+msgid "Events"
+msgstr "Evento"
+
+#: lib/web/templates/email/report.html.heex:115
+#, elixir-autogen, elixir-format, fuzzy
+msgid "Flagged events"
+msgstr "Commenti contrassegnati"
+
+#: lib/service/export/participants/common.ex:65
+#, elixir-autogen, elixir-format, fuzzy
+msgid "Participant registration date"
+msgstr "Stato partecipante"
diff --git a/priv/gettext/it/LC_MESSAGES/errors.po b/priv/gettext/it/LC_MESSAGES/errors.po
index 5717ff5bcae80934c3520b1a9dc3f95cea48609d..c7e6f7de8f287f7d88f4d28691f068ac3ad04983 100644
--- a/priv/gettext/it/LC_MESSAGES/errors.po
+++ b/priv/gettext/it/LC_MESSAGES/errors.po
@@ -110,7 +110,7 @@ msgstr "Il profilo corrente non è membro di questo gruppo"
 msgid "Current profile is not an administrator of the selected group"
 msgstr "Il profilo corrente non è amministratore del gruppo selezionato"
 
-#: lib/graphql/resolvers/user.ex:644
+#: lib/graphql/resolvers/user.ex:673
 #, elixir-autogen, elixir-format
 msgid "Error while saving user settings"
 msgstr "Errore nel salvare le preferenze utente"
@@ -153,8 +153,8 @@ msgstr "Nessun profilo trovato per l'utente moderatore"
 msgid "No user to validate with this email was found"
 msgstr "Nessun utente da convalidare trovato con questa email"
 
-#: lib/graphql/resolvers/person.ex:337
-#: lib/graphql/resolvers/user.ex:330
+#: lib/graphql/resolvers/person.ex:339
+#: lib/graphql/resolvers/user.ex:337
 #, elixir-autogen, elixir-format
 msgid "No user with this email was found"
 msgstr "Nessun utente con questa email"
@@ -162,12 +162,12 @@ msgstr "Nessun utente con questa email"
 #: lib/graphql/resolvers/feed_token.ex:28
 #: lib/graphql/resolvers/participant.ex:32
 #: lib/graphql/resolvers/participant.ex:210
-#: lib/graphql/resolvers/person.ex:245
-#: lib/graphql/resolvers/person.ex:376
-#: lib/graphql/resolvers/person.ex:412
-#: lib/graphql/resolvers/person.ex:419
-#: lib/graphql/resolvers/person.ex:448
-#: lib/graphql/resolvers/person.ex:463
+#: lib/graphql/resolvers/person.ex:247
+#: lib/graphql/resolvers/person.ex:378
+#: lib/graphql/resolvers/person.ex:414
+#: lib/graphql/resolvers/person.ex:421
+#: lib/graphql/resolvers/person.ex:450
+#: lib/graphql/resolvers/person.ex:465
 #, elixir-autogen, elixir-format
 msgid "Profile is not owned by authenticated user"
 msgstr "L'utente autenticato non è propietario di questo profilo"
@@ -177,41 +177,42 @@ msgstr "L'utente autenticato non è propietario di questo profilo"
 msgid "Registrations are not open"
 msgstr "Le registrazioni non sono aperte"
 
-#: lib/graphql/resolvers/user.ex:461
+#: lib/graphql/resolvers/user.ex:474
 #, elixir-autogen, elixir-format
 msgid "The current password is invalid"
 msgstr "la password corrente non è valida"
 
-#: lib/graphql/resolvers/admin.ex:336
-#: lib/graphql/resolvers/user.ex:504
+#: lib/graphql/resolvers/admin.ex:334
+#: lib/graphql/resolvers/user.ex:527
 #, elixir-autogen, elixir-format
 msgid "The new email doesn't seem to be valid"
 msgstr "La nuova email sembra non valida"
 
-#: lib/graphql/resolvers/admin.ex:339
-#: lib/graphql/resolvers/user.ex:507
+#: lib/graphql/resolvers/admin.ex:323
+#: lib/graphql/resolvers/user.ex:514
 #, elixir-autogen, elixir-format
 msgid "The new email must be different"
 msgstr "La nuova email dev'essere diversa"
 
-#: lib/graphql/resolvers/user.ex:464
+#: lib/graphql/resolvers/user.ex:477
 #, elixir-autogen, elixir-format
 msgid "The new password must be different"
 msgstr "La nuova password deve essere diversa"
 
-#: lib/graphql/resolvers/user.ex:511
-#: lib/graphql/resolvers/user.ex:573
-#: lib/graphql/resolvers/user.ex:576
+#: lib/graphql/resolvers/user.ex:518
+#: lib/graphql/resolvers/user.ex:602
+#: lib/graphql/resolvers/user.ex:605
 #, elixir-autogen, elixir-format
 msgid "The password provided is invalid"
 msgstr "La password assegnata non è valida"
 
-#: lib/graphql/resolvers/user.ex:468
+#: lib/graphql/resolvers/user.ex:361
+#: lib/graphql/resolvers/user.ex:481
 #, elixir-autogen, elixir-format
 msgid "The password you have chosen is too short. Please make sure your password contains at least 6 characters."
 msgstr "la password scelta è troppo corta, deve avere almeno 6 caratteri."
 
-#: lib/graphql/resolvers/user.ex:323
+#: lib/graphql/resolvers/user.ex:330
 #, elixir-autogen, elixir-format
 msgid "This user can't reset their password"
 msgstr "Questo utente non può resettare la password"
@@ -227,12 +228,12 @@ msgstr "L'utente è stato disabilitato"
 msgid "Unable to validate user"
 msgstr "Impossibile convalidare l'utente"
 
-#: lib/graphql/resolvers/user.ex:554
+#: lib/graphql/resolvers/user.ex:583
 #, elixir-autogen, elixir-format
 msgid "User already disabled"
 msgstr "Utente già disabilitato"
 
-#: lib/graphql/resolvers/user.ex:619
+#: lib/graphql/resolvers/user.ex:648
 #, elixir-autogen, elixir-format
 msgid "User requested is not logged-in"
 msgstr "L'utente richiesto non è loggato"
@@ -257,12 +258,12 @@ msgstr "Non puoi unirti a questo gruppo"
 msgid "You may not list groups unless moderator."
 msgstr "Non è possibile elencare i gruppi a meno che non sia un moderatore."
 
-#: lib/graphql/resolvers/user.ex:519
+#: lib/graphql/resolvers/user.ex:503
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to change your email"
 msgstr "È necessario effettuare il login per modificare la tua email"
 
-#: lib/graphql/resolvers/user.ex:476
+#: lib/graphql/resolvers/user.ex:489
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to change your password"
 msgstr "È necessario effettuare il login per modificare la tua password"
@@ -272,7 +273,7 @@ msgstr "È necessario effettuare il login per modificare la tua password"
 msgid "You need to be logged-in to delete a group"
 msgstr "È necessario effettuare il login per eliminare un gruppo"
 
-#: lib/graphql/resolvers/user.ex:581
+#: lib/graphql/resolvers/user.ex:610
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to delete your account"
 msgstr "È necessario effettuare il login per eliminare il tuo account"
@@ -299,12 +300,6 @@ msgstr ""
 "È necessario disporre di un token esistente per ottenere un token di "
 "aggiornamento"
 
-#: lib/graphql/resolvers/user.ex:306
-#: lib/graphql/resolvers/user.ex:333
-#, elixir-autogen, elixir-format
-msgid "You requested again a confirmation email too soon"
-msgstr "Hai richiesto di nuovo un'e-mail di conferma troppo presto"
-
 #: lib/graphql/resolvers/user.ex:180
 #, elixir-autogen, elixir-format
 msgid "Your email is not on the allowlist"
@@ -357,17 +352,17 @@ msgstr "Un'email valida è richiesta dalla vostra istanza"
 msgid "Anonymous participation is not enabled"
 msgstr "La partecipazione anonima non è abilitata"
 
-#: lib/graphql/resolvers/person.ex:219
+#: lib/graphql/resolvers/person.ex:221
 #, elixir-autogen, elixir-format
 msgid "Cannot remove the last administrator of a group"
 msgstr "Impossibile rimuovere l'ultimo amministratore di un gruppo"
 
-#: lib/graphql/resolvers/person.ex:216
+#: lib/graphql/resolvers/person.ex:218
 #, elixir-autogen, elixir-format
 msgid "Cannot remove the last identity of a user"
 msgstr "Impossibile rimuovere l'ultima identità di un utente"
 
-#: lib/graphql/resolvers/comment.ex:147
+#: lib/graphql/resolvers/comment.ex:153
 #, elixir-autogen, elixir-format
 msgid "Comment is already deleted"
 msgstr "Commento già cancellato"
@@ -395,8 +390,8 @@ msgid "Event id not found"
 msgstr "ID evento non trovato"
 
 #: lib/graphql/error.ex:114
-#: lib/graphql/resolvers/event.ex:355
-#: lib/graphql/resolvers/event.ex:407
+#: lib/graphql/resolvers/event.ex:382
+#: lib/graphql/resolvers/event.ex:434
 #, elixir-autogen, elixir-format
 msgid "Event not found"
 msgstr "Evento non trovato"
@@ -404,7 +399,7 @@ msgstr "Evento non trovato"
 #: lib/graphql/resolvers/participant.ex:87
 #: lib/graphql/resolvers/participant.ex:128
 #: lib/graphql/resolvers/participant.ex:155
-#: lib/graphql/resolvers/participant.ex:336
+#: lib/graphql/resolvers/participant.ex:343
 #, elixir-autogen, elixir-format
 msgid "Event with this ID %{id} doesn't exist"
 msgstr "L'evento con questo ID %{id} non esiste"
@@ -414,7 +409,7 @@ msgstr "L'evento con questo ID %{id} non esiste"
 msgid "Internal Error"
 msgstr "Errore Interno"
 
-#: lib/graphql/resolvers/discussion.ex:219
+#: lib/graphql/resolvers/discussion.ex:222
 #, elixir-autogen, elixir-format
 msgid "No discussion with ID %{id}"
 msgstr "Nessuna discussione con l'ID %{id}"
@@ -481,10 +476,10 @@ msgstr "Il profilo è già un membro diquesto gruppo"
 #: lib/graphql/resolvers/post.ex:133
 #: lib/graphql/resolvers/post.ex:175
 #: lib/graphql/resolvers/post.ex:209
-#: lib/graphql/resolvers/resource.ex:90
-#: lib/graphql/resolvers/resource.ex:135
-#: lib/graphql/resolvers/resource.ex:168
-#: lib/graphql/resolvers/resource.ex:202
+#: lib/graphql/resolvers/resource.ex:92
+#: lib/graphql/resolvers/resource.ex:137
+#: lib/graphql/resolvers/resource.ex:170
+#: lib/graphql/resolvers/resource.ex:204
 #: lib/graphql/resolvers/todos.ex:58
 #: lib/graphql/resolvers/todos.ex:83
 #: lib/graphql/resolvers/todos.ex:110
@@ -496,7 +491,7 @@ msgid "Profile is not member of group"
 msgstr "Il profilo non è membro del gruppo"
 
 #: lib/graphql/resolvers/actor.ex:67
-#: lib/graphql/resolvers/person.ex:242
+#: lib/graphql/resolvers/person.ex:244
 #, elixir-autogen, elixir-format
 msgid "Profile not found"
 msgstr "Profilo non trovato"
@@ -506,8 +501,8 @@ msgstr "Profilo non trovato"
 msgid "Report not found"
 msgstr "Segnalazione non trovata"
 
-#: lib/graphql/resolvers/resource.ex:172
-#: lib/graphql/resolvers/resource.ex:199
+#: lib/graphql/resolvers/resource.ex:174
+#: lib/graphql/resolvers/resource.ex:201
 #, elixir-autogen, elixir-format
 msgid "Resource doesn't exist"
 msgstr "La risorsa non esiste"
@@ -517,7 +512,7 @@ msgstr "La risorsa non esiste"
 msgid "The event has already reached its maximum capacity"
 msgstr "L'evento ha già raggiunto la sua massima capacità"
 
-#: lib/graphql/resolvers/participant.ex:282
+#: lib/graphql/resolvers/participant.ex:289
 #, elixir-autogen, elixir-format
 msgid "This token is invalid"
 msgstr "Questo token non è valido"
@@ -551,7 +546,7 @@ msgstr "Il token non è un UUID valido"
 msgid "User not found"
 msgstr "Utente non trovato"
 
-#: lib/graphql/resolvers/person.ex:333
+#: lib/graphql/resolvers/person.ex:335
 #, elixir-autogen, elixir-format
 msgid "You already have a profile for this user"
 msgstr "Hai già un profilo per questo utente"
@@ -573,7 +568,7 @@ msgstr "Non sei un membro di questo gruppo"
 msgid "You are not a moderator or admin for this group"
 msgstr "Non sei un moderatore o amministratore di questo gruppo"
 
-#: lib/graphql/resolvers/comment.ex:80
+#: lib/graphql/resolvers/comment.ex:74
 #, elixir-autogen, elixir-format
 msgid "You are not allowed to create a comment if not connected"
 msgstr "Non è consentito creare un commento se non si è collegati"
@@ -583,7 +578,7 @@ msgstr "Non è consentito creare un commento se non si è collegati"
 msgid "You are not allowed to create a feed token if not connected"
 msgstr "Non puoi creare un token di rifornimento senza connessione"
 
-#: lib/graphql/resolvers/comment.ex:155
+#: lib/graphql/resolvers/comment.ex:161
 #, elixir-autogen, elixir-format
 msgid "You are not allowed to delete a comment if not connected"
 msgstr "Non è consentito eliminare un commento se non si è collegati"
@@ -593,7 +588,7 @@ msgstr "Non è consentito eliminare un commento se non si è collegati"
 msgid "You are not allowed to delete a feed token if not connected"
 msgstr "Non puoi eliminare un token di rifornimento senza connettersi"
 
-#: lib/graphql/resolvers/comment.ex:114
+#: lib/graphql/resolvers/comment.ex:120
 #, elixir-autogen, elixir-format
 msgid "You are not allowed to update a comment if not connected"
 msgstr "Non è consentito aggiornare un commento se non si è collegati"
@@ -612,12 +607,12 @@ msgstr ""
 "Non puoi impostare te stesso per un ruolo di membro inferiore per questo "
 "gruppo perché sei l'unico amministratore"
 
-#: lib/graphql/resolvers/comment.ex:143
+#: lib/graphql/resolvers/comment.ex:149
 #, elixir-autogen, elixir-format
 msgid "You cannot delete this comment"
 msgstr "Non puoi eliminare questo commento"
 
-#: lib/graphql/resolvers/event.ex:403
+#: lib/graphql/resolvers/event.ex:430
 #, elixir-autogen, elixir-format
 msgid "You cannot delete this event"
 msgstr "Non puoi eliminare questo evento"
@@ -652,21 +647,21 @@ msgstr "Devi essere connesso e un moderatore per aggiornare un rapporto"
 msgid "You need to be logged-in and a moderator to view a report"
 msgstr "Devi essere connesso e un moderatore per visualizzare un rapporto"
 
-#: lib/graphql/resolvers/admin.ex:252
+#: lib/graphql/resolvers/admin.ex:258
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in and an administrator to access admin settings"
 msgstr ""
 "Devi essere connesso e un moderatore per accedere alle opzioni "
 "dell'amministratore"
 
-#: lib/graphql/resolvers/admin.ex:236
+#: lib/graphql/resolvers/admin.ex:242
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in and an administrator to access dashboard statistics"
 msgstr ""
 "Devi essere connesso e un moderatore per accedere alle statistiche del "
 "dashboard"
 
-#: lib/graphql/resolvers/admin.ex:278
+#: lib/graphql/resolvers/admin.ex:283
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in and an administrator to save admin settings"
 msgstr ""
@@ -678,12 +673,12 @@ msgstr ""
 msgid "You need to be logged-in to access discussions"
 msgstr "Devi essere connesso per accedere alle discussioni"
 
-#: lib/graphql/resolvers/resource.ex:96
+#: lib/graphql/resolvers/resource.ex:98
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to access resources"
 msgstr "Devi essere connesso per accedere alle risorse"
 
-#: lib/graphql/resolvers/event.ex:313
+#: lib/graphql/resolvers/event.ex:321
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to create events"
 msgstr "Devi essere connesso per creare eventi"
@@ -698,12 +693,12 @@ msgstr "Devi essere connesso per creare dei post"
 msgid "You need to be logged-in to create reports"
 msgstr "Devi essere connesso per creare rapporti"
 
-#: lib/graphql/resolvers/resource.ex:140
+#: lib/graphql/resolvers/resource.ex:142
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to create resources"
 msgstr "Devi essere connesso per creare risorse"
 
-#: lib/graphql/resolvers/event.ex:412
+#: lib/graphql/resolvers/event.ex:439
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to delete an event"
 msgstr "Devi essere connesso per eliminare un evento"
@@ -713,7 +708,7 @@ msgstr "Devi essere connesso per eliminare un evento"
 msgid "You need to be logged-in to delete posts"
 msgstr "Devi essere connesso per eliminare dei post"
 
-#: lib/graphql/resolvers/resource.ex:207
+#: lib/graphql/resolvers/resource.ex:209
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to delete resources"
 msgstr "Devi essere connesso per eliminare risorse"
@@ -728,7 +723,7 @@ msgstr "Devi essere connesso per partecipare a un evento"
 msgid "You need to be logged-in to leave an event"
 msgstr "Devi essere connesso per lasciare un evento"
 
-#: lib/graphql/resolvers/event.ex:369
+#: lib/graphql/resolvers/event.ex:396
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to update an event"
 msgstr "Devi essere connesso per aggiornare un evento"
@@ -738,17 +733,17 @@ msgstr "Devi essere connesso per aggiornare un evento"
 msgid "You need to be logged-in to update posts"
 msgstr "Devi essere connesso per aggiornare dei post"
 
-#: lib/graphql/resolvers/resource.ex:177
+#: lib/graphql/resolvers/resource.ex:179
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to update resources"
 msgstr "Devi essere connesso per aggiornare le risorse"
 
-#: lib/graphql/resolvers/resource.ex:236
+#: lib/graphql/resolvers/resource.ex:233
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to view a resource preview"
 msgstr "Devi essere connesso per visualizzare l'anteprima di una risorsa"
 
-#: lib/graphql/resolvers/resource.ex:132
+#: lib/graphql/resolvers/resource.ex:134
 #, elixir-autogen, elixir-format
 msgid "Parent resource doesn't belong to this group"
 msgstr "La risorsa principale non appartiene a questo gruppo"
@@ -836,12 +831,12 @@ msgstr "Il file non ha un tipo MIME consentito."
 msgid "Profile is not administrator for the group"
 msgstr "Il profilo non è amministratore del gruppo"
 
-#: lib/graphql/resolvers/event.ex:358
+#: lib/graphql/resolvers/event.ex:385
 #, elixir-autogen, elixir-format
 msgid "You can't edit this event."
 msgstr "Non puoi modificare questo evento."
 
-#: lib/graphql/resolvers/event.ex:361
+#: lib/graphql/resolvers/event.ex:388
 #, elixir-autogen, elixir-format
 msgid "You can't attribute this event to this profile."
 msgstr "Non puo iattribuire questo evento a questo profilo."
@@ -861,7 +856,7 @@ msgstr "Questo memebro è già stato rifiutato."
 msgid "You don't have the right to remove this member."
 msgstr "Non hai il diritto di rimuovere questo membro."
 
-#: lib/mobilizon/actors/actor.ex:377
+#: lib/mobilizon/actors/actor.ex:378
 #, elixir-autogen, elixir-format
 msgid "This username is already taken."
 msgstr "Questo nome utente è già in uso."
@@ -873,7 +868,7 @@ msgstr ""
 "Devi fornire un ID o la stringa utente (ad es. <em>utente@mobilizon.sm</em>) "
 "per accedere ad una discussione"
 
-#: lib/graphql/resolvers/event.ex:275
+#: lib/graphql/resolvers/event.ex:276
 #, elixir-autogen, elixir-format
 msgid "Organizer profile is not owned by the user"
 msgstr "Il profilo dell'organizzatore non è di proprietà dell'utente"
@@ -885,45 +880,45 @@ msgstr "L'ID profilo fornito non è quello del profilo anonimo"
 
 #: lib/graphql/resolvers/group.ex:181
 #: lib/graphql/resolvers/group.ex:223
-#: lib/graphql/resolvers/person.ex:157
-#: lib/graphql/resolvers/person.ex:191
-#: lib/graphql/resolvers/person.ex:324
+#: lib/graphql/resolvers/person.ex:159
+#: lib/graphql/resolvers/person.ex:193
+#: lib/graphql/resolvers/person.ex:326
 #, elixir-autogen, elixir-format
 msgid "The provided picture is too heavy"
 msgstr "L'immagine inserita è troppo pesante"
 
-#: lib/graphql/resolvers/resource.ex:129
+#: lib/graphql/resolvers/resource.ex:131
 #, elixir-autogen, elixir-format
 msgid "Error while creating resource"
 msgstr "Errore durante la creazione della risorsa"
 
-#: lib/graphql/resolvers/user.ex:537
+#: lib/graphql/resolvers/user.ex:566
 #, elixir-autogen, elixir-format
 msgid "Invalid activation token"
 msgstr "Token di attivazione non valido"
 
-#: lib/graphql/resolvers/resource.ex:226
+#: lib/graphql/resolvers/resource.ex:228
 #, elixir-autogen, elixir-format
 msgid "Unable to fetch resource details from this URL."
 msgstr "Impossibile recuperare i dettagli della risorsa da questa URL."
 
 #: lib/graphql/resolvers/event.ex:165
 #: lib/graphql/resolvers/participant.ex:253
-#: lib/graphql/resolvers/participant.ex:328
+#: lib/graphql/resolvers/participant.ex:335
 #, elixir-autogen, elixir-format
 msgid "Provided profile doesn't have moderator permissions on this event"
 msgstr ""
 "Il profilo del moderatore fornito non dispone dell'autorizzazione per questo "
 "evento"
 
-#: lib/graphql/resolvers/event.ex:286
+#: lib/graphql/resolvers/event.ex:294
 #, elixir-autogen, elixir-format
 msgid "Organizer profile doesn't have permission to create an event on behalf of this group"
 msgstr ""
 "Il profilo dell'organizzatore non ha il permesso di creare un evento per "
 "conto di questo gruppo"
 
-#: lib/graphql/resolvers/event.ex:349
+#: lib/graphql/resolvers/event.ex:369
 #, elixir-autogen, elixir-format
 msgid "This profile doesn't have permission to update an event on behalf of this group"
 msgstr ""
@@ -937,7 +932,7 @@ msgstr ""
 "All'email è stata negata la registrazione o viene utilizzato un provider "
 "email non consentito"
 
-#: lib/graphql/resolvers/comment.ex:150
+#: lib/graphql/resolvers/comment.ex:156
 #, elixir-autogen, elixir-format
 msgid "Comment not found"
 msgstr "Evento non trovato"
@@ -947,12 +942,12 @@ msgstr "Evento non trovato"
 msgid "Error while creating a discussion"
 msgstr "Errore durante la creazione della risorsa"
 
-#: lib/graphql/resolvers/user.ex:658
+#: lib/graphql/resolvers/user.ex:687
 #, elixir-autogen, elixir-format
 msgid "Error while updating locale"
 msgstr "Errore durante l'aggiornamento del rapporto"
 
-#: lib/graphql/resolvers/person.ex:327
+#: lib/graphql/resolvers/person.ex:329
 #, elixir-autogen, elixir-format
 msgid "Error while uploading pictures"
 msgstr "Errore durante l'aggiornamento del rapporto"
@@ -967,13 +962,13 @@ msgstr "Non è stato possibile abbandonare l'evento"
 msgid "Failed to update the group"
 msgstr "Non è stato possibile aggiornare il gruppo"
 
-#: lib/graphql/resolvers/admin.ex:333
-#: lib/graphql/resolvers/user.ex:501
+#: lib/graphql/resolvers/admin.ex:357
+#: lib/graphql/resolvers/user.ex:547
 #, elixir-autogen, elixir-format
 msgid "Failed to update user email"
 msgstr "Non è stato possibile aggiornare l'email dell'utente"
 
-#: lib/graphql/resolvers/user.ex:533
+#: lib/graphql/resolvers/user.ex:562
 #, elixir-autogen, elixir-format
 msgid "Failed to validate user email"
 msgstr "Impossibile convalidare l'utente"
@@ -983,38 +978,38 @@ msgstr "Impossibile convalidare l'utente"
 msgid "The anonymous actor ID is invalid"
 msgstr "L'ID dell'attore anonimo non è valido"
 
-#: lib/graphql/resolvers/resource.ex:165
+#: lib/graphql/resolvers/resource.ex:167
 #, elixir-autogen, elixir-format
 msgid "Unknown error while updating resource"
 msgstr "Errore sconosciuto durante l'aggiornamento della risorsa"
 
-#: lib/graphql/resolvers/comment.ex:105
+#: lib/graphql/resolvers/comment.ex:111
 #, elixir-autogen, elixir-format
 msgid "You are not the comment creator"
 msgstr "Non sei il creatore del commento"
 
-#: lib/graphql/resolvers/user.ex:458
+#: lib/graphql/resolvers/user.ex:471
 #, elixir-autogen, elixir-format
 msgid "You cannot change your password."
 msgstr "Non è possibile cambiare la propria password."
 
-#: lib/graphql/resolvers/participant.ex:321
+#: lib/graphql/resolvers/participant.ex:328
 #, elixir-autogen, elixir-format
 msgid "Format not supported"
 msgstr "Formato non supportato"
 
-#: lib/graphql/resolvers/participant.ex:305
+#: lib/graphql/resolvers/participant.ex:312
 #, elixir-autogen, elixir-format
 msgid "A dependency needed to export to %{format} is not installed"
 msgstr ""
 "Una dipendenza necessaria per l'esportazione in %{format} non è installata"
 
-#: lib/graphql/resolvers/participant.ex:313
+#: lib/graphql/resolvers/participant.ex:320
 #, elixir-autogen, elixir-format
 msgid "An error occured while saving export"
 msgstr "Si è verificato un errore durante il salvataggio dell'esportazione"
 
-#: lib/web/controllers/export_controller.ex:30
+#: lib/web/controllers/export_controller.ex:32
 #, elixir-autogen, elixir-format
 msgid "Export to format %{format} is not enabled on this instance"
 msgstr "L'esportazione nel formato %{format} non è abilitata su questa istanza"
@@ -1024,17 +1019,17 @@ msgstr "L'esportazione nel formato %{format} non è abilitata su questa istanza"
 msgid "Only admins can create groups"
 msgstr "Solo gli amministratori possono creare gruppi"
 
-#: lib/graphql/resolvers/event.ex:279
+#: lib/graphql/resolvers/event.ex:280
 #, elixir-autogen, elixir-format
 msgid "Only groups can create events"
 msgstr "Solo i gruppi possono creare eventi"
 
-#: lib/graphql/resolvers/event.ex:305
+#: lib/graphql/resolvers/event.ex:313
 #, elixir-autogen, elixir-format
 msgid "Unknown error while creating event"
 msgstr "Errore sconosciuto durante la creazione dell'evento"
 
-#: lib/graphql/resolvers/user.ex:514
+#: lib/graphql/resolvers/user.ex:498
 #, elixir-autogen, elixir-format
 msgid "User cannot change email"
 msgstr "L'utente non può modificare l'email"
@@ -1049,12 +1044,12 @@ msgstr "Il follow non corrisponde al tuo account"
 msgid "Follow not found"
 msgstr "Follow non trovato"
 
-#: lib/graphql/resolvers/user.ex:379
+#: lib/graphql/resolvers/user.ex:392
 #, elixir-autogen, elixir-format
 msgid "Profile with username %{username} not found"
 msgstr "La persona con il nome utente %{username} non è stata trovata"
 
-#: lib/graphql/resolvers/user.ex:374
+#: lib/graphql/resolvers/user.ex:387
 #, elixir-autogen, elixir-format
 msgid "This profile does not belong to you"
 msgstr "Questo profilo non ti appartiene"
@@ -1099,22 +1094,22 @@ msgstr "Per rimuovere un membro è necessario aver effettuato il login"
 msgid "Your email seems to be using an invalid format"
 msgstr "La tua email sembra utilizzare un formato non valido"
 
-#: lib/graphql/resolvers/admin.ex:382
+#: lib/graphql/resolvers/admin.ex:399
 #, elixir-autogen, elixir-format
 msgid "Can't confirm an already confirmed user"
 msgstr "Non è possibile confermare un utente già confermato"
 
-#: lib/graphql/resolvers/admin.ex:386
+#: lib/graphql/resolvers/admin.ex:403
 #, elixir-autogen, elixir-format
 msgid "Deconfirming users is not supported"
 msgstr "La deconferma degli utenti non è supportata"
 
-#: lib/graphql/resolvers/admin.ex:358
+#: lib/graphql/resolvers/admin.ex:375
 #, elixir-autogen, elixir-format
 msgid "The new role must be different"
 msgstr "La nuova email dev'essere diversa"
 
-#: lib/graphql/resolvers/admin.ex:309
+#: lib/graphql/resolvers/admin.ex:314
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in and an administrator to edit an user's details"
 msgstr ""
@@ -1126,12 +1121,12 @@ msgstr ""
 msgid "A profile or group with that name already exists"
 msgstr "Esiste già un profilo o un gruppo con quel nome"
 
-#: lib/graphql/resolvers/admin.ex:519
+#: lib/graphql/resolvers/admin.ex:542
 #, elixir-autogen, elixir-format
 msgid "Unable to find an instance to follow at this address"
 msgstr "Non è stato possibile trovare un'istanza da seguire a questo indirizzo"
 
-#: lib/mobilizon/actors/actor.ex:396
+#: lib/mobilizon/actors/actor.ex:397
 #, elixir-autogen, elixir-format
 msgid "Username must only contain alphanumeric lowercased characters and underscores."
 msgstr ""
@@ -1139,17 +1134,17 @@ msgstr ""
 "trattini bassi."
 
 #: lib/graphql/resolvers/user.ex:303
-#: lib/graphql/resolvers/user.ex:326
+#: lib/graphql/resolvers/user.ex:333
 #, elixir-autogen, elixir-format
 msgid "This email doesn't seem to be valid"
 msgstr "Questa email non sembra essere valida"
 
-#: lib/graphql/resolvers/comment.ex:65
+#: lib/graphql/resolvers/comment.ex:59
 #, elixir-autogen, elixir-format
 msgid "This comment was detected as spam."
 msgstr "This comment was detected as spam."
 
-#: lib/graphql/resolvers/event.ex:293
+#: lib/graphql/resolvers/event.ex:301
 #, elixir-autogen, elixir-format
 msgid "This event was detected as spam."
 msgstr "Questo evento è stato rilevato come spam."
@@ -1172,7 +1167,7 @@ msgstr ""
 "Per creare una nota su una segnalazione è necessario essere moderatore o "
 "amministratore."
 
-#: lib/graphql/resolvers/person.ex:330
+#: lib/graphql/resolvers/person.ex:332
 #, elixir-autogen, elixir-format
 msgid "Your profile was detected as spam."
 msgstr "Il tuo profilo è stato rilevato come spam."
@@ -1182,7 +1177,7 @@ msgstr "Il tuo profilo è stato rilevato come spam."
 msgid "Your registration has been detected as spam and cannot be processed."
 msgstr "La sua registrazione è stata rilevata come spam e non può proseguire."
 
-#: lib/web/controllers/application_controller.ex:86
+#: lib/web/controllers/application_controller.ex:88
 #, elixir-autogen, elixir-format
 msgid "All of name, scope and redirect_uri parameters are required to create an application"
 msgstr ""
@@ -1197,171 +1192,227 @@ msgstr ""
 msgid "Application token not found"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:89
+#: lib/graphql/resolvers/application.ex:90
 #, elixir-autogen, elixir-format, fuzzy
 msgid "Error while revoking token"
 msgstr "Errore nel salvare la segnalazione"
 
-#: lib/web/controllers/application_controller.ex:59
+#: lib/web/controllers/application_controller.ex:61
 #, elixir-autogen, elixir-format
 msgid "Impossible to create application."
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:356
+#: lib/web/controllers/application_controller.ex:358
 #, elixir-autogen, elixir-format
 msgid "Incorrect parameters sent. You need to provide at least the grant_type and client_id parameters, depending on the grant type being used."
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:329
+#: lib/web/controllers/application_controller.ex:331
 #, elixir-autogen, elixir-format
 msgid "Invalid client credentials provided"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:337
+#: lib/web/controllers/application_controller.ex:339
 #, elixir-autogen, elixir-format
 msgid "Invalid refresh token provided"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:170
-#: lib/web/controllers/application_controller.ex:401
+#: lib/web/controllers/application_controller.ex:172
+#: lib/web/controllers/application_controller.ex:403
 #, elixir-autogen, elixir-format
 msgid "No application was found with this client_id"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:37
+#: lib/graphql/resolvers/application.ex:38
 #, elixir-autogen, elixir-format
 msgid "No application with this client_id was found"
 msgstr ""
 
-#: lib/graphql/authorization.ex:80
+#: lib/graphql/authorization.ex:81
 #, elixir-autogen, elixir-format
 msgid "Not authorized to access field %{field}"
 msgstr ""
 
-#: lib/graphql/authorization.ex:70
-#: lib/graphql/authorization.ex:75
+#: lib/graphql/authorization.ex:71
+#: lib/graphql/authorization.ex:76
 #, elixir-autogen, elixir-format
 msgid "Not authorized to access object %{object}"
 msgstr ""
 
-#: lib/graphql/authorization.ex:63
+#: lib/graphql/authorization.ex:64
 #, elixir-autogen, elixir-format
 msgid "Not authorized to access this %{object_type}"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:279
+#: lib/web/controllers/application_controller.ex:281
 #, elixir-autogen, elixir-format
 msgid "Please slow down the rate of your requests"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:267
+#: lib/web/controllers/application_controller.ex:269
 #, elixir-autogen, elixir-format
 msgid "The authorization request is still pending"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:249
+#: lib/web/controllers/application_controller.ex:251
 #, elixir-autogen, elixir-format
 msgid "The client_id provided or the device_code associated is invalid"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:133
+#: lib/graphql/resolvers/application.ex:139
 #, elixir-autogen, elixir-format
 msgid "The device user code was not provided before approving the application"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:304
+#: lib/web/controllers/application_controller.ex:306
 #, elixir-autogen, elixir-format
 msgid "The given device_code has expired"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:44
+#: lib/graphql/resolvers/application.ex:45
 #, elixir-autogen, elixir-format
 msgid "The given redirect_uri is not in the list of allowed redirect URIs"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:158
+#: lib/web/controllers/application_controller.ex:160
 #, elixir-autogen, elixir-format
 msgid "The given scope is not in the list of the app declared scopes"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:109
-#: lib/graphql/resolvers/application.ex:146
+#: lib/graphql/resolvers/application.ex:112
+#: lib/graphql/resolvers/application.ex:154
 #, elixir-autogen, elixir-format
 msgid "The given user code has expired"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:112
-#: lib/graphql/resolvers/application.ex:140
+#: lib/graphql/resolvers/application.ex:118
+#: lib/graphql/resolvers/application.ex:146
 #, elixir-autogen, elixir-format
 msgid "The given user code is invalid"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:411
+#: lib/web/controllers/application_controller.ex:413
 #, elixir-autogen, elixir-format
 msgid "The provided client_id does not match the provided code"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:414
+#: lib/web/controllers/application_controller.ex:416
 #, elixir-autogen, elixir-format
 msgid "The provided client_secret is invalid"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:407
+#: lib/web/controllers/application_controller.ex:409
 #, elixir-autogen, elixir-format
 msgid "The provided code is invalid or expired"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:418
+#: lib/web/controllers/application_controller.ex:420
 #, elixir-autogen, elixir-format
 msgid "The provided scope is invalid or not included in the app declared scopes"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:45
+#: lib/web/controllers/application_controller.ex:47
 #, elixir-autogen, elixir-format
 msgid "The scope parameter is not a space separated list of valid scopes"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:292
+#: lib/web/controllers/application_controller.ex:294
 #, elixir-autogen, elixir-format
 msgid "The user rejected the requested authorization"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:404
+#: lib/web/controllers/application_controller.ex:406
 #, elixir-autogen, elixir-format
 msgid "This redirect URI is not allowed"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:381
+#: lib/web/controllers/application_controller.ex:383
 #, elixir-autogen, elixir-format, fuzzy
 msgid "Token not found"
 msgstr "Evento non trovato"
 
-#: lib/web/controllers/application_controller.ex:72
+#: lib/web/controllers/application_controller.ex:74
 #, elixir-autogen, elixir-format
 msgid "Too many requests"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:184
+#: lib/web/controllers/application_controller.ex:186
 #, elixir-autogen, elixir-format
 msgid "Unable to produce device code"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:373
+#: lib/web/controllers/application_controller.ex:375
 #, elixir-autogen, elixir-format
 msgid "Unable to revoke token"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:198
+#: lib/web/controllers/application_controller.ex:200
 #, elixir-autogen, elixir-format
 msgid "You need to pass both client_id and scope as parameters to obtain a device code"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:136
+#: lib/web/controllers/application_controller.ex:138
 #, elixir-autogen, elixir-format
 msgid "You need to provide a valid redirect_uri to autorize an application"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:126
+#: lib/web/controllers/application_controller.ex:128
 #, elixir-autogen, elixir-format
 msgid "You need to specify client_id, redirect_uri, scope and state to autorize an application"
 msgstr ""
+
+#: lib/graphql/resolvers/user.ex:306
+#, elixir-autogen, elixir-format
+msgid "Couldn't send an email. Internal error."
+msgstr ""
+
+#: lib/graphql/resolvers/participant.ex:286
+#, elixir-autogen, elixir-format
+msgid "Participation is already confirmed"
+msgstr ""
+
+#: lib/graphql/resolvers/participant.ex:283
+#, elixir-autogen, elixir-format
+msgid "Participation is confirmed but not approved yet by an organizer"
+msgstr ""
+
+#: lib/graphql/resolvers/event.ex:287
+#: lib/graphql/resolvers/event.ex:376
+#, elixir-autogen, elixir-format
+msgid "Providing external registration is not allowed"
+msgstr ""
+
+#: lib/graphql/resolvers/push_subscription.ex:48
+#, elixir-autogen, elixir-format
+msgid "The same push subscription has already been registered"
+msgstr ""
+
+#: lib/graphql/resolvers/admin.ex:536
+#, elixir-autogen, elixir-format
+msgid "This instance is pending follow approval"
+msgstr ""
+
+#: lib/graphql/schema/custom/timezone.ex:23
+#, elixir-autogen, elixir-format
+msgid "Timezone ID %{timezone} is invalid"
+msgstr ""
+
+#: lib/graphql/resolvers/admin.ex:539
+#, elixir-autogen, elixir-format, fuzzy
+msgid "You are already following this instance"
+msgstr "Stai già seguendo questo gruppo"
+
+#: lib/graphql/resolvers/user.ex:310
+#, elixir-autogen, elixir-format, fuzzy
+msgid "You requested again a confirmation email too soon. Please try again in a few minutes"
+msgstr "Hai richiesto di nuovo un'e-mail di conferma troppo presto"
+
+#: lib/graphql/resolvers/user.ex:341
+#, elixir-autogen, elixir-format
+msgid "You requested again a password reset email too soon. Please try again in a few minutes"
+msgstr ""
+
+#: lib/graphql/resolvers/user.ex:368
+#, elixir-autogen, elixir-format
+msgid "The token you provided is invalid. Make sure that the URL is exactly the one provided inside the email you got."
+msgstr ""
diff --git a/priv/gettext/ja/LC_MESSAGES/activity.po b/priv/gettext/ja/LC_MESSAGES/activity.po
index 1a10141cc2ddb0bfdc1846d647c6cb9abca119a0..f390e39fadea26b40d4e292cd83f37a43624f131 100644
--- a/priv/gettext/ja/LC_MESSAGES/activity.po
+++ b/priv/gettext/ja/LC_MESSAGES/activity.po
@@ -475,3 +475,15 @@ msgstr "%{profile}さんが「%{group}」の題の「%{discussion}」の談論
 #, elixir-autogen, elixir-format
 msgid "%{profile} approved the member %{member}."
 msgstr "%{profile}さんが%{member}さんの依頼を承知しました。"
+
+#: lib/service/activity/renderer/event.ex:74
+#: lib/web/templates/email/activity/_event_activity_item.html.heex:55
+#: lib/web/templates/email/activity/_event_activity_item.text.eex:31
+#, elixir-autogen, elixir-format
+msgid "%{profile} joined your event %{event}."
+msgstr ""
+
+#: lib/web/views/email_view.ex:45
+#, elixir-autogen, elixir-format
+msgid "An anonymous profile"
+msgstr ""
diff --git a/priv/gettext/ja/LC_MESSAGES/default.po b/priv/gettext/ja/LC_MESSAGES/default.po
index 7cb744c5c4d91876815c41e25d712f6739b73b54..e8060241872de33e245763576960b70ed8efe8ca 100644
--- a/priv/gettext/ja/LC_MESSAGES/default.po
+++ b/priv/gettext/ja/LC_MESSAGES/default.po
@@ -19,7 +19,7 @@ msgstr ""
 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 ""
 
-#: lib/web/templates/email/report.html.heex:120
+#: lib/web/templates/email/report.html.heex:121
 #, elixir-autogen, elixir-format
 msgid "%{title} by %{creator}"
 msgstr ""
@@ -35,23 +35,17 @@ msgstr ""
 msgid "Ask the community on Framacolibri"
 msgstr ""
 
-#: lib/web/templates/email/report.text.eex:15
+#: lib/web/templates/email/report.text.eex:17
 #, elixir-autogen, elixir-format
 msgid "Comments"
 msgstr "コメント"
 
-#: lib/web/templates/email/report.html.heex:115
-#: lib/web/templates/email/report.text.eex:11
-#, elixir-autogen, elixir-format
-msgid "Event"
-msgstr "イベント"
-
 #: lib/web/email/user.ex:49
 #, elixir-autogen, elixir-format
 msgid "Instructions to reset your password on %{instance}"
 msgstr ""
 
-#: lib/web/templates/email/report.text.eex:21
+#: lib/web/templates/email/report.text.eex:23
 #, elixir-autogen, elixir-format
 msgid "Reason"
 msgstr "理由"
@@ -311,12 +305,12 @@ msgctxt "terms"
 msgid "What information do we collect?"
 msgstr ""
 
-#: lib/web/email/user.ex:182
+#: lib/web/email/user.ex:188
 #, elixir-autogen, elixir-format
 msgid "Mobilizon on %{instance}: confirm your email address"
 msgstr ""
 
-#: lib/web/email/user.ex:159
+#: lib/web/email/user.ex:165
 #, elixir-autogen, elixir-format
 msgid "Mobilizon on %{instance}: email changed"
 msgstr ""
@@ -801,7 +795,7 @@ msgstr ""
 msgid "Event update!"
 msgstr ""
 
-#: lib/web/templates/email/report.html.heex:155
+#: lib/web/templates/email/report.html.heex:158
 #, elixir-autogen, elixir-format
 msgid "Flagged comments"
 msgstr ""
@@ -882,7 +876,7 @@ msgstr ""
 msgid "New email confirmation"
 msgstr ""
 
-#: lib/web/templates/email/report.html.heex:191
+#: lib/web/templates/email/report.html.heex:194
 #, elixir-autogen, elixir-format
 msgid "Reasons for report"
 msgstr "通報理由"
@@ -937,12 +931,12 @@ msgstr ""
 msgid "Verify your email address"
 msgstr ""
 
-#: lib/web/templates/email/report.html.heex:232
+#: lib/web/templates/email/report.html.heex:235
 #, elixir-autogen, elixir-format
 msgid "View report"
 msgstr "通報内容を見る"
 
-#: lib/web/templates/email/report.text.eex:24
+#: lib/web/templates/email/report.text.eex:26
 #, elixir-autogen, elixir-format
 msgid "View report:"
 msgstr ""
@@ -1040,12 +1034,6 @@ msgstr ""
 msgid "As this group was located on another instance, it will continue to work for other instances than this one."
 msgstr ""
 
-#: lib/web/templates/email/group_suspension.html.heex:67
-#: lib/web/templates/email/group_suspension.text.eex:5
-#, elixir-autogen, elixir-format
-msgid "As this group was located on this instance, all of it's data has been irretrievably deleted."
-msgstr ""
-
 #: lib/web/templates/email/group_suspension.html.heex:18
 #: lib/web/templates/email/group_suspension.text.eex:1
 #, elixir-autogen, elixir-format
@@ -1057,7 +1045,7 @@ msgstr ""
 msgid "Your instance's moderation team has decided to suspend %{group_name} (%{group_address}). You are no longer a member of this group."
 msgstr ""
 
-#: lib/web/email/group.ex:107
+#: lib/web/email/group.ex:108
 #, elixir-autogen, elixir-format
 msgid "The group %{group} has been suspended on %{instance}"
 msgstr ""
@@ -1341,16 +1329,6 @@ msgstr "%{instance}のMobilizonサーバーは、一時的にダウンしてい
 msgid "Public feed for %{instance}"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:350
-#, elixir-autogen, elixir-format
-msgid "The password you have choosen is too short. Please make sure your password contains at least 6 charaters."
-msgstr ""
-
-#: lib/graphql/resolvers/user.ex:356
-#, elixir-autogen, elixir-format
-msgid "The token you provided is invalid. Make sure that the URL is exactly the one provided inside the email you got."
-msgstr ""
-
 #: lib/web/email/actor.ex:43
 #, elixir-autogen, elixir-format
 msgid "Your participation to %{event} has been cancelled!"
@@ -1374,63 +1352,63 @@ msgid "Your participation to %{event} on %{instance} has been cancelled!"
 msgstr ""
 
 #. File name template for exported list of participants. Should NOT contain spaces. Make sure the output is going to be something standardized that is acceptable as a file name on most systems.
-#: lib/service/export/participants/csv.ex:81
+#: lib/service/export/participants/csv.ex:97
 #: lib/service/export/participants/ods.ex:86
 #: lib/service/export/participants/pdf.ex:96
 #, elixir-autogen, elixir-format
 msgid "%{event}_participants"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:61
+#: lib/service/export/participants/common.ex:66
 #, elixir-autogen, elixir-format
 msgid "Participant message"
 msgstr "参加者のメッセージ"
 
-#: lib/service/export/participants/common.ex:61
+#: lib/service/export/participants/common.ex:63
 #, elixir-autogen, elixir-format
 msgid "Participant name"
 msgstr "参加者の名前"
 
-#: lib/service/export/participants/common.ex:61
+#: lib/service/export/participants/common.ex:64
 #, elixir-autogen, elixir-format
 msgid "Participant status"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:52
+#: lib/service/export/participants/common.ex:53
 #: lib/web/templates/email/admin/_role.html.heex:3
 #: lib/web/templates/email/admin/_role.text.eex:1
 #, elixir-autogen, elixir-format
 msgid "Administrator"
 msgstr "管理者"
 
-#: lib/service/export/participants/common.ex:55
+#: lib/service/export/participants/common.ex:56
 #, elixir-autogen, elixir-format
 msgid "Creator"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:49
+#: lib/service/export/participants/common.ex:50
 #: lib/web/templates/email/admin/_role.html.heex:5
 #: lib/web/templates/email/admin/_role.text.eex:1
 #, elixir-autogen, elixir-format
 msgid "Moderator"
 msgstr "モデレーター"
 
-#: lib/service/export/participants/common.ex:37
+#: lib/service/export/participants/common.ex:38
 #, elixir-autogen, elixir-format
 msgid "Not approved"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:40
+#: lib/service/export/participants/common.ex:41
 #, elixir-autogen, elixir-format
 msgid "Not confirmed"
 msgstr "確認されていません"
 
-#: lib/service/export/participants/common.ex:46
+#: lib/service/export/participants/common.ex:47
 #, elixir-autogen, elixir-format
 msgid "Participant"
 msgstr "参加者"
 
-#: lib/service/export/participants/common.ex:43
+#: lib/service/export/participants/common.ex:44
 #, elixir-autogen, elixir-format
 msgid "Rejected"
 msgstr "却下"
@@ -1455,7 +1433,7 @@ msgstr "参加者の数"
 msgid "Participants for %{event}"
 msgstr "%{event}への参加者"
 
-#: lib/service/export/participants/common.ex:88
+#: lib/service/export/participants/common.ex:95
 #, elixir-autogen, elixir-format
 msgid "Anonymous participant"
 msgstr "匿名の参加者"
@@ -1574,7 +1552,7 @@ msgstr "参加する:"
 msgid "Title: %{title}"
 msgstr "タイトル: %{title}"
 
-#: lib/web/email/group.ex:46
+#: lib/web/email/group.ex:47
 #, elixir-autogen, elixir-format
 msgid "📅 Just scheduled by %{group}: %{event}"
 msgstr ""
@@ -1991,3 +1969,24 @@ msgstr ""
 #, elixir-autogen, elixir-format
 msgid "Until next time!"
 msgstr ""
+
+#: lib/web/templates/email/group_suspension.html.heex:67
+#: lib/web/templates/email/group_suspension.text.eex:5
+#, elixir-autogen, elixir-format, fuzzy
+msgid "As this group was located on this instance, all of its data has been irretrievably deleted."
+msgstr ""
+
+#: lib/web/templates/email/report.text.eex:11
+#, elixir-autogen, elixir-format, fuzzy
+msgid "Events"
+msgstr "イベント"
+
+#: lib/web/templates/email/report.html.heex:115
+#, elixir-autogen, elixir-format, fuzzy
+msgid "Flagged events"
+msgstr ""
+
+#: lib/service/export/participants/common.ex:65
+#, elixir-autogen, elixir-format, fuzzy
+msgid "Participant registration date"
+msgstr ""
diff --git a/priv/gettext/ja/LC_MESSAGES/errors.po b/priv/gettext/ja/LC_MESSAGES/errors.po
index 40baf8ddc430c3541730f861471e84f4e2dfae0e..78334b46e870076d5323fbc9ae16d6de5d80bb46 100644
--- a/priv/gettext/ja/LC_MESSAGES/errors.po
+++ b/priv/gettext/ja/LC_MESSAGES/errors.po
@@ -104,7 +104,7 @@ msgstr ""
 msgid "Current profile is not an administrator of the selected group"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:644
+#: lib/graphql/resolvers/user.ex:673
 #, elixir-autogen, elixir-format
 msgid "Error while saving user settings"
 msgstr ""
@@ -147,8 +147,8 @@ msgstr ""
 msgid "No user to validate with this email was found"
 msgstr ""
 
-#: lib/graphql/resolvers/person.ex:337
-#: lib/graphql/resolvers/user.ex:330
+#: lib/graphql/resolvers/person.ex:339
+#: lib/graphql/resolvers/user.ex:337
 #, elixir-autogen, elixir-format
 msgid "No user with this email was found"
 msgstr ""
@@ -156,12 +156,12 @@ msgstr ""
 #: lib/graphql/resolvers/feed_token.ex:28
 #: lib/graphql/resolvers/participant.ex:32
 #: lib/graphql/resolvers/participant.ex:210
-#: lib/graphql/resolvers/person.ex:245
-#: lib/graphql/resolvers/person.ex:376
-#: lib/graphql/resolvers/person.ex:412
-#: lib/graphql/resolvers/person.ex:419
-#: lib/graphql/resolvers/person.ex:448
-#: lib/graphql/resolvers/person.ex:463
+#: lib/graphql/resolvers/person.ex:247
+#: lib/graphql/resolvers/person.ex:378
+#: lib/graphql/resolvers/person.ex:414
+#: lib/graphql/resolvers/person.ex:421
+#: lib/graphql/resolvers/person.ex:450
+#: lib/graphql/resolvers/person.ex:465
 #, elixir-autogen, elixir-format
 msgid "Profile is not owned by authenticated user"
 msgstr ""
@@ -171,41 +171,42 @@ msgstr ""
 msgid "Registrations are not open"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:461
+#: lib/graphql/resolvers/user.ex:474
 #, elixir-autogen, elixir-format
 msgid "The current password is invalid"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:336
-#: lib/graphql/resolvers/user.ex:504
+#: lib/graphql/resolvers/admin.ex:334
+#: lib/graphql/resolvers/user.ex:527
 #, elixir-autogen, elixir-format
 msgid "The new email doesn't seem to be valid"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:339
-#: lib/graphql/resolvers/user.ex:507
+#: lib/graphql/resolvers/admin.ex:323
+#: lib/graphql/resolvers/user.ex:514
 #, elixir-autogen, elixir-format
 msgid "The new email must be different"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:464
+#: lib/graphql/resolvers/user.ex:477
 #, elixir-autogen, elixir-format
 msgid "The new password must be different"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:511
-#: lib/graphql/resolvers/user.ex:573
-#: lib/graphql/resolvers/user.ex:576
+#: lib/graphql/resolvers/user.ex:518
+#: lib/graphql/resolvers/user.ex:602
+#: lib/graphql/resolvers/user.ex:605
 #, elixir-autogen, elixir-format
 msgid "The password provided is invalid"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:468
+#: lib/graphql/resolvers/user.ex:361
+#: lib/graphql/resolvers/user.ex:481
 #, elixir-autogen, elixir-format
 msgid "The password you have chosen is too short. Please make sure your password contains at least 6 characters."
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:323
+#: lib/graphql/resolvers/user.ex:330
 #, elixir-autogen, elixir-format
 msgid "This user can't reset their password"
 msgstr ""
@@ -221,12 +222,12 @@ msgstr ""
 msgid "Unable to validate user"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:554
+#: lib/graphql/resolvers/user.ex:583
 #, elixir-autogen, elixir-format
 msgid "User already disabled"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:619
+#: lib/graphql/resolvers/user.ex:648
 #, elixir-autogen, elixir-format
 msgid "User requested is not logged-in"
 msgstr ""
@@ -251,12 +252,12 @@ msgstr ""
 msgid "You may not list groups unless moderator."
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:519
+#: lib/graphql/resolvers/user.ex:503
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to change your email"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:476
+#: lib/graphql/resolvers/user.ex:489
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to change your password"
 msgstr ""
@@ -266,7 +267,7 @@ msgstr ""
 msgid "You need to be logged-in to delete a group"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:581
+#: lib/graphql/resolvers/user.ex:610
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to delete your account"
 msgstr ""
@@ -291,12 +292,6 @@ msgstr ""
 msgid "You need to have an existing token to get a refresh token"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:306
-#: lib/graphql/resolvers/user.ex:333
-#, elixir-autogen, elixir-format
-msgid "You requested again a confirmation email too soon"
-msgstr ""
-
 #: lib/graphql/resolvers/user.ex:180
 #, elixir-autogen, elixir-format
 msgid "Your email is not on the allowlist"
@@ -349,17 +344,17 @@ msgstr ""
 msgid "Anonymous participation is not enabled"
 msgstr ""
 
-#: lib/graphql/resolvers/person.ex:219
+#: lib/graphql/resolvers/person.ex:221
 #, elixir-autogen, elixir-format
 msgid "Cannot remove the last administrator of a group"
 msgstr ""
 
-#: lib/graphql/resolvers/person.ex:216
+#: lib/graphql/resolvers/person.ex:218
 #, elixir-autogen, elixir-format
 msgid "Cannot remove the last identity of a user"
 msgstr ""
 
-#: lib/graphql/resolvers/comment.ex:147
+#: lib/graphql/resolvers/comment.ex:153
 #, elixir-autogen, elixir-format
 msgid "Comment is already deleted"
 msgstr ""
@@ -387,8 +382,8 @@ msgid "Event id not found"
 msgstr ""
 
 #: lib/graphql/error.ex:114
-#: lib/graphql/resolvers/event.ex:355
-#: lib/graphql/resolvers/event.ex:407
+#: lib/graphql/resolvers/event.ex:382
+#: lib/graphql/resolvers/event.ex:434
 #, elixir-autogen, elixir-format
 msgid "Event not found"
 msgstr ""
@@ -396,7 +391,7 @@ msgstr ""
 #: lib/graphql/resolvers/participant.ex:87
 #: lib/graphql/resolvers/participant.ex:128
 #: lib/graphql/resolvers/participant.ex:155
-#: lib/graphql/resolvers/participant.ex:336
+#: lib/graphql/resolvers/participant.ex:343
 #, elixir-autogen, elixir-format
 msgid "Event with this ID %{id} doesn't exist"
 msgstr ""
@@ -406,7 +401,7 @@ msgstr ""
 msgid "Internal Error"
 msgstr ""
 
-#: lib/graphql/resolvers/discussion.ex:219
+#: lib/graphql/resolvers/discussion.ex:222
 #, elixir-autogen, elixir-format
 msgid "No discussion with ID %{id}"
 msgstr ""
@@ -473,10 +468,10 @@ msgstr ""
 #: lib/graphql/resolvers/post.ex:133
 #: lib/graphql/resolvers/post.ex:175
 #: lib/graphql/resolvers/post.ex:209
-#: lib/graphql/resolvers/resource.ex:90
-#: lib/graphql/resolvers/resource.ex:135
-#: lib/graphql/resolvers/resource.ex:168
-#: lib/graphql/resolvers/resource.ex:202
+#: lib/graphql/resolvers/resource.ex:92
+#: lib/graphql/resolvers/resource.ex:137
+#: lib/graphql/resolvers/resource.ex:170
+#: lib/graphql/resolvers/resource.ex:204
 #: lib/graphql/resolvers/todos.ex:58
 #: lib/graphql/resolvers/todos.ex:83
 #: lib/graphql/resolvers/todos.ex:110
@@ -488,7 +483,7 @@ msgid "Profile is not member of group"
 msgstr ""
 
 #: lib/graphql/resolvers/actor.ex:67
-#: lib/graphql/resolvers/person.ex:242
+#: lib/graphql/resolvers/person.ex:244
 #, elixir-autogen, elixir-format
 msgid "Profile not found"
 msgstr ""
@@ -498,8 +493,8 @@ msgstr ""
 msgid "Report not found"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:172
-#: lib/graphql/resolvers/resource.ex:199
+#: lib/graphql/resolvers/resource.ex:174
+#: lib/graphql/resolvers/resource.ex:201
 #, elixir-autogen, elixir-format
 msgid "Resource doesn't exist"
 msgstr ""
@@ -509,7 +504,7 @@ msgstr ""
 msgid "The event has already reached its maximum capacity"
 msgstr ""
 
-#: lib/graphql/resolvers/participant.ex:282
+#: lib/graphql/resolvers/participant.ex:289
 #, elixir-autogen, elixir-format
 msgid "This token is invalid"
 msgstr ""
@@ -543,7 +538,7 @@ msgstr ""
 msgid "User not found"
 msgstr ""
 
-#: lib/graphql/resolvers/person.ex:333
+#: lib/graphql/resolvers/person.ex:335
 #, elixir-autogen, elixir-format
 msgid "You already have a profile for this user"
 msgstr ""
@@ -565,7 +560,7 @@ msgstr ""
 msgid "You are not a moderator or admin for this group"
 msgstr ""
 
-#: lib/graphql/resolvers/comment.ex:80
+#: lib/graphql/resolvers/comment.ex:74
 #, elixir-autogen, elixir-format
 msgid "You are not allowed to create a comment if not connected"
 msgstr ""
@@ -575,7 +570,7 @@ msgstr ""
 msgid "You are not allowed to create a feed token if not connected"
 msgstr ""
 
-#: lib/graphql/resolvers/comment.ex:155
+#: lib/graphql/resolvers/comment.ex:161
 #, elixir-autogen, elixir-format
 msgid "You are not allowed to delete a comment if not connected"
 msgstr ""
@@ -585,7 +580,7 @@ msgstr ""
 msgid "You are not allowed to delete a feed token if not connected"
 msgstr ""
 
-#: lib/graphql/resolvers/comment.ex:114
+#: lib/graphql/resolvers/comment.ex:120
 #, elixir-autogen, elixir-format
 msgid "You are not allowed to update a comment if not connected"
 msgstr ""
@@ -601,12 +596,12 @@ msgstr ""
 msgid "You can't set yourself to a lower member role for this group because you are the only administrator"
 msgstr ""
 
-#: lib/graphql/resolvers/comment.ex:143
+#: lib/graphql/resolvers/comment.ex:149
 #, elixir-autogen, elixir-format
 msgid "You cannot delete this comment"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:403
+#: lib/graphql/resolvers/event.ex:430
 #, elixir-autogen, elixir-format
 msgid "You cannot delete this event"
 msgstr ""
@@ -641,17 +636,17 @@ msgstr ""
 msgid "You need to be logged-in and a moderator to view a report"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:252
+#: lib/graphql/resolvers/admin.ex:258
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in and an administrator to access admin settings"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:236
+#: lib/graphql/resolvers/admin.ex:242
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in and an administrator to access dashboard statistics"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:278
+#: lib/graphql/resolvers/admin.ex:283
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in and an administrator to save admin settings"
 msgstr ""
@@ -661,12 +656,12 @@ msgstr ""
 msgid "You need to be logged-in to access discussions"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:96
+#: lib/graphql/resolvers/resource.ex:98
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to access resources"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:313
+#: lib/graphql/resolvers/event.ex:321
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to create events"
 msgstr ""
@@ -681,12 +676,12 @@ msgstr ""
 msgid "You need to be logged-in to create reports"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:140
+#: lib/graphql/resolvers/resource.ex:142
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to create resources"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:412
+#: lib/graphql/resolvers/event.ex:439
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to delete an event"
 msgstr ""
@@ -696,7 +691,7 @@ msgstr ""
 msgid "You need to be logged-in to delete posts"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:207
+#: lib/graphql/resolvers/resource.ex:209
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to delete resources"
 msgstr ""
@@ -711,7 +706,7 @@ msgstr ""
 msgid "You need to be logged-in to leave an event"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:369
+#: lib/graphql/resolvers/event.ex:396
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to update an event"
 msgstr ""
@@ -721,17 +716,17 @@ msgstr ""
 msgid "You need to be logged-in to update posts"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:177
+#: lib/graphql/resolvers/resource.ex:179
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to update resources"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:236
+#: lib/graphql/resolvers/resource.ex:233
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to view a resource preview"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:132
+#: lib/graphql/resolvers/resource.ex:134
 #, elixir-autogen, elixir-format
 msgid "Parent resource doesn't belong to this group"
 msgstr ""
@@ -817,12 +812,12 @@ msgstr ""
 msgid "Profile is not administrator for the group"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:358
+#: lib/graphql/resolvers/event.ex:385
 #, elixir-autogen, elixir-format
 msgid "You can't edit this event."
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:361
+#: lib/graphql/resolvers/event.ex:388
 #, elixir-autogen, elixir-format
 msgid "You can't attribute this event to this profile."
 msgstr ""
@@ -842,7 +837,7 @@ msgstr ""
 msgid "You don't have the right to remove this member."
 msgstr ""
 
-#: lib/mobilizon/actors/actor.ex:377
+#: lib/mobilizon/actors/actor.ex:378
 #, elixir-autogen, elixir-format
 msgid "This username is already taken."
 msgstr ""
@@ -852,7 +847,7 @@ msgstr ""
 msgid "You must provide either an ID or a slug to access a discussion"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:275
+#: lib/graphql/resolvers/event.ex:276
 #, elixir-autogen, elixir-format
 msgid "Organizer profile is not owned by the user"
 msgstr ""
@@ -864,41 +859,41 @@ msgstr ""
 
 #: lib/graphql/resolvers/group.ex:181
 #: lib/graphql/resolvers/group.ex:223
-#: lib/graphql/resolvers/person.ex:157
-#: lib/graphql/resolvers/person.ex:191
-#: lib/graphql/resolvers/person.ex:324
+#: lib/graphql/resolvers/person.ex:159
+#: lib/graphql/resolvers/person.ex:193
+#: lib/graphql/resolvers/person.ex:326
 #, elixir-autogen, elixir-format
 msgid "The provided picture is too heavy"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:129
+#: lib/graphql/resolvers/resource.ex:131
 #, elixir-autogen, elixir-format
 msgid "Error while creating resource"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:537
+#: lib/graphql/resolvers/user.ex:566
 #, elixir-autogen, elixir-format
 msgid "Invalid activation token"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:226
+#: lib/graphql/resolvers/resource.ex:228
 #, elixir-autogen, elixir-format
 msgid "Unable to fetch resource details from this URL."
 msgstr ""
 
 #: lib/graphql/resolvers/event.ex:165
 #: lib/graphql/resolvers/participant.ex:253
-#: lib/graphql/resolvers/participant.ex:328
+#: lib/graphql/resolvers/participant.ex:335
 #, elixir-autogen, elixir-format
 msgid "Provided profile doesn't have moderator permissions on this event"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:286
+#: lib/graphql/resolvers/event.ex:294
 #, elixir-autogen, elixir-format
 msgid "Organizer profile doesn't have permission to create an event on behalf of this group"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:349
+#: lib/graphql/resolvers/event.ex:369
 #, elixir-autogen, elixir-format
 msgid "This profile doesn't have permission to update an event on behalf of this group"
 msgstr ""
@@ -908,7 +903,7 @@ msgstr ""
 msgid "Your e-mail has been denied registration or uses a disallowed e-mail provider"
 msgstr ""
 
-#: lib/graphql/resolvers/comment.ex:150
+#: lib/graphql/resolvers/comment.ex:156
 #, elixir-autogen, elixir-format
 msgid "Comment not found"
 msgstr ""
@@ -918,12 +913,12 @@ msgstr ""
 msgid "Error while creating a discussion"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:658
+#: lib/graphql/resolvers/user.ex:687
 #, elixir-autogen, elixir-format
 msgid "Error while updating locale"
 msgstr ""
 
-#: lib/graphql/resolvers/person.ex:327
+#: lib/graphql/resolvers/person.ex:329
 #, elixir-autogen, elixir-format
 msgid "Error while uploading pictures"
 msgstr ""
@@ -938,13 +933,13 @@ msgstr ""
 msgid "Failed to update the group"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:333
-#: lib/graphql/resolvers/user.ex:501
+#: lib/graphql/resolvers/admin.ex:357
+#: lib/graphql/resolvers/user.ex:547
 #, elixir-autogen, elixir-format
 msgid "Failed to update user email"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:533
+#: lib/graphql/resolvers/user.ex:562
 #, elixir-autogen, elixir-format
 msgid "Failed to validate user email"
 msgstr ""
@@ -954,37 +949,37 @@ msgstr ""
 msgid "The anonymous actor ID is invalid"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:165
+#: lib/graphql/resolvers/resource.ex:167
 #, elixir-autogen, elixir-format
 msgid "Unknown error while updating resource"
 msgstr ""
 
-#: lib/graphql/resolvers/comment.ex:105
+#: lib/graphql/resolvers/comment.ex:111
 #, elixir-autogen, elixir-format
 msgid "You are not the comment creator"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:458
+#: lib/graphql/resolvers/user.ex:471
 #, elixir-autogen, elixir-format
 msgid "You cannot change your password."
 msgstr ""
 
-#: lib/graphql/resolvers/participant.ex:321
+#: lib/graphql/resolvers/participant.ex:328
 #, elixir-autogen, elixir-format
 msgid "Format not supported"
 msgstr ""
 
-#: lib/graphql/resolvers/participant.ex:305
+#: lib/graphql/resolvers/participant.ex:312
 #, elixir-autogen, elixir-format
 msgid "A dependency needed to export to %{format} is not installed"
 msgstr ""
 
-#: lib/graphql/resolvers/participant.ex:313
+#: lib/graphql/resolvers/participant.ex:320
 #, elixir-autogen, elixir-format
 msgid "An error occured while saving export"
 msgstr ""
 
-#: lib/web/controllers/export_controller.ex:30
+#: lib/web/controllers/export_controller.ex:32
 #, elixir-autogen, elixir-format
 msgid "Export to format %{format} is not enabled on this instance"
 msgstr ""
@@ -994,17 +989,17 @@ msgstr ""
 msgid "Only admins can create groups"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:279
+#: lib/graphql/resolvers/event.ex:280
 #, elixir-autogen, elixir-format
 msgid "Only groups can create events"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:305
+#: lib/graphql/resolvers/event.ex:313
 #, elixir-autogen, elixir-format
 msgid "Unknown error while creating event"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:514
+#: lib/graphql/resolvers/user.ex:498
 #, elixir-autogen, elixir-format
 msgid "User cannot change email"
 msgstr ""
@@ -1019,12 +1014,12 @@ msgstr ""
 msgid "Follow not found"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:379
+#: lib/graphql/resolvers/user.ex:392
 #, elixir-autogen, elixir-format
 msgid "Profile with username %{username} not found"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:374
+#: lib/graphql/resolvers/user.ex:387
 #, elixir-autogen, elixir-format
 msgid "This profile does not belong to you"
 msgstr ""
@@ -1069,22 +1064,22 @@ msgstr ""
 msgid "Your email seems to be using an invalid format"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:382
+#: lib/graphql/resolvers/admin.ex:399
 #, elixir-autogen, elixir-format
 msgid "Can't confirm an already confirmed user"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:386
+#: lib/graphql/resolvers/admin.ex:403
 #, elixir-autogen, elixir-format
 msgid "Deconfirming users is not supported"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:358
+#: lib/graphql/resolvers/admin.ex:375
 #, elixir-autogen, elixir-format, fuzzy
 msgid "The new role must be different"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:309
+#: lib/graphql/resolvers/admin.ex:314
 #, elixir-autogen, elixir-format, fuzzy
 msgid "You need to be logged-in and an administrator to edit an user's details"
 msgstr ""
@@ -1094,28 +1089,28 @@ msgstr ""
 msgid "A profile or group with that name already exists"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:519
+#: lib/graphql/resolvers/admin.ex:542
 #, elixir-autogen, elixir-format
 msgid "Unable to find an instance to follow at this address"
 msgstr ""
 
-#: lib/mobilizon/actors/actor.ex:396
+#: lib/mobilizon/actors/actor.ex:397
 #, elixir-autogen, elixir-format
 msgid "Username must only contain alphanumeric lowercased characters and underscores."
 msgstr ""
 
 #: lib/graphql/resolvers/user.ex:303
-#: lib/graphql/resolvers/user.ex:326
+#: lib/graphql/resolvers/user.ex:333
 #, elixir-autogen, elixir-format, fuzzy
 msgid "This email doesn't seem to be valid"
 msgstr ""
 
-#: lib/graphql/resolvers/comment.ex:65
+#: lib/graphql/resolvers/comment.ex:59
 #, elixir-autogen, elixir-format
 msgid "This comment was detected as spam."
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:293
+#: lib/graphql/resolvers/event.ex:301
 #, elixir-autogen, elixir-format
 msgid "This event was detected as spam."
 msgstr ""
@@ -1136,7 +1131,7 @@ msgstr ""
 msgid "You need to be a moderator or an administrator to create a note on a report"
 msgstr ""
 
-#: lib/graphql/resolvers/person.ex:330
+#: lib/graphql/resolvers/person.ex:332
 #, elixir-autogen, elixir-format
 msgid "Your profile was detected as spam."
 msgstr ""
@@ -1146,7 +1141,7 @@ msgstr ""
 msgid "Your registration has been detected as spam and cannot be processed."
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:86
+#: lib/web/controllers/application_controller.ex:88
 #, elixir-autogen, elixir-format
 msgid "All of name, scope and redirect_uri parameters are required to create an application"
 msgstr ""
@@ -1161,171 +1156,227 @@ msgstr ""
 msgid "Application token not found"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:89
+#: lib/graphql/resolvers/application.ex:90
 #, elixir-autogen, elixir-format, fuzzy
 msgid "Error while revoking token"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:59
+#: lib/web/controllers/application_controller.ex:61
 #, elixir-autogen, elixir-format
 msgid "Impossible to create application."
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:356
+#: lib/web/controllers/application_controller.ex:358
 #, elixir-autogen, elixir-format
 msgid "Incorrect parameters sent. You need to provide at least the grant_type and client_id parameters, depending on the grant type being used."
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:329
+#: lib/web/controllers/application_controller.ex:331
 #, elixir-autogen, elixir-format
 msgid "Invalid client credentials provided"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:337
+#: lib/web/controllers/application_controller.ex:339
 #, elixir-autogen, elixir-format
 msgid "Invalid refresh token provided"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:170
-#: lib/web/controllers/application_controller.ex:401
+#: lib/web/controllers/application_controller.ex:172
+#: lib/web/controllers/application_controller.ex:403
 #, elixir-autogen, elixir-format
 msgid "No application was found with this client_id"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:37
+#: lib/graphql/resolvers/application.ex:38
 #, elixir-autogen, elixir-format
 msgid "No application with this client_id was found"
 msgstr ""
 
-#: lib/graphql/authorization.ex:80
+#: lib/graphql/authorization.ex:81
 #, elixir-autogen, elixir-format
 msgid "Not authorized to access field %{field}"
 msgstr ""
 
-#: lib/graphql/authorization.ex:70
-#: lib/graphql/authorization.ex:75
+#: lib/graphql/authorization.ex:71
+#: lib/graphql/authorization.ex:76
 #, elixir-autogen, elixir-format
 msgid "Not authorized to access object %{object}"
 msgstr ""
 
-#: lib/graphql/authorization.ex:63
+#: lib/graphql/authorization.ex:64
 #, elixir-autogen, elixir-format
 msgid "Not authorized to access this %{object_type}"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:279
+#: lib/web/controllers/application_controller.ex:281
 #, elixir-autogen, elixir-format
 msgid "Please slow down the rate of your requests"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:267
+#: lib/web/controllers/application_controller.ex:269
 #, elixir-autogen, elixir-format
 msgid "The authorization request is still pending"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:249
+#: lib/web/controllers/application_controller.ex:251
 #, elixir-autogen, elixir-format
 msgid "The client_id provided or the device_code associated is invalid"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:133
+#: lib/graphql/resolvers/application.ex:139
 #, elixir-autogen, elixir-format
 msgid "The device user code was not provided before approving the application"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:304
+#: lib/web/controllers/application_controller.ex:306
 #, elixir-autogen, elixir-format
 msgid "The given device_code has expired"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:44
+#: lib/graphql/resolvers/application.ex:45
 #, elixir-autogen, elixir-format
 msgid "The given redirect_uri is not in the list of allowed redirect URIs"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:158
+#: lib/web/controllers/application_controller.ex:160
 #, elixir-autogen, elixir-format
 msgid "The given scope is not in the list of the app declared scopes"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:109
-#: lib/graphql/resolvers/application.ex:146
+#: lib/graphql/resolvers/application.ex:112
+#: lib/graphql/resolvers/application.ex:154
 #, elixir-autogen, elixir-format
 msgid "The given user code has expired"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:112
-#: lib/graphql/resolvers/application.ex:140
+#: lib/graphql/resolvers/application.ex:118
+#: lib/graphql/resolvers/application.ex:146
 #, elixir-autogen, elixir-format
 msgid "The given user code is invalid"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:411
+#: lib/web/controllers/application_controller.ex:413
 #, elixir-autogen, elixir-format
 msgid "The provided client_id does not match the provided code"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:414
+#: lib/web/controllers/application_controller.ex:416
 #, elixir-autogen, elixir-format
 msgid "The provided client_secret is invalid"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:407
+#: lib/web/controllers/application_controller.ex:409
 #, elixir-autogen, elixir-format
 msgid "The provided code is invalid or expired"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:418
+#: lib/web/controllers/application_controller.ex:420
 #, elixir-autogen, elixir-format
 msgid "The provided scope is invalid or not included in the app declared scopes"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:45
+#: lib/web/controllers/application_controller.ex:47
 #, elixir-autogen, elixir-format
 msgid "The scope parameter is not a space separated list of valid scopes"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:292
+#: lib/web/controllers/application_controller.ex:294
 #, elixir-autogen, elixir-format
 msgid "The user rejected the requested authorization"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:404
+#: lib/web/controllers/application_controller.ex:406
 #, elixir-autogen, elixir-format
 msgid "This redirect URI is not allowed"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:381
+#: lib/web/controllers/application_controller.ex:383
 #, elixir-autogen, elixir-format, fuzzy
 msgid "Token not found"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:72
+#: lib/web/controllers/application_controller.ex:74
 #, elixir-autogen, elixir-format
 msgid "Too many requests"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:184
+#: lib/web/controllers/application_controller.ex:186
 #, elixir-autogen, elixir-format
 msgid "Unable to produce device code"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:373
+#: lib/web/controllers/application_controller.ex:375
 #, elixir-autogen, elixir-format
 msgid "Unable to revoke token"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:198
+#: lib/web/controllers/application_controller.ex:200
 #, elixir-autogen, elixir-format
 msgid "You need to pass both client_id and scope as parameters to obtain a device code"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:136
+#: lib/web/controllers/application_controller.ex:138
 #, elixir-autogen, elixir-format
 msgid "You need to provide a valid redirect_uri to autorize an application"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:126
+#: lib/web/controllers/application_controller.ex:128
 #, elixir-autogen, elixir-format
 msgid "You need to specify client_id, redirect_uri, scope and state to autorize an application"
 msgstr ""
+
+#: lib/graphql/resolvers/user.ex:306
+#, elixir-autogen, elixir-format
+msgid "Couldn't send an email. Internal error."
+msgstr ""
+
+#: lib/graphql/resolvers/participant.ex:286
+#, elixir-autogen, elixir-format
+msgid "Participation is already confirmed"
+msgstr ""
+
+#: lib/graphql/resolvers/participant.ex:283
+#, elixir-autogen, elixir-format
+msgid "Participation is confirmed but not approved yet by an organizer"
+msgstr ""
+
+#: lib/graphql/resolvers/event.ex:287
+#: lib/graphql/resolvers/event.ex:376
+#, elixir-autogen, elixir-format
+msgid "Providing external registration is not allowed"
+msgstr ""
+
+#: lib/graphql/resolvers/push_subscription.ex:48
+#, elixir-autogen, elixir-format
+msgid "The same push subscription has already been registered"
+msgstr ""
+
+#: lib/graphql/resolvers/admin.ex:536
+#, elixir-autogen, elixir-format
+msgid "This instance is pending follow approval"
+msgstr ""
+
+#: lib/graphql/schema/custom/timezone.ex:23
+#, elixir-autogen, elixir-format
+msgid "Timezone ID %{timezone} is invalid"
+msgstr ""
+
+#: lib/graphql/resolvers/admin.ex:539
+#, elixir-autogen, elixir-format, fuzzy
+msgid "You are already following this instance"
+msgstr ""
+
+#: lib/graphql/resolvers/user.ex:310
+#, elixir-autogen, elixir-format, fuzzy
+msgid "You requested again a confirmation email too soon. Please try again in a few minutes"
+msgstr ""
+
+#: lib/graphql/resolvers/user.ex:341
+#, elixir-autogen, elixir-format
+msgid "You requested again a password reset email too soon. Please try again in a few minutes"
+msgstr ""
+
+#: lib/graphql/resolvers/user.ex:368
+#, elixir-autogen, elixir-format
+msgid "The token you provided is invalid. Make sure that the URL is exactly the one provided inside the email you got."
+msgstr ""
diff --git a/priv/gettext/nb_NO/LC_MESSAGES/activity.po b/priv/gettext/nb_NO/LC_MESSAGES/activity.po
index ed1fec3d02ab833c6a0a93f37de5593b26f2e9b3..a74a2ca6dbb1b64482032d19bac8f46e2e0704b5 100644
--- a/priv/gettext/nb_NO/LC_MESSAGES/activity.po
+++ b/priv/gettext/nb_NO/LC_MESSAGES/activity.po
@@ -9,7 +9,7 @@
 msgid ""
 msgstr ""
 "Language: nb_NO\n"
-"Plural-Forms: nplurals=2\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
 
 #: lib/web/templates/email/activity/_member_activity_item.html.heex:14
 #: lib/web/templates/email/activity/_member_activity_item.text.eex:12
@@ -454,3 +454,15 @@ msgstr ""
 #, elixir-autogen, elixir-format, fuzzy
 msgid "%{profile} approved the member %{member}."
 msgstr ""
+
+#: lib/service/activity/renderer/event.ex:74
+#: lib/web/templates/email/activity/_event_activity_item.html.heex:55
+#: lib/web/templates/email/activity/_event_activity_item.text.eex:31
+#, elixir-autogen, elixir-format
+msgid "%{profile} joined your event %{event}."
+msgstr ""
+
+#: lib/web/views/email_view.ex:45
+#, elixir-autogen, elixir-format
+msgid "An anonymous profile"
+msgstr ""
diff --git a/priv/gettext/nb_NO/LC_MESSAGES/default.po b/priv/gettext/nb_NO/LC_MESSAGES/default.po
index 754dc55b16f72054b341f8ce0cc953b5ecf82184..1f72eeff3fa5ca37e298f4f8c7dc72e43981255f 100644
--- a/priv/gettext/nb_NO/LC_MESSAGES/default.po
+++ b/priv/gettext/nb_NO/LC_MESSAGES/default.po
@@ -21,7 +21,7 @@ msgstr ""
 "Hvis du ikke ba om dette, vennligst ignorer denne eposten. Passordet ditt "
 "vil ikke endres før du bruker lenken nedenfor og lager et nytt passord."
 
-#: lib/web/templates/email/report.html.heex:120
+#: lib/web/templates/email/report.html.heex:121
 #, elixir-autogen, elixir-format
 msgid "%{title} by %{creator}"
 msgstr "%{title} av %{creator}"
@@ -37,23 +37,17 @@ msgstr "Aktiver kontoen min"
 msgid "Ask the community on Framacolibri"
 msgstr "Spør samfunnet på Framacolibri"
 
-#: lib/web/templates/email/report.text.eex:15
+#: lib/web/templates/email/report.text.eex:17
 #, elixir-autogen, elixir-format
 msgid "Comments"
 msgstr "Kommentarer"
 
-#: lib/web/templates/email/report.html.heex:115
-#: lib/web/templates/email/report.text.eex:11
-#, elixir-autogen, elixir-format
-msgid "Event"
-msgstr ""
-
 #: lib/web/email/user.ex:49
 #, elixir-autogen, elixir-format
 msgid "Instructions to reset your password on %{instance}"
 msgstr "Instruksjoner for å tilbakestille passordet ditt på %{instance}"
 
-#: lib/web/templates/email/report.text.eex:21
+#: lib/web/templates/email/report.text.eex:23
 #, elixir-autogen, elixir-format
 msgid "Reason"
 msgstr "Begrunnelse"
@@ -317,12 +311,12 @@ msgctxt "terms"
 msgid "What information do we collect?"
 msgstr ""
 
-#: lib/web/email/user.ex:182
+#: lib/web/email/user.ex:188
 #, elixir-autogen, elixir-format
 msgid "Mobilizon on %{instance}: confirm your email address"
 msgstr ""
 
-#: lib/web/email/user.ex:159
+#: lib/web/email/user.ex:165
 #, elixir-autogen, elixir-format
 msgid "Mobilizon on %{instance}: email changed"
 msgstr ""
@@ -813,7 +807,7 @@ msgstr ""
 msgid "Event update!"
 msgstr ""
 
-#: lib/web/templates/email/report.html.heex:155
+#: lib/web/templates/email/report.html.heex:158
 #, elixir-autogen, elixir-format
 msgid "Flagged comments"
 msgstr ""
@@ -894,7 +888,7 @@ msgstr ""
 msgid "New email confirmation"
 msgstr ""
 
-#: lib/web/templates/email/report.html.heex:191
+#: lib/web/templates/email/report.html.heex:194
 #, elixir-autogen, elixir-format
 msgid "Reasons for report"
 msgstr ""
@@ -949,12 +943,12 @@ msgstr ""
 msgid "Verify your email address"
 msgstr ""
 
-#: lib/web/templates/email/report.html.heex:232
+#: lib/web/templates/email/report.html.heex:235
 #, elixir-autogen, elixir-format
 msgid "View report"
 msgstr ""
 
-#: lib/web/templates/email/report.text.eex:24
+#: lib/web/templates/email/report.text.eex:26
 #, elixir-autogen, elixir-format
 msgid "View report:"
 msgstr ""
@@ -1052,12 +1046,6 @@ msgstr ""
 msgid "As this group was located on another instance, it will continue to work for other instances than this one."
 msgstr ""
 
-#: lib/web/templates/email/group_suspension.html.heex:67
-#: lib/web/templates/email/group_suspension.text.eex:5
-#, elixir-autogen, elixir-format
-msgid "As this group was located on this instance, all of it's data has been irretrievably deleted."
-msgstr ""
-
 #: lib/web/templates/email/group_suspension.html.heex:18
 #: lib/web/templates/email/group_suspension.text.eex:1
 #, elixir-autogen, elixir-format
@@ -1069,7 +1057,7 @@ msgstr ""
 msgid "Your instance's moderation team has decided to suspend %{group_name} (%{group_address}). You are no longer a member of this group."
 msgstr ""
 
-#: lib/web/email/group.ex:107
+#: lib/web/email/group.ex:108
 #, elixir-autogen, elixir-format
 msgid "The group %{group} has been suspended on %{instance}"
 msgstr ""
@@ -1351,16 +1339,6 @@ msgstr ""
 msgid "Public feed for %{instance}"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:350
-#, elixir-autogen, elixir-format
-msgid "The password you have choosen is too short. Please make sure your password contains at least 6 charaters."
-msgstr ""
-
-#: lib/graphql/resolvers/user.ex:356
-#, elixir-autogen, elixir-format
-msgid "The token you provided is invalid. Make sure that the URL is exactly the one provided inside the email you got."
-msgstr ""
-
 #: lib/web/email/actor.ex:43
 #, elixir-autogen, elixir-format
 msgid "Your participation to %{event} has been cancelled!"
@@ -1384,63 +1362,63 @@ msgid "Your participation to %{event} on %{instance} has been cancelled!"
 msgstr ""
 
 #. File name template for exported list of participants. Should NOT contain spaces. Make sure the output is going to be something standardized that is acceptable as a file name on most systems.
-#: lib/service/export/participants/csv.ex:81
+#: lib/service/export/participants/csv.ex:97
 #: lib/service/export/participants/ods.ex:86
 #: lib/service/export/participants/pdf.ex:96
 #, elixir-autogen, elixir-format
 msgid "%{event}_participants"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:61
+#: lib/service/export/participants/common.ex:66
 #, elixir-autogen, elixir-format
 msgid "Participant message"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:61
+#: lib/service/export/participants/common.ex:63
 #, elixir-autogen, elixir-format
 msgid "Participant name"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:61
+#: lib/service/export/participants/common.ex:64
 #, elixir-autogen, elixir-format
 msgid "Participant status"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:52
+#: lib/service/export/participants/common.ex:53
 #: lib/web/templates/email/admin/_role.html.heex:3
 #: lib/web/templates/email/admin/_role.text.eex:1
 #, elixir-autogen, elixir-format
 msgid "Administrator"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:55
+#: lib/service/export/participants/common.ex:56
 #, elixir-autogen, elixir-format
 msgid "Creator"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:49
+#: lib/service/export/participants/common.ex:50
 #: lib/web/templates/email/admin/_role.html.heex:5
 #: lib/web/templates/email/admin/_role.text.eex:1
 #, elixir-autogen, elixir-format
 msgid "Moderator"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:37
+#: lib/service/export/participants/common.ex:38
 #, elixir-autogen, elixir-format
 msgid "Not approved"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:40
+#: lib/service/export/participants/common.ex:41
 #, elixir-autogen, elixir-format
 msgid "Not confirmed"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:46
+#: lib/service/export/participants/common.ex:47
 #, elixir-autogen, elixir-format
 msgid "Participant"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:43
+#: lib/service/export/participants/common.ex:44
 #, elixir-autogen, elixir-format
 msgid "Rejected"
 msgstr ""
@@ -1465,7 +1443,7 @@ msgstr ""
 msgid "Participants for %{event}"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:88
+#: lib/service/export/participants/common.ex:95
 #, elixir-autogen, elixir-format
 msgid "Anonymous participant"
 msgstr ""
@@ -1584,7 +1562,7 @@ msgstr ""
 msgid "Title: %{title}"
 msgstr ""
 
-#: lib/web/email/group.ex:46
+#: lib/web/email/group.ex:47
 #, elixir-autogen, elixir-format
 msgid "📅 Just scheduled by %{group}: %{event}"
 msgstr ""
@@ -1997,3 +1975,24 @@ msgstr ""
 #, elixir-autogen, elixir-format
 msgid "Until next time!"
 msgstr ""
+
+#: lib/web/templates/email/group_suspension.html.heex:67
+#: lib/web/templates/email/group_suspension.text.eex:5
+#, elixir-autogen, elixir-format, fuzzy
+msgid "As this group was located on this instance, all of its data has been irretrievably deleted."
+msgstr ""
+
+#: lib/web/templates/email/report.text.eex:11
+#, elixir-autogen, elixir-format, fuzzy
+msgid "Events"
+msgstr ""
+
+#: lib/web/templates/email/report.html.heex:115
+#, elixir-autogen, elixir-format, fuzzy
+msgid "Flagged events"
+msgstr ""
+
+#: lib/service/export/participants/common.ex:65
+#, elixir-autogen, elixir-format, fuzzy
+msgid "Participant registration date"
+msgstr ""
diff --git a/priv/gettext/nb_NO/LC_MESSAGES/errors.po b/priv/gettext/nb_NO/LC_MESSAGES/errors.po
index ab24b0320676422fe083b65f239202c3c79b87c5..10b4903fa2c7af5e23e42f50a234c0721c96b1ad 100644
--- a/priv/gettext/nb_NO/LC_MESSAGES/errors.po
+++ b/priv/gettext/nb_NO/LC_MESSAGES/errors.po
@@ -9,7 +9,7 @@
 msgid ""
 msgstr ""
 "Language: nb_NO\n"
-"Plural-Forms: nplurals=2\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
 
 #: lib/mobilizon/discussions/discussion.ex:69
 #, elixir-autogen
@@ -103,7 +103,7 @@ msgstr ""
 msgid "Current profile is not an administrator of the selected group"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:644
+#: lib/graphql/resolvers/user.ex:673
 #, elixir-autogen, elixir-format
 msgid "Error while saving user settings"
 msgstr ""
@@ -146,8 +146,8 @@ msgstr ""
 msgid "No user to validate with this email was found"
 msgstr ""
 
-#: lib/graphql/resolvers/person.ex:337
-#: lib/graphql/resolvers/user.ex:330
+#: lib/graphql/resolvers/person.ex:339
+#: lib/graphql/resolvers/user.ex:337
 #, elixir-autogen, elixir-format
 msgid "No user with this email was found"
 msgstr ""
@@ -155,12 +155,12 @@ msgstr ""
 #: lib/graphql/resolvers/feed_token.ex:28
 #: lib/graphql/resolvers/participant.ex:32
 #: lib/graphql/resolvers/participant.ex:210
-#: lib/graphql/resolvers/person.ex:245
-#: lib/graphql/resolvers/person.ex:376
-#: lib/graphql/resolvers/person.ex:412
-#: lib/graphql/resolvers/person.ex:419
-#: lib/graphql/resolvers/person.ex:448
-#: lib/graphql/resolvers/person.ex:463
+#: lib/graphql/resolvers/person.ex:247
+#: lib/graphql/resolvers/person.ex:378
+#: lib/graphql/resolvers/person.ex:414
+#: lib/graphql/resolvers/person.ex:421
+#: lib/graphql/resolvers/person.ex:450
+#: lib/graphql/resolvers/person.ex:465
 #, elixir-autogen, elixir-format
 msgid "Profile is not owned by authenticated user"
 msgstr ""
@@ -170,41 +170,42 @@ msgstr ""
 msgid "Registrations are not open"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:461
+#: lib/graphql/resolvers/user.ex:474
 #, elixir-autogen, elixir-format
 msgid "The current password is invalid"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:336
-#: lib/graphql/resolvers/user.ex:504
+#: lib/graphql/resolvers/admin.ex:334
+#: lib/graphql/resolvers/user.ex:527
 #, elixir-autogen, elixir-format
 msgid "The new email doesn't seem to be valid"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:339
-#: lib/graphql/resolvers/user.ex:507
+#: lib/graphql/resolvers/admin.ex:323
+#: lib/graphql/resolvers/user.ex:514
 #, elixir-autogen, elixir-format
 msgid "The new email must be different"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:464
+#: lib/graphql/resolvers/user.ex:477
 #, elixir-autogen, elixir-format
 msgid "The new password must be different"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:511
-#: lib/graphql/resolvers/user.ex:573
-#: lib/graphql/resolvers/user.ex:576
+#: lib/graphql/resolvers/user.ex:518
+#: lib/graphql/resolvers/user.ex:602
+#: lib/graphql/resolvers/user.ex:605
 #, elixir-autogen, elixir-format
 msgid "The password provided is invalid"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:468
+#: lib/graphql/resolvers/user.ex:361
+#: lib/graphql/resolvers/user.ex:481
 #, elixir-autogen, elixir-format
 msgid "The password you have chosen is too short. Please make sure your password contains at least 6 characters."
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:323
+#: lib/graphql/resolvers/user.ex:330
 #, elixir-autogen, elixir-format
 msgid "This user can't reset their password"
 msgstr ""
@@ -220,12 +221,12 @@ msgstr ""
 msgid "Unable to validate user"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:554
+#: lib/graphql/resolvers/user.ex:583
 #, elixir-autogen, elixir-format
 msgid "User already disabled"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:619
+#: lib/graphql/resolvers/user.ex:648
 #, elixir-autogen, elixir-format
 msgid "User requested is not logged-in"
 msgstr ""
@@ -250,12 +251,12 @@ msgstr ""
 msgid "You may not list groups unless moderator."
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:519
+#: lib/graphql/resolvers/user.ex:503
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to change your email"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:476
+#: lib/graphql/resolvers/user.ex:489
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to change your password"
 msgstr ""
@@ -265,7 +266,7 @@ msgstr ""
 msgid "You need to be logged-in to delete a group"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:581
+#: lib/graphql/resolvers/user.ex:610
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to delete your account"
 msgstr ""
@@ -290,12 +291,6 @@ msgstr ""
 msgid "You need to have an existing token to get a refresh token"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:306
-#: lib/graphql/resolvers/user.ex:333
-#, elixir-autogen, elixir-format
-msgid "You requested again a confirmation email too soon"
-msgstr ""
-
 #: lib/graphql/resolvers/user.ex:180
 #, elixir-autogen, elixir-format
 msgid "Your email is not on the allowlist"
@@ -348,17 +343,17 @@ msgstr ""
 msgid "Anonymous participation is not enabled"
 msgstr ""
 
-#: lib/graphql/resolvers/person.ex:219
+#: lib/graphql/resolvers/person.ex:221
 #, elixir-autogen, elixir-format
 msgid "Cannot remove the last administrator of a group"
 msgstr ""
 
-#: lib/graphql/resolvers/person.ex:216
+#: lib/graphql/resolvers/person.ex:218
 #, elixir-autogen, elixir-format
 msgid "Cannot remove the last identity of a user"
 msgstr ""
 
-#: lib/graphql/resolvers/comment.ex:147
+#: lib/graphql/resolvers/comment.ex:153
 #, elixir-autogen, elixir-format
 msgid "Comment is already deleted"
 msgstr ""
@@ -386,8 +381,8 @@ msgid "Event id not found"
 msgstr ""
 
 #: lib/graphql/error.ex:114
-#: lib/graphql/resolvers/event.ex:355
-#: lib/graphql/resolvers/event.ex:407
+#: lib/graphql/resolvers/event.ex:382
+#: lib/graphql/resolvers/event.ex:434
 #, elixir-autogen, elixir-format
 msgid "Event not found"
 msgstr ""
@@ -395,7 +390,7 @@ msgstr ""
 #: lib/graphql/resolvers/participant.ex:87
 #: lib/graphql/resolvers/participant.ex:128
 #: lib/graphql/resolvers/participant.ex:155
-#: lib/graphql/resolvers/participant.ex:336
+#: lib/graphql/resolvers/participant.ex:343
 #, elixir-autogen, elixir-format
 msgid "Event with this ID %{id} doesn't exist"
 msgstr ""
@@ -405,7 +400,7 @@ msgstr ""
 msgid "Internal Error"
 msgstr ""
 
-#: lib/graphql/resolvers/discussion.ex:219
+#: lib/graphql/resolvers/discussion.ex:222
 #, elixir-autogen, elixir-format
 msgid "No discussion with ID %{id}"
 msgstr ""
@@ -472,10 +467,10 @@ msgstr ""
 #: lib/graphql/resolvers/post.ex:133
 #: lib/graphql/resolvers/post.ex:175
 #: lib/graphql/resolvers/post.ex:209
-#: lib/graphql/resolvers/resource.ex:90
-#: lib/graphql/resolvers/resource.ex:135
-#: lib/graphql/resolvers/resource.ex:168
-#: lib/graphql/resolvers/resource.ex:202
+#: lib/graphql/resolvers/resource.ex:92
+#: lib/graphql/resolvers/resource.ex:137
+#: lib/graphql/resolvers/resource.ex:170
+#: lib/graphql/resolvers/resource.ex:204
 #: lib/graphql/resolvers/todos.ex:58
 #: lib/graphql/resolvers/todos.ex:83
 #: lib/graphql/resolvers/todos.ex:110
@@ -487,7 +482,7 @@ msgid "Profile is not member of group"
 msgstr ""
 
 #: lib/graphql/resolvers/actor.ex:67
-#: lib/graphql/resolvers/person.ex:242
+#: lib/graphql/resolvers/person.ex:244
 #, elixir-autogen, elixir-format
 msgid "Profile not found"
 msgstr ""
@@ -497,8 +492,8 @@ msgstr ""
 msgid "Report not found"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:172
-#: lib/graphql/resolvers/resource.ex:199
+#: lib/graphql/resolvers/resource.ex:174
+#: lib/graphql/resolvers/resource.ex:201
 #, elixir-autogen, elixir-format
 msgid "Resource doesn't exist"
 msgstr ""
@@ -508,7 +503,7 @@ msgstr ""
 msgid "The event has already reached its maximum capacity"
 msgstr ""
 
-#: lib/graphql/resolvers/participant.ex:282
+#: lib/graphql/resolvers/participant.ex:289
 #, elixir-autogen, elixir-format
 msgid "This token is invalid"
 msgstr ""
@@ -542,7 +537,7 @@ msgstr ""
 msgid "User not found"
 msgstr ""
 
-#: lib/graphql/resolvers/person.ex:333
+#: lib/graphql/resolvers/person.ex:335
 #, elixir-autogen, elixir-format
 msgid "You already have a profile for this user"
 msgstr ""
@@ -564,7 +559,7 @@ msgstr ""
 msgid "You are not a moderator or admin for this group"
 msgstr ""
 
-#: lib/graphql/resolvers/comment.ex:80
+#: lib/graphql/resolvers/comment.ex:74
 #, elixir-autogen, elixir-format
 msgid "You are not allowed to create a comment if not connected"
 msgstr ""
@@ -574,7 +569,7 @@ msgstr ""
 msgid "You are not allowed to create a feed token if not connected"
 msgstr ""
 
-#: lib/graphql/resolvers/comment.ex:155
+#: lib/graphql/resolvers/comment.ex:161
 #, elixir-autogen, elixir-format
 msgid "You are not allowed to delete a comment if not connected"
 msgstr ""
@@ -584,7 +579,7 @@ msgstr ""
 msgid "You are not allowed to delete a feed token if not connected"
 msgstr ""
 
-#: lib/graphql/resolvers/comment.ex:114
+#: lib/graphql/resolvers/comment.ex:120
 #, elixir-autogen, elixir-format
 msgid "You are not allowed to update a comment if not connected"
 msgstr ""
@@ -600,12 +595,12 @@ msgstr ""
 msgid "You can't set yourself to a lower member role for this group because you are the only administrator"
 msgstr ""
 
-#: lib/graphql/resolvers/comment.ex:143
+#: lib/graphql/resolvers/comment.ex:149
 #, elixir-autogen, elixir-format
 msgid "You cannot delete this comment"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:403
+#: lib/graphql/resolvers/event.ex:430
 #, elixir-autogen, elixir-format
 msgid "You cannot delete this event"
 msgstr ""
@@ -640,17 +635,17 @@ msgstr ""
 msgid "You need to be logged-in and a moderator to view a report"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:252
+#: lib/graphql/resolvers/admin.ex:258
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in and an administrator to access admin settings"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:236
+#: lib/graphql/resolvers/admin.ex:242
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in and an administrator to access dashboard statistics"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:278
+#: lib/graphql/resolvers/admin.ex:283
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in and an administrator to save admin settings"
 msgstr ""
@@ -660,12 +655,12 @@ msgstr ""
 msgid "You need to be logged-in to access discussions"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:96
+#: lib/graphql/resolvers/resource.ex:98
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to access resources"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:313
+#: lib/graphql/resolvers/event.ex:321
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to create events"
 msgstr ""
@@ -680,12 +675,12 @@ msgstr ""
 msgid "You need to be logged-in to create reports"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:140
+#: lib/graphql/resolvers/resource.ex:142
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to create resources"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:412
+#: lib/graphql/resolvers/event.ex:439
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to delete an event"
 msgstr ""
@@ -695,7 +690,7 @@ msgstr ""
 msgid "You need to be logged-in to delete posts"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:207
+#: lib/graphql/resolvers/resource.ex:209
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to delete resources"
 msgstr ""
@@ -710,7 +705,7 @@ msgstr ""
 msgid "You need to be logged-in to leave an event"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:369
+#: lib/graphql/resolvers/event.ex:396
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to update an event"
 msgstr ""
@@ -720,17 +715,17 @@ msgstr ""
 msgid "You need to be logged-in to update posts"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:177
+#: lib/graphql/resolvers/resource.ex:179
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to update resources"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:236
+#: lib/graphql/resolvers/resource.ex:233
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to view a resource preview"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:132
+#: lib/graphql/resolvers/resource.ex:134
 #, elixir-autogen, elixir-format
 msgid "Parent resource doesn't belong to this group"
 msgstr ""
@@ -816,12 +811,12 @@ msgstr ""
 msgid "Profile is not administrator for the group"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:358
+#: lib/graphql/resolvers/event.ex:385
 #, elixir-autogen, elixir-format
 msgid "You can't edit this event."
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:361
+#: lib/graphql/resolvers/event.ex:388
 #, elixir-autogen, elixir-format
 msgid "You can't attribute this event to this profile."
 msgstr ""
@@ -841,7 +836,7 @@ msgstr ""
 msgid "You don't have the right to remove this member."
 msgstr ""
 
-#: lib/mobilizon/actors/actor.ex:377
+#: lib/mobilizon/actors/actor.ex:378
 #, elixir-autogen, elixir-format
 msgid "This username is already taken."
 msgstr ""
@@ -851,7 +846,7 @@ msgstr ""
 msgid "You must provide either an ID or a slug to access a discussion"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:275
+#: lib/graphql/resolvers/event.ex:276
 #, elixir-autogen, elixir-format
 msgid "Organizer profile is not owned by the user"
 msgstr ""
@@ -863,41 +858,41 @@ msgstr ""
 
 #: lib/graphql/resolvers/group.ex:181
 #: lib/graphql/resolvers/group.ex:223
-#: lib/graphql/resolvers/person.ex:157
-#: lib/graphql/resolvers/person.ex:191
-#: lib/graphql/resolvers/person.ex:324
+#: lib/graphql/resolvers/person.ex:159
+#: lib/graphql/resolvers/person.ex:193
+#: lib/graphql/resolvers/person.ex:326
 #, elixir-autogen, elixir-format
 msgid "The provided picture is too heavy"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:129
+#: lib/graphql/resolvers/resource.ex:131
 #, elixir-autogen, elixir-format
 msgid "Error while creating resource"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:537
+#: lib/graphql/resolvers/user.ex:566
 #, elixir-autogen, elixir-format
 msgid "Invalid activation token"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:226
+#: lib/graphql/resolvers/resource.ex:228
 #, elixir-autogen, elixir-format
 msgid "Unable to fetch resource details from this URL."
 msgstr ""
 
 #: lib/graphql/resolvers/event.ex:165
 #: lib/graphql/resolvers/participant.ex:253
-#: lib/graphql/resolvers/participant.ex:328
+#: lib/graphql/resolvers/participant.ex:335
 #, elixir-autogen, elixir-format
 msgid "Provided profile doesn't have moderator permissions on this event"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:286
+#: lib/graphql/resolvers/event.ex:294
 #, elixir-autogen, elixir-format
 msgid "Organizer profile doesn't have permission to create an event on behalf of this group"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:349
+#: lib/graphql/resolvers/event.ex:369
 #, elixir-autogen, elixir-format
 msgid "This profile doesn't have permission to update an event on behalf of this group"
 msgstr ""
@@ -907,7 +902,7 @@ msgstr ""
 msgid "Your e-mail has been denied registration or uses a disallowed e-mail provider"
 msgstr ""
 
-#: lib/graphql/resolvers/comment.ex:150
+#: lib/graphql/resolvers/comment.ex:156
 #, elixir-autogen, elixir-format
 msgid "Comment not found"
 msgstr ""
@@ -917,12 +912,12 @@ msgstr ""
 msgid "Error while creating a discussion"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:658
+#: lib/graphql/resolvers/user.ex:687
 #, elixir-autogen, elixir-format
 msgid "Error while updating locale"
 msgstr ""
 
-#: lib/graphql/resolvers/person.ex:327
+#: lib/graphql/resolvers/person.ex:329
 #, elixir-autogen, elixir-format
 msgid "Error while uploading pictures"
 msgstr ""
@@ -937,13 +932,13 @@ msgstr ""
 msgid "Failed to update the group"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:333
-#: lib/graphql/resolvers/user.ex:501
+#: lib/graphql/resolvers/admin.ex:357
+#: lib/graphql/resolvers/user.ex:547
 #, elixir-autogen, elixir-format
 msgid "Failed to update user email"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:533
+#: lib/graphql/resolvers/user.ex:562
 #, elixir-autogen, elixir-format
 msgid "Failed to validate user email"
 msgstr ""
@@ -953,37 +948,37 @@ msgstr ""
 msgid "The anonymous actor ID is invalid"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:165
+#: lib/graphql/resolvers/resource.ex:167
 #, elixir-autogen, elixir-format
 msgid "Unknown error while updating resource"
 msgstr ""
 
-#: lib/graphql/resolvers/comment.ex:105
+#: lib/graphql/resolvers/comment.ex:111
 #, elixir-autogen, elixir-format
 msgid "You are not the comment creator"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:458
+#: lib/graphql/resolvers/user.ex:471
 #, elixir-autogen, elixir-format
 msgid "You cannot change your password."
 msgstr ""
 
-#: lib/graphql/resolvers/participant.ex:321
+#: lib/graphql/resolvers/participant.ex:328
 #, elixir-autogen, elixir-format
 msgid "Format not supported"
 msgstr ""
 
-#: lib/graphql/resolvers/participant.ex:305
+#: lib/graphql/resolvers/participant.ex:312
 #, elixir-autogen, elixir-format
 msgid "A dependency needed to export to %{format} is not installed"
 msgstr ""
 
-#: lib/graphql/resolvers/participant.ex:313
+#: lib/graphql/resolvers/participant.ex:320
 #, elixir-autogen, elixir-format
 msgid "An error occured while saving export"
 msgstr ""
 
-#: lib/web/controllers/export_controller.ex:30
+#: lib/web/controllers/export_controller.ex:32
 #, elixir-autogen, elixir-format
 msgid "Export to format %{format} is not enabled on this instance"
 msgstr ""
@@ -993,17 +988,17 @@ msgstr ""
 msgid "Only admins can create groups"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:279
+#: lib/graphql/resolvers/event.ex:280
 #, elixir-autogen, elixir-format
 msgid "Only groups can create events"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:305
+#: lib/graphql/resolvers/event.ex:313
 #, elixir-autogen, elixir-format
 msgid "Unknown error while creating event"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:514
+#: lib/graphql/resolvers/user.ex:498
 #, elixir-autogen, elixir-format
 msgid "User cannot change email"
 msgstr ""
@@ -1018,12 +1013,12 @@ msgstr ""
 msgid "Follow not found"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:379
+#: lib/graphql/resolvers/user.ex:392
 #, elixir-autogen, elixir-format
 msgid "Profile with username %{username} not found"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:374
+#: lib/graphql/resolvers/user.ex:387
 #, elixir-autogen, elixir-format
 msgid "This profile does not belong to you"
 msgstr ""
@@ -1068,22 +1063,22 @@ msgstr ""
 msgid "Your email seems to be using an invalid format"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:382
+#: lib/graphql/resolvers/admin.ex:399
 #, elixir-autogen, elixir-format
 msgid "Can't confirm an already confirmed user"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:386
+#: lib/graphql/resolvers/admin.ex:403
 #, elixir-autogen, elixir-format
 msgid "Deconfirming users is not supported"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:358
+#: lib/graphql/resolvers/admin.ex:375
 #, elixir-autogen, elixir-format
 msgid "The new role must be different"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:309
+#: lib/graphql/resolvers/admin.ex:314
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in and an administrator to edit an user's details"
 msgstr ""
@@ -1093,28 +1088,28 @@ msgstr ""
 msgid "A profile or group with that name already exists"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:519
+#: lib/graphql/resolvers/admin.ex:542
 #, elixir-autogen, elixir-format
 msgid "Unable to find an instance to follow at this address"
 msgstr ""
 
-#: lib/mobilizon/actors/actor.ex:396
+#: lib/mobilizon/actors/actor.ex:397
 #, elixir-autogen, elixir-format
 msgid "Username must only contain alphanumeric lowercased characters and underscores."
 msgstr ""
 
 #: lib/graphql/resolvers/user.ex:303
-#: lib/graphql/resolvers/user.ex:326
+#: lib/graphql/resolvers/user.ex:333
 #, elixir-autogen, elixir-format, fuzzy
 msgid "This email doesn't seem to be valid"
 msgstr ""
 
-#: lib/graphql/resolvers/comment.ex:65
+#: lib/graphql/resolvers/comment.ex:59
 #, elixir-autogen, elixir-format
 msgid "This comment was detected as spam."
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:293
+#: lib/graphql/resolvers/event.ex:301
 #, elixir-autogen, elixir-format
 msgid "This event was detected as spam."
 msgstr ""
@@ -1135,7 +1130,7 @@ msgstr ""
 msgid "You need to be a moderator or an administrator to create a note on a report"
 msgstr ""
 
-#: lib/graphql/resolvers/person.ex:330
+#: lib/graphql/resolvers/person.ex:332
 #, elixir-autogen, elixir-format
 msgid "Your profile was detected as spam."
 msgstr ""
@@ -1145,7 +1140,7 @@ msgstr ""
 msgid "Your registration has been detected as spam and cannot be processed."
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:86
+#: lib/web/controllers/application_controller.ex:88
 #, elixir-autogen, elixir-format
 msgid "All of name, scope and redirect_uri parameters are required to create an application"
 msgstr ""
@@ -1160,171 +1155,227 @@ msgstr ""
 msgid "Application token not found"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:89
+#: lib/graphql/resolvers/application.ex:90
 #, elixir-autogen, elixir-format, fuzzy
 msgid "Error while revoking token"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:59
+#: lib/web/controllers/application_controller.ex:61
 #, elixir-autogen, elixir-format
 msgid "Impossible to create application."
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:356
+#: lib/web/controllers/application_controller.ex:358
 #, elixir-autogen, elixir-format
 msgid "Incorrect parameters sent. You need to provide at least the grant_type and client_id parameters, depending on the grant type being used."
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:329
+#: lib/web/controllers/application_controller.ex:331
 #, elixir-autogen, elixir-format
 msgid "Invalid client credentials provided"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:337
+#: lib/web/controllers/application_controller.ex:339
 #, elixir-autogen, elixir-format
 msgid "Invalid refresh token provided"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:170
-#: lib/web/controllers/application_controller.ex:401
+#: lib/web/controllers/application_controller.ex:172
+#: lib/web/controllers/application_controller.ex:403
 #, elixir-autogen, elixir-format
 msgid "No application was found with this client_id"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:37
+#: lib/graphql/resolvers/application.ex:38
 #, elixir-autogen, elixir-format
 msgid "No application with this client_id was found"
 msgstr ""
 
-#: lib/graphql/authorization.ex:80
+#: lib/graphql/authorization.ex:81
 #, elixir-autogen, elixir-format
 msgid "Not authorized to access field %{field}"
 msgstr ""
 
-#: lib/graphql/authorization.ex:70
-#: lib/graphql/authorization.ex:75
+#: lib/graphql/authorization.ex:71
+#: lib/graphql/authorization.ex:76
 #, elixir-autogen, elixir-format
 msgid "Not authorized to access object %{object}"
 msgstr ""
 
-#: lib/graphql/authorization.ex:63
+#: lib/graphql/authorization.ex:64
 #, elixir-autogen, elixir-format
 msgid "Not authorized to access this %{object_type}"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:279
+#: lib/web/controllers/application_controller.ex:281
 #, elixir-autogen, elixir-format
 msgid "Please slow down the rate of your requests"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:267
+#: lib/web/controllers/application_controller.ex:269
 #, elixir-autogen, elixir-format
 msgid "The authorization request is still pending"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:249
+#: lib/web/controllers/application_controller.ex:251
 #, elixir-autogen, elixir-format
 msgid "The client_id provided or the device_code associated is invalid"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:133
+#: lib/graphql/resolvers/application.ex:139
 #, elixir-autogen, elixir-format
 msgid "The device user code was not provided before approving the application"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:304
+#: lib/web/controllers/application_controller.ex:306
 #, elixir-autogen, elixir-format
 msgid "The given device_code has expired"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:44
+#: lib/graphql/resolvers/application.ex:45
 #, elixir-autogen, elixir-format
 msgid "The given redirect_uri is not in the list of allowed redirect URIs"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:158
+#: lib/web/controllers/application_controller.ex:160
 #, elixir-autogen, elixir-format
 msgid "The given scope is not in the list of the app declared scopes"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:109
-#: lib/graphql/resolvers/application.ex:146
+#: lib/graphql/resolvers/application.ex:112
+#: lib/graphql/resolvers/application.ex:154
 #, elixir-autogen, elixir-format
 msgid "The given user code has expired"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:112
-#: lib/graphql/resolvers/application.ex:140
+#: lib/graphql/resolvers/application.ex:118
+#: lib/graphql/resolvers/application.ex:146
 #, elixir-autogen, elixir-format
 msgid "The given user code is invalid"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:411
+#: lib/web/controllers/application_controller.ex:413
 #, elixir-autogen, elixir-format
 msgid "The provided client_id does not match the provided code"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:414
+#: lib/web/controllers/application_controller.ex:416
 #, elixir-autogen, elixir-format
 msgid "The provided client_secret is invalid"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:407
+#: lib/web/controllers/application_controller.ex:409
 #, elixir-autogen, elixir-format
 msgid "The provided code is invalid or expired"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:418
+#: lib/web/controllers/application_controller.ex:420
 #, elixir-autogen, elixir-format
 msgid "The provided scope is invalid or not included in the app declared scopes"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:45
+#: lib/web/controllers/application_controller.ex:47
 #, elixir-autogen, elixir-format
 msgid "The scope parameter is not a space separated list of valid scopes"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:292
+#: lib/web/controllers/application_controller.ex:294
 #, elixir-autogen, elixir-format
 msgid "The user rejected the requested authorization"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:404
+#: lib/web/controllers/application_controller.ex:406
 #, elixir-autogen, elixir-format
 msgid "This redirect URI is not allowed"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:381
+#: lib/web/controllers/application_controller.ex:383
 #, elixir-autogen, elixir-format, fuzzy
 msgid "Token not found"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:72
+#: lib/web/controllers/application_controller.ex:74
 #, elixir-autogen, elixir-format
 msgid "Too many requests"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:184
+#: lib/web/controllers/application_controller.ex:186
 #, elixir-autogen, elixir-format
 msgid "Unable to produce device code"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:373
+#: lib/web/controllers/application_controller.ex:375
 #, elixir-autogen, elixir-format
 msgid "Unable to revoke token"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:198
+#: lib/web/controllers/application_controller.ex:200
 #, elixir-autogen, elixir-format
 msgid "You need to pass both client_id and scope as parameters to obtain a device code"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:136
+#: lib/web/controllers/application_controller.ex:138
 #, elixir-autogen, elixir-format
 msgid "You need to provide a valid redirect_uri to autorize an application"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:126
+#: lib/web/controllers/application_controller.ex:128
 #, elixir-autogen, elixir-format
 msgid "You need to specify client_id, redirect_uri, scope and state to autorize an application"
 msgstr ""
+
+#: lib/graphql/resolvers/user.ex:306
+#, elixir-autogen, elixir-format
+msgid "Couldn't send an email. Internal error."
+msgstr ""
+
+#: lib/graphql/resolvers/participant.ex:286
+#, elixir-autogen, elixir-format
+msgid "Participation is already confirmed"
+msgstr ""
+
+#: lib/graphql/resolvers/participant.ex:283
+#, elixir-autogen, elixir-format
+msgid "Participation is confirmed but not approved yet by an organizer"
+msgstr ""
+
+#: lib/graphql/resolvers/event.ex:287
+#: lib/graphql/resolvers/event.ex:376
+#, elixir-autogen, elixir-format
+msgid "Providing external registration is not allowed"
+msgstr ""
+
+#: lib/graphql/resolvers/push_subscription.ex:48
+#, elixir-autogen, elixir-format
+msgid "The same push subscription has already been registered"
+msgstr ""
+
+#: lib/graphql/resolvers/admin.ex:536
+#, elixir-autogen, elixir-format
+msgid "This instance is pending follow approval"
+msgstr ""
+
+#: lib/graphql/schema/custom/timezone.ex:23
+#, elixir-autogen, elixir-format
+msgid "Timezone ID %{timezone} is invalid"
+msgstr ""
+
+#: lib/graphql/resolvers/admin.ex:539
+#, elixir-autogen, elixir-format, fuzzy
+msgid "You are already following this instance"
+msgstr ""
+
+#: lib/graphql/resolvers/user.ex:310
+#, elixir-autogen, elixir-format, fuzzy
+msgid "You requested again a confirmation email too soon. Please try again in a few minutes"
+msgstr ""
+
+#: lib/graphql/resolvers/user.ex:341
+#, elixir-autogen, elixir-format
+msgid "You requested again a password reset email too soon. Please try again in a few minutes"
+msgstr ""
+
+#: lib/graphql/resolvers/user.ex:368
+#, elixir-autogen, elixir-format
+msgid "The token you provided is invalid. Make sure that the URL is exactly the one provided inside the email you got."
+msgstr ""
diff --git a/priv/gettext/nl/LC_MESSAGES/activity.po b/priv/gettext/nl/LC_MESSAGES/activity.po
index f2b956a7bedd5ecb6192bb70c944208ce6ced6b5..02afcacd71da49c3cbb85e5d705f8e876c37759f 100644
--- a/priv/gettext/nl/LC_MESSAGES/activity.po
+++ b/priv/gettext/nl/LC_MESSAGES/activity.po
@@ -461,3 +461,15 @@ msgstr ""
 #, elixir-autogen, elixir-format, fuzzy
 msgid "%{profile} approved the member %{member}."
 msgstr ""
+
+#: lib/service/activity/renderer/event.ex:74
+#: lib/web/templates/email/activity/_event_activity_item.html.heex:55
+#: lib/web/templates/email/activity/_event_activity_item.text.eex:31
+#, elixir-autogen, elixir-format
+msgid "%{profile} joined your event %{event}."
+msgstr ""
+
+#: lib/web/views/email_view.ex:45
+#, elixir-autogen, elixir-format
+msgid "An anonymous profile"
+msgstr ""
diff --git a/priv/gettext/nl/LC_MESSAGES/default.po b/priv/gettext/nl/LC_MESSAGES/default.po
index 14335bb93cf46dedead157d0d8099943d7667840..a74d87a0904cb08dc2134c419b119cf8a7d73abc 100644
--- a/priv/gettext/nl/LC_MESSAGES/default.po
+++ b/priv/gettext/nl/LC_MESSAGES/default.po
@@ -22,7 +22,7 @@ msgstr ""
 "niet veranderen tot u op onderstaande link klikt en een nieuw wachtwoord "
 "instelt."
 
-#: lib/web/templates/email/report.html.heex:120
+#: lib/web/templates/email/report.html.heex:121
 #, elixir-autogen, elixir-format
 msgid "%{title} by %{creator}"
 msgstr "%{title} door %{creator}"
@@ -38,23 +38,17 @@ msgstr "Activeer mijn account"
 msgid "Ask the community on Framacolibri"
 msgstr "Vragen aan de gemeenschap op Framacolibri"
 
-#: lib/web/templates/email/report.text.eex:15
+#: lib/web/templates/email/report.text.eex:17
 #, elixir-autogen, elixir-format
 msgid "Comments"
 msgstr "Opmerkingen"
 
-#: lib/web/templates/email/report.html.heex:115
-#: lib/web/templates/email/report.text.eex:11
-#, elixir-autogen, elixir-format
-msgid "Event"
-msgstr "Evenement"
-
 #: lib/web/email/user.ex:49
 #, elixir-autogen, elixir-format
 msgid "Instructions to reset your password on %{instance}"
 msgstr "Instructies om uw wachtwoord opnieuw in te stellen op %{instance}"
 
-#: lib/web/templates/email/report.text.eex:21
+#: lib/web/templates/email/report.text.eex:23
 #, elixir-autogen, elixir-format
 msgid "Reason"
 msgstr "Reden"
@@ -320,12 +314,12 @@ msgctxt "terms"
 msgid "What information do we collect?"
 msgstr ""
 
-#: lib/web/email/user.ex:182
+#: lib/web/email/user.ex:188
 #, elixir-autogen, elixir-format
 msgid "Mobilizon on %{instance}: confirm your email address"
 msgstr ""
 
-#: lib/web/email/user.ex:159
+#: lib/web/email/user.ex:165
 #, elixir-autogen, elixir-format
 msgid "Mobilizon on %{instance}: email changed"
 msgstr ""
@@ -825,7 +819,7 @@ msgstr ""
 msgid "Event update!"
 msgstr "Evenement bijgewerkt!"
 
-#: lib/web/templates/email/report.html.heex:155
+#: lib/web/templates/email/report.html.heex:158
 #, elixir-autogen, elixir-format
 msgid "Flagged comments"
 msgstr ""
@@ -908,7 +902,7 @@ msgstr "Bijna klaar!"
 msgid "New email confirmation"
 msgstr ""
 
-#: lib/web/templates/email/report.html.heex:191
+#: lib/web/templates/email/report.html.heex:194
 #, elixir-autogen, elixir-format
 msgid "Reasons for report"
 msgstr ""
@@ -963,12 +957,12 @@ msgstr "Jammer genoeg heeft de organisator uw deelname afgewezen."
 msgid "Verify your email address"
 msgstr ""
 
-#: lib/web/templates/email/report.html.heex:232
+#: lib/web/templates/email/report.html.heex:235
 #, elixir-autogen, elixir-format
 msgid "View report"
 msgstr "Bekijk de melding"
 
-#: lib/web/templates/email/report.text.eex:24
+#: lib/web/templates/email/report.text.eex:26
 #, elixir-autogen, elixir-format
 msgid "View report:"
 msgstr "Rapportage bekijken:"
@@ -1066,12 +1060,6 @@ msgstr ""
 msgid "As this group was located on another instance, it will continue to work for other instances than this one."
 msgstr ""
 
-#: lib/web/templates/email/group_suspension.html.heex:67
-#: lib/web/templates/email/group_suspension.text.eex:5
-#, elixir-autogen, elixir-format
-msgid "As this group was located on this instance, all of it's data has been irretrievably deleted."
-msgstr ""
-
 #: lib/web/templates/email/group_suspension.html.heex:18
 #: lib/web/templates/email/group_suspension.text.eex:1
 #, elixir-autogen, elixir-format
@@ -1083,7 +1071,7 @@ msgstr ""
 msgid "Your instance's moderation team has decided to suspend %{group_name} (%{group_address}). You are no longer a member of this group."
 msgstr ""
 
-#: lib/web/email/group.ex:107
+#: lib/web/email/group.ex:108
 #, elixir-autogen, elixir-format
 msgid "The group %{group} has been suspended on %{instance}"
 msgstr ""
@@ -1371,16 +1359,6 @@ msgstr ""
 msgid "Public feed for %{instance}"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:350
-#, elixir-autogen, elixir-format
-msgid "The password you have choosen is too short. Please make sure your password contains at least 6 charaters."
-msgstr ""
-
-#: lib/graphql/resolvers/user.ex:356
-#, elixir-autogen, elixir-format
-msgid "The token you provided is invalid. Make sure that the URL is exactly the one provided inside the email you got."
-msgstr ""
-
 #: lib/web/email/actor.ex:43
 #, elixir-autogen, elixir-format
 msgid "Your participation to %{event} has been cancelled!"
@@ -1404,63 +1382,63 @@ msgid "Your participation to %{event} on %{instance} has been cancelled!"
 msgstr "Uw deelname aan het evenement %{title} op %{instance} is goedgekeurd"
 
 #. File name template for exported list of participants. Should NOT contain spaces. Make sure the output is going to be something standardized that is acceptable as a file name on most systems.
-#: lib/service/export/participants/csv.ex:81
+#: lib/service/export/participants/csv.ex:97
 #: lib/service/export/participants/ods.ex:86
 #: lib/service/export/participants/pdf.ex:96
 #, elixir-autogen, elixir-format
 msgid "%{event}_participants"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:61
+#: lib/service/export/participants/common.ex:66
 #, elixir-autogen, elixir-format
 msgid "Participant message"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:61
+#: lib/service/export/participants/common.ex:63
 #, elixir-autogen, elixir-format
 msgid "Participant name"
 msgstr "Deelname goedgekeurd"
 
-#: lib/service/export/participants/common.ex:61
+#: lib/service/export/participants/common.ex:64
 #, elixir-autogen, elixir-format
 msgid "Participant status"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:52
+#: lib/service/export/participants/common.ex:53
 #: lib/web/templates/email/admin/_role.html.heex:3
 #: lib/web/templates/email/admin/_role.text.eex:1
 #, elixir-autogen, elixir-format
 msgid "Administrator"
 msgstr "Beheerder"
 
-#: lib/service/export/participants/common.ex:55
+#: lib/service/export/participants/common.ex:56
 #, elixir-autogen, elixir-format
 msgid "Creator"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:49
+#: lib/service/export/participants/common.ex:50
 #: lib/web/templates/email/admin/_role.html.heex:5
 #: lib/web/templates/email/admin/_role.text.eex:1
 #, elixir-autogen, elixir-format
 msgid "Moderator"
 msgstr "Moderator"
 
-#: lib/service/export/participants/common.ex:37
+#: lib/service/export/participants/common.ex:38
 #, elixir-autogen, elixir-format
 msgid "Not approved"
 msgstr "Niet goedgekeurd"
 
-#: lib/service/export/participants/common.ex:40
+#: lib/service/export/participants/common.ex:41
 #, elixir-autogen, elixir-format
 msgid "Not confirmed"
 msgstr "Niet bevestigd"
 
-#: lib/service/export/participants/common.ex:46
+#: lib/service/export/participants/common.ex:47
 #, elixir-autogen, elixir-format
 msgid "Participant"
 msgstr "Deelname goedgekeurd"
 
-#: lib/service/export/participants/common.ex:43
+#: lib/service/export/participants/common.ex:44
 #, elixir-autogen, elixir-format
 msgid "Rejected"
 msgstr "Afgekeurd"
@@ -1485,7 +1463,7 @@ msgstr ""
 msgid "Participants for %{event}"
 msgstr "Deelname goedgekeurd"
 
-#: lib/service/export/participants/common.ex:88
+#: lib/service/export/participants/common.ex:95
 #, elixir-autogen, elixir-format
 msgid "Anonymous participant"
 msgstr "Anonieme deelnemer"
@@ -1604,7 +1582,7 @@ msgstr "Deelnemen:"
 msgid "Title: %{title}"
 msgstr ""
 
-#: lib/web/email/group.ex:46
+#: lib/web/email/group.ex:47
 #, elixir-autogen, elixir-format
 msgid "📅 Just scheduled by %{group}: %{event}"
 msgstr ""
@@ -2027,3 +2005,24 @@ msgstr ""
 #, elixir-autogen, elixir-format
 msgid "Until next time!"
 msgstr ""
+
+#: lib/web/templates/email/group_suspension.html.heex:67
+#: lib/web/templates/email/group_suspension.text.eex:5
+#, elixir-autogen, elixir-format, fuzzy
+msgid "As this group was located on this instance, all of its data has been irretrievably deleted."
+msgstr ""
+
+#: lib/web/templates/email/report.text.eex:11
+#, elixir-autogen, elixir-format, fuzzy
+msgid "Events"
+msgstr "Evenement"
+
+#: lib/web/templates/email/report.html.heex:115
+#, elixir-autogen, elixir-format, fuzzy
+msgid "Flagged events"
+msgstr ""
+
+#: lib/service/export/participants/common.ex:65
+#, elixir-autogen, elixir-format, fuzzy
+msgid "Participant registration date"
+msgstr ""
diff --git a/priv/gettext/nl/LC_MESSAGES/errors.po b/priv/gettext/nl/LC_MESSAGES/errors.po
index 7e36de8af2eb385c786d907ea75c8917e759008b..cf12b30cea266b10896a4aee96cb6ef43484db20 100644
--- a/priv/gettext/nl/LC_MESSAGES/errors.po
+++ b/priv/gettext/nl/LC_MESSAGES/errors.po
@@ -9,7 +9,7 @@
 msgid ""
 msgstr ""
 "Language: nl\n"
-"Plural-Forms: nplurals=2\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
 
 #: lib/mobilizon/discussions/discussion.ex:69
 #, elixir-autogen
@@ -103,7 +103,7 @@ msgstr ""
 msgid "Current profile is not an administrator of the selected group"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:644
+#: lib/graphql/resolvers/user.ex:673
 #, elixir-autogen, elixir-format
 msgid "Error while saving user settings"
 msgstr ""
@@ -146,8 +146,8 @@ msgstr ""
 msgid "No user to validate with this email was found"
 msgstr ""
 
-#: lib/graphql/resolvers/person.ex:337
-#: lib/graphql/resolvers/user.ex:330
+#: lib/graphql/resolvers/person.ex:339
+#: lib/graphql/resolvers/user.ex:337
 #, elixir-autogen, elixir-format
 msgid "No user with this email was found"
 msgstr ""
@@ -155,12 +155,12 @@ msgstr ""
 #: lib/graphql/resolvers/feed_token.ex:28
 #: lib/graphql/resolvers/participant.ex:32
 #: lib/graphql/resolvers/participant.ex:210
-#: lib/graphql/resolvers/person.ex:245
-#: lib/graphql/resolvers/person.ex:376
-#: lib/graphql/resolvers/person.ex:412
-#: lib/graphql/resolvers/person.ex:419
-#: lib/graphql/resolvers/person.ex:448
-#: lib/graphql/resolvers/person.ex:463
+#: lib/graphql/resolvers/person.ex:247
+#: lib/graphql/resolvers/person.ex:378
+#: lib/graphql/resolvers/person.ex:414
+#: lib/graphql/resolvers/person.ex:421
+#: lib/graphql/resolvers/person.ex:450
+#: lib/graphql/resolvers/person.ex:465
 #, elixir-autogen, elixir-format
 msgid "Profile is not owned by authenticated user"
 msgstr ""
@@ -170,41 +170,42 @@ msgstr ""
 msgid "Registrations are not open"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:461
+#: lib/graphql/resolvers/user.ex:474
 #, elixir-autogen, elixir-format
 msgid "The current password is invalid"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:336
-#: lib/graphql/resolvers/user.ex:504
+#: lib/graphql/resolvers/admin.ex:334
+#: lib/graphql/resolvers/user.ex:527
 #, elixir-autogen, elixir-format
 msgid "The new email doesn't seem to be valid"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:339
-#: lib/graphql/resolvers/user.ex:507
+#: lib/graphql/resolvers/admin.ex:323
+#: lib/graphql/resolvers/user.ex:514
 #, elixir-autogen, elixir-format
 msgid "The new email must be different"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:464
+#: lib/graphql/resolvers/user.ex:477
 #, elixir-autogen, elixir-format
 msgid "The new password must be different"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:511
-#: lib/graphql/resolvers/user.ex:573
-#: lib/graphql/resolvers/user.ex:576
+#: lib/graphql/resolvers/user.ex:518
+#: lib/graphql/resolvers/user.ex:602
+#: lib/graphql/resolvers/user.ex:605
 #, elixir-autogen, elixir-format
 msgid "The password provided is invalid"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:468
+#: lib/graphql/resolvers/user.ex:361
+#: lib/graphql/resolvers/user.ex:481
 #, elixir-autogen, elixir-format
 msgid "The password you have chosen is too short. Please make sure your password contains at least 6 characters."
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:323
+#: lib/graphql/resolvers/user.ex:330
 #, elixir-autogen, elixir-format
 msgid "This user can't reset their password"
 msgstr ""
@@ -220,12 +221,12 @@ msgstr ""
 msgid "Unable to validate user"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:554
+#: lib/graphql/resolvers/user.ex:583
 #, elixir-autogen, elixir-format
 msgid "User already disabled"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:619
+#: lib/graphql/resolvers/user.ex:648
 #, elixir-autogen, elixir-format
 msgid "User requested is not logged-in"
 msgstr ""
@@ -250,12 +251,12 @@ msgstr ""
 msgid "You may not list groups unless moderator."
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:519
+#: lib/graphql/resolvers/user.ex:503
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to change your email"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:476
+#: lib/graphql/resolvers/user.ex:489
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to change your password"
 msgstr ""
@@ -265,7 +266,7 @@ msgstr ""
 msgid "You need to be logged-in to delete a group"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:581
+#: lib/graphql/resolvers/user.ex:610
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to delete your account"
 msgstr ""
@@ -290,12 +291,6 @@ msgstr ""
 msgid "You need to have an existing token to get a refresh token"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:306
-#: lib/graphql/resolvers/user.ex:333
-#, elixir-autogen, elixir-format
-msgid "You requested again a confirmation email too soon"
-msgstr ""
-
 #: lib/graphql/resolvers/user.ex:180
 #, elixir-autogen, elixir-format
 msgid "Your email is not on the allowlist"
@@ -348,17 +343,17 @@ msgstr ""
 msgid "Anonymous participation is not enabled"
 msgstr ""
 
-#: lib/graphql/resolvers/person.ex:219
+#: lib/graphql/resolvers/person.ex:221
 #, elixir-autogen, elixir-format
 msgid "Cannot remove the last administrator of a group"
 msgstr ""
 
-#: lib/graphql/resolvers/person.ex:216
+#: lib/graphql/resolvers/person.ex:218
 #, elixir-autogen, elixir-format
 msgid "Cannot remove the last identity of a user"
 msgstr ""
 
-#: lib/graphql/resolvers/comment.ex:147
+#: lib/graphql/resolvers/comment.ex:153
 #, elixir-autogen, elixir-format
 msgid "Comment is already deleted"
 msgstr ""
@@ -386,8 +381,8 @@ msgid "Event id not found"
 msgstr ""
 
 #: lib/graphql/error.ex:114
-#: lib/graphql/resolvers/event.ex:355
-#: lib/graphql/resolvers/event.ex:407
+#: lib/graphql/resolvers/event.ex:382
+#: lib/graphql/resolvers/event.ex:434
 #, elixir-autogen, elixir-format
 msgid "Event not found"
 msgstr ""
@@ -395,7 +390,7 @@ msgstr ""
 #: lib/graphql/resolvers/participant.ex:87
 #: lib/graphql/resolvers/participant.ex:128
 #: lib/graphql/resolvers/participant.ex:155
-#: lib/graphql/resolvers/participant.ex:336
+#: lib/graphql/resolvers/participant.ex:343
 #, elixir-autogen, elixir-format
 msgid "Event with this ID %{id} doesn't exist"
 msgstr ""
@@ -405,7 +400,7 @@ msgstr ""
 msgid "Internal Error"
 msgstr ""
 
-#: lib/graphql/resolvers/discussion.ex:219
+#: lib/graphql/resolvers/discussion.ex:222
 #, elixir-autogen, elixir-format
 msgid "No discussion with ID %{id}"
 msgstr ""
@@ -472,10 +467,10 @@ msgstr ""
 #: lib/graphql/resolvers/post.ex:133
 #: lib/graphql/resolvers/post.ex:175
 #: lib/graphql/resolvers/post.ex:209
-#: lib/graphql/resolvers/resource.ex:90
-#: lib/graphql/resolvers/resource.ex:135
-#: lib/graphql/resolvers/resource.ex:168
-#: lib/graphql/resolvers/resource.ex:202
+#: lib/graphql/resolvers/resource.ex:92
+#: lib/graphql/resolvers/resource.ex:137
+#: lib/graphql/resolvers/resource.ex:170
+#: lib/graphql/resolvers/resource.ex:204
 #: lib/graphql/resolvers/todos.ex:58
 #: lib/graphql/resolvers/todos.ex:83
 #: lib/graphql/resolvers/todos.ex:110
@@ -487,7 +482,7 @@ msgid "Profile is not member of group"
 msgstr ""
 
 #: lib/graphql/resolvers/actor.ex:67
-#: lib/graphql/resolvers/person.ex:242
+#: lib/graphql/resolvers/person.ex:244
 #, elixir-autogen, elixir-format
 msgid "Profile not found"
 msgstr ""
@@ -497,8 +492,8 @@ msgstr ""
 msgid "Report not found"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:172
-#: lib/graphql/resolvers/resource.ex:199
+#: lib/graphql/resolvers/resource.ex:174
+#: lib/graphql/resolvers/resource.ex:201
 #, elixir-autogen, elixir-format
 msgid "Resource doesn't exist"
 msgstr ""
@@ -508,7 +503,7 @@ msgstr ""
 msgid "The event has already reached its maximum capacity"
 msgstr ""
 
-#: lib/graphql/resolvers/participant.ex:282
+#: lib/graphql/resolvers/participant.ex:289
 #, elixir-autogen, elixir-format
 msgid "This token is invalid"
 msgstr ""
@@ -542,7 +537,7 @@ msgstr ""
 msgid "User not found"
 msgstr ""
 
-#: lib/graphql/resolvers/person.ex:333
+#: lib/graphql/resolvers/person.ex:335
 #, elixir-autogen, elixir-format
 msgid "You already have a profile for this user"
 msgstr ""
@@ -564,7 +559,7 @@ msgstr ""
 msgid "You are not a moderator or admin for this group"
 msgstr ""
 
-#: lib/graphql/resolvers/comment.ex:80
+#: lib/graphql/resolvers/comment.ex:74
 #, elixir-autogen, elixir-format
 msgid "You are not allowed to create a comment if not connected"
 msgstr ""
@@ -574,7 +569,7 @@ msgstr ""
 msgid "You are not allowed to create a feed token if not connected"
 msgstr ""
 
-#: lib/graphql/resolvers/comment.ex:155
+#: lib/graphql/resolvers/comment.ex:161
 #, elixir-autogen, elixir-format
 msgid "You are not allowed to delete a comment if not connected"
 msgstr ""
@@ -584,7 +579,7 @@ msgstr ""
 msgid "You are not allowed to delete a feed token if not connected"
 msgstr ""
 
-#: lib/graphql/resolvers/comment.ex:114
+#: lib/graphql/resolvers/comment.ex:120
 #, elixir-autogen, elixir-format
 msgid "You are not allowed to update a comment if not connected"
 msgstr ""
@@ -600,12 +595,12 @@ msgstr ""
 msgid "You can't set yourself to a lower member role for this group because you are the only administrator"
 msgstr ""
 
-#: lib/graphql/resolvers/comment.ex:143
+#: lib/graphql/resolvers/comment.ex:149
 #, elixir-autogen, elixir-format
 msgid "You cannot delete this comment"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:403
+#: lib/graphql/resolvers/event.ex:430
 #, elixir-autogen, elixir-format
 msgid "You cannot delete this event"
 msgstr ""
@@ -640,17 +635,17 @@ msgstr ""
 msgid "You need to be logged-in and a moderator to view a report"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:252
+#: lib/graphql/resolvers/admin.ex:258
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in and an administrator to access admin settings"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:236
+#: lib/graphql/resolvers/admin.ex:242
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in and an administrator to access dashboard statistics"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:278
+#: lib/graphql/resolvers/admin.ex:283
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in and an administrator to save admin settings"
 msgstr ""
@@ -660,12 +655,12 @@ msgstr ""
 msgid "You need to be logged-in to access discussions"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:96
+#: lib/graphql/resolvers/resource.ex:98
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to access resources"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:313
+#: lib/graphql/resolvers/event.ex:321
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to create events"
 msgstr ""
@@ -680,12 +675,12 @@ msgstr ""
 msgid "You need to be logged-in to create reports"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:140
+#: lib/graphql/resolvers/resource.ex:142
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to create resources"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:412
+#: lib/graphql/resolvers/event.ex:439
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to delete an event"
 msgstr ""
@@ -695,7 +690,7 @@ msgstr ""
 msgid "You need to be logged-in to delete posts"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:207
+#: lib/graphql/resolvers/resource.ex:209
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to delete resources"
 msgstr ""
@@ -710,7 +705,7 @@ msgstr ""
 msgid "You need to be logged-in to leave an event"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:369
+#: lib/graphql/resolvers/event.ex:396
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to update an event"
 msgstr ""
@@ -720,17 +715,17 @@ msgstr ""
 msgid "You need to be logged-in to update posts"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:177
+#: lib/graphql/resolvers/resource.ex:179
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to update resources"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:236
+#: lib/graphql/resolvers/resource.ex:233
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to view a resource preview"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:132
+#: lib/graphql/resolvers/resource.ex:134
 #, elixir-autogen, elixir-format
 msgid "Parent resource doesn't belong to this group"
 msgstr ""
@@ -816,12 +811,12 @@ msgstr ""
 msgid "Profile is not administrator for the group"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:358
+#: lib/graphql/resolvers/event.ex:385
 #, elixir-autogen, elixir-format
 msgid "You can't edit this event."
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:361
+#: lib/graphql/resolvers/event.ex:388
 #, elixir-autogen, elixir-format
 msgid "You can't attribute this event to this profile."
 msgstr ""
@@ -841,7 +836,7 @@ msgstr ""
 msgid "You don't have the right to remove this member."
 msgstr ""
 
-#: lib/mobilizon/actors/actor.ex:377
+#: lib/mobilizon/actors/actor.ex:378
 #, elixir-autogen, elixir-format
 msgid "This username is already taken."
 msgstr ""
@@ -851,7 +846,7 @@ msgstr ""
 msgid "You must provide either an ID or a slug to access a discussion"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:275
+#: lib/graphql/resolvers/event.ex:276
 #, elixir-autogen, elixir-format
 msgid "Organizer profile is not owned by the user"
 msgstr ""
@@ -863,41 +858,41 @@ msgstr ""
 
 #: lib/graphql/resolvers/group.ex:181
 #: lib/graphql/resolvers/group.ex:223
-#: lib/graphql/resolvers/person.ex:157
-#: lib/graphql/resolvers/person.ex:191
-#: lib/graphql/resolvers/person.ex:324
+#: lib/graphql/resolvers/person.ex:159
+#: lib/graphql/resolvers/person.ex:193
+#: lib/graphql/resolvers/person.ex:326
 #, elixir-autogen, elixir-format
 msgid "The provided picture is too heavy"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:129
+#: lib/graphql/resolvers/resource.ex:131
 #, elixir-autogen, elixir-format
 msgid "Error while creating resource"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:537
+#: lib/graphql/resolvers/user.ex:566
 #, elixir-autogen, elixir-format
 msgid "Invalid activation token"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:226
+#: lib/graphql/resolvers/resource.ex:228
 #, elixir-autogen, elixir-format
 msgid "Unable to fetch resource details from this URL."
 msgstr ""
 
 #: lib/graphql/resolvers/event.ex:165
 #: lib/graphql/resolvers/participant.ex:253
-#: lib/graphql/resolvers/participant.ex:328
+#: lib/graphql/resolvers/participant.ex:335
 #, elixir-autogen, elixir-format
 msgid "Provided profile doesn't have moderator permissions on this event"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:286
+#: lib/graphql/resolvers/event.ex:294
 #, elixir-autogen, elixir-format
 msgid "Organizer profile doesn't have permission to create an event on behalf of this group"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:349
+#: lib/graphql/resolvers/event.ex:369
 #, elixir-autogen, elixir-format
 msgid "This profile doesn't have permission to update an event on behalf of this group"
 msgstr ""
@@ -907,7 +902,7 @@ msgstr ""
 msgid "Your e-mail has been denied registration or uses a disallowed e-mail provider"
 msgstr ""
 
-#: lib/graphql/resolvers/comment.ex:150
+#: lib/graphql/resolvers/comment.ex:156
 #, elixir-autogen, elixir-format
 msgid "Comment not found"
 msgstr ""
@@ -917,12 +912,12 @@ msgstr ""
 msgid "Error while creating a discussion"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:658
+#: lib/graphql/resolvers/user.ex:687
 #, elixir-autogen, elixir-format
 msgid "Error while updating locale"
 msgstr ""
 
-#: lib/graphql/resolvers/person.ex:327
+#: lib/graphql/resolvers/person.ex:329
 #, elixir-autogen, elixir-format
 msgid "Error while uploading pictures"
 msgstr ""
@@ -937,13 +932,13 @@ msgstr ""
 msgid "Failed to update the group"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:333
-#: lib/graphql/resolvers/user.ex:501
+#: lib/graphql/resolvers/admin.ex:357
+#: lib/graphql/resolvers/user.ex:547
 #, elixir-autogen, elixir-format
 msgid "Failed to update user email"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:533
+#: lib/graphql/resolvers/user.ex:562
 #, elixir-autogen, elixir-format
 msgid "Failed to validate user email"
 msgstr ""
@@ -953,37 +948,37 @@ msgstr ""
 msgid "The anonymous actor ID is invalid"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:165
+#: lib/graphql/resolvers/resource.ex:167
 #, elixir-autogen, elixir-format
 msgid "Unknown error while updating resource"
 msgstr ""
 
-#: lib/graphql/resolvers/comment.ex:105
+#: lib/graphql/resolvers/comment.ex:111
 #, elixir-autogen, elixir-format
 msgid "You are not the comment creator"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:458
+#: lib/graphql/resolvers/user.ex:471
 #, elixir-autogen, elixir-format
 msgid "You cannot change your password."
 msgstr ""
 
-#: lib/graphql/resolvers/participant.ex:321
+#: lib/graphql/resolvers/participant.ex:328
 #, elixir-autogen, elixir-format
 msgid "Format not supported"
 msgstr ""
 
-#: lib/graphql/resolvers/participant.ex:305
+#: lib/graphql/resolvers/participant.ex:312
 #, elixir-autogen, elixir-format
 msgid "A dependency needed to export to %{format} is not installed"
 msgstr ""
 
-#: lib/graphql/resolvers/participant.ex:313
+#: lib/graphql/resolvers/participant.ex:320
 #, elixir-autogen, elixir-format
 msgid "An error occured while saving export"
 msgstr ""
 
-#: lib/web/controllers/export_controller.ex:30
+#: lib/web/controllers/export_controller.ex:32
 #, elixir-autogen, elixir-format
 msgid "Export to format %{format} is not enabled on this instance"
 msgstr ""
@@ -993,17 +988,17 @@ msgstr ""
 msgid "Only admins can create groups"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:279
+#: lib/graphql/resolvers/event.ex:280
 #, elixir-autogen, elixir-format
 msgid "Only groups can create events"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:305
+#: lib/graphql/resolvers/event.ex:313
 #, elixir-autogen, elixir-format
 msgid "Unknown error while creating event"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:514
+#: lib/graphql/resolvers/user.ex:498
 #, elixir-autogen, elixir-format
 msgid "User cannot change email"
 msgstr ""
@@ -1018,12 +1013,12 @@ msgstr ""
 msgid "Follow not found"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:379
+#: lib/graphql/resolvers/user.ex:392
 #, elixir-autogen, elixir-format
 msgid "Profile with username %{username} not found"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:374
+#: lib/graphql/resolvers/user.ex:387
 #, elixir-autogen, elixir-format
 msgid "This profile does not belong to you"
 msgstr ""
@@ -1068,22 +1063,22 @@ msgstr ""
 msgid "Your email seems to be using an invalid format"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:382
+#: lib/graphql/resolvers/admin.ex:399
 #, elixir-autogen, elixir-format
 msgid "Can't confirm an already confirmed user"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:386
+#: lib/graphql/resolvers/admin.ex:403
 #, elixir-autogen, elixir-format
 msgid "Deconfirming users is not supported"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:358
+#: lib/graphql/resolvers/admin.ex:375
 #, elixir-autogen, elixir-format, fuzzy
 msgid "The new role must be different"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:309
+#: lib/graphql/resolvers/admin.ex:314
 #, elixir-autogen, elixir-format, fuzzy
 msgid "You need to be logged-in and an administrator to edit an user's details"
 msgstr ""
@@ -1093,28 +1088,28 @@ msgstr ""
 msgid "A profile or group with that name already exists"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:519
+#: lib/graphql/resolvers/admin.ex:542
 #, elixir-autogen, elixir-format
 msgid "Unable to find an instance to follow at this address"
 msgstr ""
 
-#: lib/mobilizon/actors/actor.ex:396
+#: lib/mobilizon/actors/actor.ex:397
 #, elixir-autogen, elixir-format
 msgid "Username must only contain alphanumeric lowercased characters and underscores."
 msgstr ""
 
 #: lib/graphql/resolvers/user.ex:303
-#: lib/graphql/resolvers/user.ex:326
+#: lib/graphql/resolvers/user.ex:333
 #, elixir-autogen, elixir-format, fuzzy
 msgid "This email doesn't seem to be valid"
 msgstr ""
 
-#: lib/graphql/resolvers/comment.ex:65
+#: lib/graphql/resolvers/comment.ex:59
 #, elixir-autogen, elixir-format
 msgid "This comment was detected as spam."
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:293
+#: lib/graphql/resolvers/event.ex:301
 #, elixir-autogen, elixir-format
 msgid "This event was detected as spam."
 msgstr ""
@@ -1135,7 +1130,7 @@ msgstr ""
 msgid "You need to be a moderator or an administrator to create a note on a report"
 msgstr ""
 
-#: lib/graphql/resolvers/person.ex:330
+#: lib/graphql/resolvers/person.ex:332
 #, elixir-autogen, elixir-format
 msgid "Your profile was detected as spam."
 msgstr ""
@@ -1145,7 +1140,7 @@ msgstr ""
 msgid "Your registration has been detected as spam and cannot be processed."
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:86
+#: lib/web/controllers/application_controller.ex:88
 #, elixir-autogen, elixir-format
 msgid "All of name, scope and redirect_uri parameters are required to create an application"
 msgstr ""
@@ -1160,171 +1155,227 @@ msgstr ""
 msgid "Application token not found"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:89
+#: lib/graphql/resolvers/application.ex:90
 #, elixir-autogen, elixir-format, fuzzy
 msgid "Error while revoking token"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:59
+#: lib/web/controllers/application_controller.ex:61
 #, elixir-autogen, elixir-format
 msgid "Impossible to create application."
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:356
+#: lib/web/controllers/application_controller.ex:358
 #, elixir-autogen, elixir-format
 msgid "Incorrect parameters sent. You need to provide at least the grant_type and client_id parameters, depending on the grant type being used."
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:329
+#: lib/web/controllers/application_controller.ex:331
 #, elixir-autogen, elixir-format
 msgid "Invalid client credentials provided"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:337
+#: lib/web/controllers/application_controller.ex:339
 #, elixir-autogen, elixir-format
 msgid "Invalid refresh token provided"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:170
-#: lib/web/controllers/application_controller.ex:401
+#: lib/web/controllers/application_controller.ex:172
+#: lib/web/controllers/application_controller.ex:403
 #, elixir-autogen, elixir-format
 msgid "No application was found with this client_id"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:37
+#: lib/graphql/resolvers/application.ex:38
 #, elixir-autogen, elixir-format
 msgid "No application with this client_id was found"
 msgstr ""
 
-#: lib/graphql/authorization.ex:80
+#: lib/graphql/authorization.ex:81
 #, elixir-autogen, elixir-format
 msgid "Not authorized to access field %{field}"
 msgstr ""
 
-#: lib/graphql/authorization.ex:70
-#: lib/graphql/authorization.ex:75
+#: lib/graphql/authorization.ex:71
+#: lib/graphql/authorization.ex:76
 #, elixir-autogen, elixir-format
 msgid "Not authorized to access object %{object}"
 msgstr ""
 
-#: lib/graphql/authorization.ex:63
+#: lib/graphql/authorization.ex:64
 #, elixir-autogen, elixir-format
 msgid "Not authorized to access this %{object_type}"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:279
+#: lib/web/controllers/application_controller.ex:281
 #, elixir-autogen, elixir-format
 msgid "Please slow down the rate of your requests"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:267
+#: lib/web/controllers/application_controller.ex:269
 #, elixir-autogen, elixir-format
 msgid "The authorization request is still pending"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:249
+#: lib/web/controllers/application_controller.ex:251
 #, elixir-autogen, elixir-format
 msgid "The client_id provided or the device_code associated is invalid"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:133
+#: lib/graphql/resolvers/application.ex:139
 #, elixir-autogen, elixir-format
 msgid "The device user code was not provided before approving the application"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:304
+#: lib/web/controllers/application_controller.ex:306
 #, elixir-autogen, elixir-format
 msgid "The given device_code has expired"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:44
+#: lib/graphql/resolvers/application.ex:45
 #, elixir-autogen, elixir-format
 msgid "The given redirect_uri is not in the list of allowed redirect URIs"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:158
+#: lib/web/controllers/application_controller.ex:160
 #, elixir-autogen, elixir-format
 msgid "The given scope is not in the list of the app declared scopes"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:109
-#: lib/graphql/resolvers/application.ex:146
+#: lib/graphql/resolvers/application.ex:112
+#: lib/graphql/resolvers/application.ex:154
 #, elixir-autogen, elixir-format
 msgid "The given user code has expired"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:112
-#: lib/graphql/resolvers/application.ex:140
+#: lib/graphql/resolvers/application.ex:118
+#: lib/graphql/resolvers/application.ex:146
 #, elixir-autogen, elixir-format
 msgid "The given user code is invalid"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:411
+#: lib/web/controllers/application_controller.ex:413
 #, elixir-autogen, elixir-format
 msgid "The provided client_id does not match the provided code"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:414
+#: lib/web/controllers/application_controller.ex:416
 #, elixir-autogen, elixir-format
 msgid "The provided client_secret is invalid"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:407
+#: lib/web/controllers/application_controller.ex:409
 #, elixir-autogen, elixir-format
 msgid "The provided code is invalid or expired"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:418
+#: lib/web/controllers/application_controller.ex:420
 #, elixir-autogen, elixir-format
 msgid "The provided scope is invalid or not included in the app declared scopes"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:45
+#: lib/web/controllers/application_controller.ex:47
 #, elixir-autogen, elixir-format
 msgid "The scope parameter is not a space separated list of valid scopes"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:292
+#: lib/web/controllers/application_controller.ex:294
 #, elixir-autogen, elixir-format
 msgid "The user rejected the requested authorization"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:404
+#: lib/web/controllers/application_controller.ex:406
 #, elixir-autogen, elixir-format
 msgid "This redirect URI is not allowed"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:381
+#: lib/web/controllers/application_controller.ex:383
 #, elixir-autogen, elixir-format, fuzzy
 msgid "Token not found"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:72
+#: lib/web/controllers/application_controller.ex:74
 #, elixir-autogen, elixir-format
 msgid "Too many requests"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:184
+#: lib/web/controllers/application_controller.ex:186
 #, elixir-autogen, elixir-format
 msgid "Unable to produce device code"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:373
+#: lib/web/controllers/application_controller.ex:375
 #, elixir-autogen, elixir-format
 msgid "Unable to revoke token"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:198
+#: lib/web/controllers/application_controller.ex:200
 #, elixir-autogen, elixir-format
 msgid "You need to pass both client_id and scope as parameters to obtain a device code"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:136
+#: lib/web/controllers/application_controller.ex:138
 #, elixir-autogen, elixir-format
 msgid "You need to provide a valid redirect_uri to autorize an application"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:126
+#: lib/web/controllers/application_controller.ex:128
 #, elixir-autogen, elixir-format
 msgid "You need to specify client_id, redirect_uri, scope and state to autorize an application"
 msgstr ""
+
+#: lib/graphql/resolvers/user.ex:306
+#, elixir-autogen, elixir-format
+msgid "Couldn't send an email. Internal error."
+msgstr ""
+
+#: lib/graphql/resolvers/participant.ex:286
+#, elixir-autogen, elixir-format
+msgid "Participation is already confirmed"
+msgstr ""
+
+#: lib/graphql/resolvers/participant.ex:283
+#, elixir-autogen, elixir-format
+msgid "Participation is confirmed but not approved yet by an organizer"
+msgstr ""
+
+#: lib/graphql/resolvers/event.ex:287
+#: lib/graphql/resolvers/event.ex:376
+#, elixir-autogen, elixir-format
+msgid "Providing external registration is not allowed"
+msgstr ""
+
+#: lib/graphql/resolvers/push_subscription.ex:48
+#, elixir-autogen, elixir-format
+msgid "The same push subscription has already been registered"
+msgstr ""
+
+#: lib/graphql/resolvers/admin.ex:536
+#, elixir-autogen, elixir-format
+msgid "This instance is pending follow approval"
+msgstr ""
+
+#: lib/graphql/schema/custom/timezone.ex:23
+#, elixir-autogen, elixir-format
+msgid "Timezone ID %{timezone} is invalid"
+msgstr ""
+
+#: lib/graphql/resolvers/admin.ex:539
+#, elixir-autogen, elixir-format, fuzzy
+msgid "You are already following this instance"
+msgstr ""
+
+#: lib/graphql/resolvers/user.ex:310
+#, elixir-autogen, elixir-format, fuzzy
+msgid "You requested again a confirmation email too soon. Please try again in a few minutes"
+msgstr ""
+
+#: lib/graphql/resolvers/user.ex:341
+#, elixir-autogen, elixir-format
+msgid "You requested again a password reset email too soon. Please try again in a few minutes"
+msgstr ""
+
+#: lib/graphql/resolvers/user.ex:368
+#, elixir-autogen, elixir-format
+msgid "The token you provided is invalid. Make sure that the URL is exactly the one provided inside the email you got."
+msgstr ""
diff --git a/priv/gettext/nn/LC_MESSAGES/activity.po b/priv/gettext/nn/LC_MESSAGES/activity.po
index 0139cfe89b2dfe647929b40e618622147ccfecfa..039d12d710268f0d4b2b2e39161029c5ad17f309 100644
--- a/priv/gettext/nn/LC_MESSAGES/activity.po
+++ b/priv/gettext/nn/LC_MESSAGES/activity.po
@@ -469,3 +469,15 @@ msgstr "%{profile} svara på diskusjonen %{discussion}."
 #, elixir-autogen, elixir-format
 msgid "%{profile} approved the member %{member}."
 msgstr "%{profile} la til medlemen %{member}."
+
+#: lib/service/activity/renderer/event.ex:74
+#: lib/web/templates/email/activity/_event_activity_item.html.heex:55
+#: lib/web/templates/email/activity/_event_activity_item.text.eex:31
+#, elixir-autogen, elixir-format
+msgid "%{profile} joined your event %{event}."
+msgstr ""
+
+#: lib/web/views/email_view.ex:45
+#, elixir-autogen, elixir-format
+msgid "An anonymous profile"
+msgstr ""
diff --git a/priv/gettext/nn/LC_MESSAGES/default.po b/priv/gettext/nn/LC_MESSAGES/default.po
index f7ec4f857d32f770764e8b13bcf9d423b5c5d3fa..cbf95a6439a0148ec891d2cc4aa2804ed57dce28 100644
--- a/priv/gettext/nn/LC_MESSAGES/default.po
+++ b/priv/gettext/nn/LC_MESSAGES/default.po
@@ -21,7 +21,7 @@ msgstr ""
 "Viss du ikkje ba om dette, kan du sjå bort frå denne eposten. Passordet blir "
 "ikkje endra før du klikkar på lenka under og lagar eit nytt."
 
-#: lib/web/templates/email/report.html.heex:120
+#: lib/web/templates/email/report.html.heex:121
 #, elixir-autogen, elixir-format
 msgid "%{title} by %{creator}"
 msgstr "%{title} av %{creator}"
@@ -37,23 +37,17 @@ msgstr "Ta i bruk kontoen min"
 msgid "Ask the community on Framacolibri"
 msgstr "Spør brukarsamfunnet på Framacolibri"
 
-#: lib/web/templates/email/report.text.eex:15
+#: lib/web/templates/email/report.text.eex:17
 #, elixir-autogen, elixir-format
 msgid "Comments"
 msgstr "Kommentarar"
 
-#: lib/web/templates/email/report.html.heex:115
-#: lib/web/templates/email/report.text.eex:11
-#, elixir-autogen, elixir-format
-msgid "Event"
-msgstr "Hending"
-
 #: lib/web/email/user.ex:49
 #, elixir-autogen, elixir-format
 msgid "Instructions to reset your password on %{instance}"
 msgstr "Framgangsmåte for å nullstilla passordet på %{instance}"
 
-#: lib/web/templates/email/report.text.eex:21
+#: lib/web/templates/email/report.text.eex:23
 #, elixir-autogen, elixir-format
 msgid "Reason"
 msgstr "Grunn"
@@ -346,12 +340,12 @@ msgctxt "terms"
 msgid "What information do we collect?"
 msgstr "Kva opplysingar samlar me?"
 
-#: lib/web/email/user.ex:182
+#: lib/web/email/user.ex:188
 #, elixir-autogen, elixir-format
 msgid "Mobilizon on %{instance}: confirm your email address"
 msgstr "Mobilizon på %{instance}: stadfest epostadressa di"
 
-#: lib/web/email/user.ex:159
+#: lib/web/email/user.ex:165
 #, elixir-autogen, elixir-format
 msgid "Mobilizon on %{instance}: email changed"
 msgstr "Mobilizon på %{instance}: epostadressa er endra"
@@ -967,7 +961,7 @@ msgstr "Slutt"
 msgid "Event update!"
 msgstr "Oppdatert hending!"
 
-#: lib/web/templates/email/report.html.heex:155
+#: lib/web/templates/email/report.html.heex:158
 #, elixir-autogen, elixir-format
 msgid "Flagged comments"
 msgstr "Flagga kommentarar"
@@ -1064,7 +1058,7 @@ msgstr "Nesten klar!"
 msgid "New email confirmation"
 msgstr "Ny stadfestingsepost"
 
-#: lib/web/templates/email/report.html.heex:191
+#: lib/web/templates/email/report.html.heex:194
 #, elixir-autogen, elixir-format
 msgid "Reasons for report"
 msgstr "Grungjeving for rapporten"
@@ -1122,12 +1116,12 @@ msgstr "Tilskiparane har diverre avslege førespurnaden din."
 msgid "Verify your email address"
 msgstr "Stadfest epostadressa di"
 
-#: lib/web/templates/email/report.html.heex:232
+#: lib/web/templates/email/report.html.heex:235
 #, elixir-autogen, elixir-format
 msgid "View report"
 msgstr "Les rapporten"
 
-#: lib/web/templates/email/report.text.eex:24
+#: lib/web/templates/email/report.text.eex:26
 #, elixir-autogen, elixir-format
 msgid "View report:"
 msgstr "Les rapporten:"
@@ -1241,14 +1235,6 @@ msgstr ""
 "Denne gruppa var på ein annan nettstad, og vil halda fram å verka for andre "
 "nettstader unnateke denne."
 
-#: lib/web/templates/email/group_suspension.html.heex:67
-#: lib/web/templates/email/group_suspension.text.eex:5
-#, elixir-autogen, elixir-format
-msgid "As this group was located on this instance, all of it's data has been irretrievably deleted."
-msgstr ""
-"Denne gruppa var på ein annan nettstad, så alle data gruppa hadde er borte "
-"for alltid."
-
 #: lib/web/templates/email/group_suspension.html.heex:18
 #: lib/web/templates/email/group_suspension.text.eex:1
 #, elixir-autogen, elixir-format
@@ -1262,7 +1248,7 @@ msgstr ""
 "Styrarane på nettstaden din har avgjort å sperra gruppa %{group_name} "
 "(%{group_address}). Du er ikkje lenger medlem av gruppa."
 
-#: lib/web/email/group.ex:107
+#: lib/web/email/group.ex:108
 #, elixir-autogen, elixir-format
 msgid "The group %{group} has been suspended on %{instance}"
 msgstr "Gruppa %{group} på %{instance} er sperra"
@@ -1630,18 +1616,6 @@ msgstr "Mobilizon-tenaren ser ut til å vera nede i augeblinken."
 msgid "Public feed for %{instance}"
 msgstr "Offentleg straum for %{instance}"
 
-#: lib/graphql/resolvers/user.ex:350
-#, elixir-autogen, elixir-format
-msgid "The password you have choosen is too short. Please make sure your password contains at least 6 charaters."
-msgstr "Passordet er for kort. Det må ha minst 6 teikn."
-
-#: lib/graphql/resolvers/user.ex:356
-#, elixir-autogen, elixir-format
-msgid "The token you provided is invalid. Make sure that the URL is exactly the one provided inside the email you got."
-msgstr ""
-"Godkjenningsteiknet er ugyldig. Pass på at adressa er heilt lik den du fekk "
-"i eposten."
-
 #: lib/web/email/actor.ex:43
 #, elixir-autogen, elixir-format
 msgid "Your participation to %{event} has been cancelled!"
@@ -1669,63 +1643,63 @@ msgid "Your participation to %{event} on %{instance} has been cancelled!"
 msgstr "Du har meldt deg av %{event} på %{instance}!"
 
 #. File name template for exported list of participants. Should NOT contain spaces. Make sure the output is going to be something standardized that is acceptable as a file name on most systems.
-#: lib/service/export/participants/csv.ex:81
+#: lib/service/export/participants/csv.ex:97
 #: lib/service/export/participants/ods.ex:86
 #: lib/service/export/participants/pdf.ex:96
 #, elixir-autogen, elixir-format
 msgid "%{event}_participants"
 msgstr "%{event}_deltakarar"
 
-#: lib/service/export/participants/common.ex:61
+#: lib/service/export/participants/common.ex:66
 #, elixir-autogen, elixir-format
 msgid "Participant message"
 msgstr "Deltakarmelding"
 
-#: lib/service/export/participants/common.ex:61
+#: lib/service/export/participants/common.ex:63
 #, elixir-autogen, elixir-format
 msgid "Participant name"
 msgstr "Deltakinga er godkjend"
 
-#: lib/service/export/participants/common.ex:61
+#: lib/service/export/participants/common.ex:64
 #, elixir-autogen, elixir-format
 msgid "Participant status"
 msgstr "Deltakarstatus"
 
-#: lib/service/export/participants/common.ex:52
+#: lib/service/export/participants/common.ex:53
 #: lib/web/templates/email/admin/_role.html.heex:3
 #: lib/web/templates/email/admin/_role.text.eex:1
 #, elixir-autogen, elixir-format
 msgid "Administrator"
 msgstr "Styrar"
 
-#: lib/service/export/participants/common.ex:55
+#: lib/service/export/participants/common.ex:56
 #, elixir-autogen, elixir-format
 msgid "Creator"
 msgstr "Opphavsperson"
 
-#: lib/service/export/participants/common.ex:49
+#: lib/service/export/participants/common.ex:50
 #: lib/web/templates/email/admin/_role.html.heex:5
 #: lib/web/templates/email/admin/_role.text.eex:1
 #, elixir-autogen, elixir-format
 msgid "Moderator"
 msgstr "Redaktør"
 
-#: lib/service/export/participants/common.ex:37
+#: lib/service/export/participants/common.ex:38
 #, elixir-autogen, elixir-format
 msgid "Not approved"
 msgstr "Ikkje godkjent"
 
-#: lib/service/export/participants/common.ex:40
+#: lib/service/export/participants/common.ex:41
 #, elixir-autogen, elixir-format
 msgid "Not confirmed"
 msgstr "Ikkje stadfesta"
 
-#: lib/service/export/participants/common.ex:46
+#: lib/service/export/participants/common.ex:47
 #, elixir-autogen, elixir-format
 msgid "Participant"
 msgstr "Deltakar"
 
-#: lib/service/export/participants/common.ex:43
+#: lib/service/export/participants/common.ex:44
 #, elixir-autogen, elixir-format
 msgid "Rejected"
 msgstr "Avvist"
@@ -1750,7 +1724,7 @@ msgstr "Tal deltakarar"
 msgid "Participants for %{event}"
 msgstr "Deltakinga er godkjend"
 
-#: lib/service/export/participants/common.ex:88
+#: lib/service/export/participants/common.ex:95
 #, elixir-autogen, elixir-format
 msgid "Anonymous participant"
 msgstr "Anonym deltakar"
@@ -1869,7 +1843,7 @@ msgstr "Bli med:"
 msgid "Title: %{title}"
 msgstr "Tittel: %{title}"
 
-#: lib/web/email/group.ex:46
+#: lib/web/email/group.ex:47
 #, elixir-autogen, elixir-format
 msgid "📅 Just scheduled by %{group}: %{event}"
 msgstr "📅 Nyleg planlagt av %{group}: %{event}"
@@ -2322,3 +2296,26 @@ msgstr ""
 #, elixir-autogen, elixir-format
 msgid "Until next time!"
 msgstr "Talast neste gong!"
+
+#: lib/web/templates/email/group_suspension.html.heex:67
+#: lib/web/templates/email/group_suspension.text.eex:5
+#, elixir-autogen, elixir-format, fuzzy
+msgid "As this group was located on this instance, all of its data has been irretrievably deleted."
+msgstr ""
+"Denne gruppa var på ein annan nettstad, så alle data gruppa hadde er borte "
+"for alltid."
+
+#: lib/web/templates/email/report.text.eex:11
+#, elixir-autogen, elixir-format, fuzzy
+msgid "Events"
+msgstr "Hending"
+
+#: lib/web/templates/email/report.html.heex:115
+#, elixir-autogen, elixir-format, fuzzy
+msgid "Flagged events"
+msgstr "Flagga kommentarar"
+
+#: lib/service/export/participants/common.ex:65
+#, elixir-autogen, elixir-format, fuzzy
+msgid "Participant registration date"
+msgstr "Deltakarstatus"
diff --git a/priv/gettext/nn/LC_MESSAGES/errors.po b/priv/gettext/nn/LC_MESSAGES/errors.po
index 9a6933e3903b0c4a4ce94ebaaa2390bd21f9daed..a6ef25b7fe7504c455538804653847476a5588d1 100644
--- a/priv/gettext/nn/LC_MESSAGES/errors.po
+++ b/priv/gettext/nn/LC_MESSAGES/errors.po
@@ -126,7 +126,7 @@ msgstr "Denne brukaren er ikkje medlem av gruppa"
 msgid "Current profile is not an administrator of the selected group"
 msgstr "Denne brukaren er ikkje styrar av gruppa"
 
-#: lib/graphql/resolvers/user.ex:644
+#: lib/graphql/resolvers/user.ex:673
 #, elixir-autogen, elixir-format
 msgid "Error while saving user settings"
 msgstr "Greidde ikkje lagra brukarinnstillingane"
@@ -169,8 +169,8 @@ msgstr "Fann ingen profil for moderator-brukaren"
 msgid "No user to validate with this email was found"
 msgstr "Fann ingen brukar med denne eposten å godkjenna"
 
-#: lib/graphql/resolvers/person.ex:337
-#: lib/graphql/resolvers/user.ex:330
+#: lib/graphql/resolvers/person.ex:339
+#: lib/graphql/resolvers/user.ex:337
 #, elixir-autogen, elixir-format
 msgid "No user with this email was found"
 msgstr "Fann ingen brukar med denne eposten"
@@ -178,12 +178,12 @@ msgstr "Fann ingen brukar med denne eposten"
 #: lib/graphql/resolvers/feed_token.ex:28
 #: lib/graphql/resolvers/participant.ex:32
 #: lib/graphql/resolvers/participant.ex:210
-#: lib/graphql/resolvers/person.ex:245
-#: lib/graphql/resolvers/person.ex:376
-#: lib/graphql/resolvers/person.ex:412
-#: lib/graphql/resolvers/person.ex:419
-#: lib/graphql/resolvers/person.ex:448
-#: lib/graphql/resolvers/person.ex:463
+#: lib/graphql/resolvers/person.ex:247
+#: lib/graphql/resolvers/person.ex:378
+#: lib/graphql/resolvers/person.ex:414
+#: lib/graphql/resolvers/person.ex:421
+#: lib/graphql/resolvers/person.ex:450
+#: lib/graphql/resolvers/person.ex:465
 #, elixir-autogen, elixir-format
 msgid "Profile is not owned by authenticated user"
 msgstr "Ingen godkjent brukar eig denne profilen"
@@ -193,41 +193,42 @@ msgstr "Ingen godkjent brukar eig denne profilen"
 msgid "Registrations are not open"
 msgstr "Det er ikkje opna for å registrera seg"
 
-#: lib/graphql/resolvers/user.ex:461
+#: lib/graphql/resolvers/user.ex:474
 #, elixir-autogen, elixir-format
 msgid "The current password is invalid"
 msgstr "Dette passordet er ugyldig"
 
-#: lib/graphql/resolvers/admin.ex:336
-#: lib/graphql/resolvers/user.ex:504
+#: lib/graphql/resolvers/admin.ex:334
+#: lib/graphql/resolvers/user.ex:527
 #, elixir-autogen, elixir-format
 msgid "The new email doesn't seem to be valid"
 msgstr "Den nye epostadressa ser ut til å vera feil"
 
-#: lib/graphql/resolvers/admin.ex:339
-#: lib/graphql/resolvers/user.ex:507
+#: lib/graphql/resolvers/admin.ex:323
+#: lib/graphql/resolvers/user.ex:514
 #, elixir-autogen, elixir-format
 msgid "The new email must be different"
 msgstr "Den nye epostadressa må vera annleis"
 
-#: lib/graphql/resolvers/user.ex:464
+#: lib/graphql/resolvers/user.ex:477
 #, elixir-autogen, elixir-format
 msgid "The new password must be different"
 msgstr "Det nye passordet må vera annleis"
 
-#: lib/graphql/resolvers/user.ex:511
-#: lib/graphql/resolvers/user.ex:573
-#: lib/graphql/resolvers/user.ex:576
+#: lib/graphql/resolvers/user.ex:518
+#: lib/graphql/resolvers/user.ex:602
+#: lib/graphql/resolvers/user.ex:605
 #, elixir-autogen, elixir-format
 msgid "The password provided is invalid"
 msgstr "Dette passordet er ugyldig"
 
-#: lib/graphql/resolvers/user.ex:468
+#: lib/graphql/resolvers/user.ex:361
+#: lib/graphql/resolvers/user.ex:481
 #, elixir-autogen, elixir-format
 msgid "The password you have chosen is too short. Please make sure your password contains at least 6 characters."
 msgstr "Dette passordet er for kort. Passord må ha minst 6 teikn."
 
-#: lib/graphql/resolvers/user.ex:323
+#: lib/graphql/resolvers/user.ex:330
 #, elixir-autogen, elixir-format
 msgid "This user can't reset their password"
 msgstr "Denne brukaren kan ikkje nullstilla passordet sitt"
@@ -243,12 +244,12 @@ msgstr "Denne brukaren er avskrudd"
 msgid "Unable to validate user"
 msgstr "Greier ikkje godkjenna brukaren"
 
-#: lib/graphql/resolvers/user.ex:554
+#: lib/graphql/resolvers/user.ex:583
 #, elixir-autogen, elixir-format
 msgid "User already disabled"
 msgstr "Brukaren er allereie inaktiv"
 
-#: lib/graphql/resolvers/user.ex:619
+#: lib/graphql/resolvers/user.ex:648
 #, elixir-autogen, elixir-format
 msgid "User requested is not logged-in"
 msgstr "Den førespurte brukaren er ikkje innlogga"
@@ -273,12 +274,12 @@ msgstr "Du kan ikkje bli med i denne gruppa"
 msgid "You may not list groups unless moderator."
 msgstr "Du kan ikkje lista opp grupper med mindre du er moderator."
 
-#: lib/graphql/resolvers/user.ex:519
+#: lib/graphql/resolvers/user.ex:503
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to change your email"
 msgstr "Du må vera innlogga for å endra epostadressa di"
 
-#: lib/graphql/resolvers/user.ex:476
+#: lib/graphql/resolvers/user.ex:489
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to change your password"
 msgstr "Du må vera innlogga for å endra passordet ditt"
@@ -288,7 +289,7 @@ msgstr "Du må vera innlogga for å endra passordet ditt"
 msgid "You need to be logged-in to delete a group"
 msgstr "Du må vera innlogga for å sletta ei gruppe"
 
-#: lib/graphql/resolvers/user.ex:581
+#: lib/graphql/resolvers/user.ex:610
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to delete your account"
 msgstr "Du må vera innlogga for å sletta kontoen din"
@@ -313,12 +314,6 @@ msgstr "Du må vera innlogga for å oppdatera ei gruppe"
 msgid "You need to have an existing token to get a refresh token"
 msgstr "Du treng eit eksisterande teikn for å få eit fornyingsteikn"
 
-#: lib/graphql/resolvers/user.ex:306
-#: lib/graphql/resolvers/user.ex:333
-#, elixir-autogen, elixir-format
-msgid "You requested again a confirmation email too soon"
-msgstr "Du ba om ny stadfestingsepost for snøgt"
-
 #: lib/graphql/resolvers/user.ex:180
 #, elixir-autogen, elixir-format
 msgid "Your email is not on the allowlist"
@@ -371,17 +366,17 @@ msgstr "Nettstaden din krev ei gyldig epostadresse"
 msgid "Anonymous participation is not enabled"
 msgstr "Det er ikkje høve til å vera med anonymt"
 
-#: lib/graphql/resolvers/person.ex:219
+#: lib/graphql/resolvers/person.ex:221
 #, elixir-autogen, elixir-format
 msgid "Cannot remove the last administrator of a group"
 msgstr "Kan ikkje fjerna den siste styraren i gruppa"
 
-#: lib/graphql/resolvers/person.ex:216
+#: lib/graphql/resolvers/person.ex:218
 #, elixir-autogen, elixir-format
 msgid "Cannot remove the last identity of a user"
 msgstr "Kan ikkje fjerna den siste identiteten til ein brukar"
 
-#: lib/graphql/resolvers/comment.ex:147
+#: lib/graphql/resolvers/comment.ex:153
 #, elixir-autogen, elixir-format
 msgid "Comment is already deleted"
 msgstr "Kommentaren er allereie sletta"
@@ -409,8 +404,8 @@ msgid "Event id not found"
 msgstr "Fann ikkje ID-en til hendinga"
 
 #: lib/graphql/error.ex:114
-#: lib/graphql/resolvers/event.ex:355
-#: lib/graphql/resolvers/event.ex:407
+#: lib/graphql/resolvers/event.ex:382
+#: lib/graphql/resolvers/event.ex:434
 #, elixir-autogen, elixir-format
 msgid "Event not found"
 msgstr "Fann ikkje hendinga"
@@ -418,7 +413,7 @@ msgstr "Fann ikkje hendinga"
 #: lib/graphql/resolvers/participant.ex:87
 #: lib/graphql/resolvers/participant.ex:128
 #: lib/graphql/resolvers/participant.ex:155
-#: lib/graphql/resolvers/participant.ex:336
+#: lib/graphql/resolvers/participant.ex:343
 #, elixir-autogen, elixir-format
 msgid "Event with this ID %{id} doesn't exist"
 msgstr "Det finst inga hending med ID-en %{id}"
@@ -428,7 +423,7 @@ msgstr "Det finst inga hending med ID-en %{id}"
 msgid "Internal Error"
 msgstr "Intern feil"
 
-#: lib/graphql/resolvers/discussion.ex:219
+#: lib/graphql/resolvers/discussion.ex:222
 #, elixir-autogen, elixir-format
 msgid "No discussion with ID %{id}"
 msgstr "Ikkje noko ordskifte med ID-en %{id}"
@@ -495,10 +490,10 @@ msgstr "Profilen er allereie medlem i denne gruppa"
 #: lib/graphql/resolvers/post.ex:133
 #: lib/graphql/resolvers/post.ex:175
 #: lib/graphql/resolvers/post.ex:209
-#: lib/graphql/resolvers/resource.ex:90
-#: lib/graphql/resolvers/resource.ex:135
-#: lib/graphql/resolvers/resource.ex:168
-#: lib/graphql/resolvers/resource.ex:202
+#: lib/graphql/resolvers/resource.ex:92
+#: lib/graphql/resolvers/resource.ex:137
+#: lib/graphql/resolvers/resource.ex:170
+#: lib/graphql/resolvers/resource.ex:204
 #: lib/graphql/resolvers/todos.ex:58
 #: lib/graphql/resolvers/todos.ex:83
 #: lib/graphql/resolvers/todos.ex:110
@@ -510,7 +505,7 @@ msgid "Profile is not member of group"
 msgstr "Profilen er ikkje medlem i gruppa"
 
 #: lib/graphql/resolvers/actor.ex:67
-#: lib/graphql/resolvers/person.ex:242
+#: lib/graphql/resolvers/person.ex:244
 #, elixir-autogen, elixir-format
 msgid "Profile not found"
 msgstr "Fann ikkje profilen"
@@ -520,8 +515,8 @@ msgstr "Fann ikkje profilen"
 msgid "Report not found"
 msgstr "Fann ikkje rapporten"
 
-#: lib/graphql/resolvers/resource.ex:172
-#: lib/graphql/resolvers/resource.ex:199
+#: lib/graphql/resolvers/resource.ex:174
+#: lib/graphql/resolvers/resource.ex:201
 #, elixir-autogen, elixir-format
 msgid "Resource doesn't exist"
 msgstr "Ressursen finst ikkje"
@@ -531,7 +526,7 @@ msgstr "Ressursen finst ikkje"
 msgid "The event has already reached its maximum capacity"
 msgstr "Hendinga er fullteikna"
 
-#: lib/graphql/resolvers/participant.ex:282
+#: lib/graphql/resolvers/participant.ex:289
 #, elixir-autogen, elixir-format
 msgid "This token is invalid"
 msgstr "Teiknet er ugyldig"
@@ -565,7 +560,7 @@ msgstr "Teiknet er ikkje ein gyldig UUID"
 msgid "User not found"
 msgstr "Fann ikkje brukaren"
 
-#: lib/graphql/resolvers/person.ex:333
+#: lib/graphql/resolvers/person.ex:335
 #, elixir-autogen, elixir-format
 msgid "You already have a profile for this user"
 msgstr "Du har allereie ein profil for denne brukaren"
@@ -587,7 +582,7 @@ msgstr "Du er ikkje medlem i denne gruppa"
 msgid "You are not a moderator or admin for this group"
 msgstr "Du er ikkje styrar eller administrator for denne gruppa"
 
-#: lib/graphql/resolvers/comment.ex:80
+#: lib/graphql/resolvers/comment.ex:74
 #, elixir-autogen, elixir-format
 msgid "You are not allowed to create a comment if not connected"
 msgstr "Du har ikkje løyve til å skriva kommentarar viss du ikkje er kopla til"
@@ -597,7 +592,7 @@ msgstr "Du har ikkje løyve til å skriva kommentarar viss du ikkje er kopla til
 msgid "You are not allowed to create a feed token if not connected"
 msgstr "Du har ikkje løyve til å laga eit straumteikn når du ikkje er kopla til"
 
-#: lib/graphql/resolvers/comment.ex:155
+#: lib/graphql/resolvers/comment.ex:161
 #, elixir-autogen, elixir-format
 msgid "You are not allowed to delete a comment if not connected"
 msgstr "Du har ikkje løyve til å sletta ein kommentar når du ikkje er kopla til"
@@ -607,7 +602,7 @@ msgstr "Du har ikkje løyve til å sletta ein kommentar når du ikkje er kopla t
 msgid "You are not allowed to delete a feed token if not connected"
 msgstr "Du har ikkje løyve til å sletta straumteikn når du ikkje er kopla til"
 
-#: lib/graphql/resolvers/comment.ex:114
+#: lib/graphql/resolvers/comment.ex:120
 #, elixir-autogen, elixir-format
 msgid "You are not allowed to update a comment if not connected"
 msgstr ""
@@ -628,12 +623,12 @@ msgstr ""
 "Du kan ikkje gje deg sjølv ei deltakarrolle i denne gruppa, fordi du er den "
 "einaste administratoren"
 
-#: lib/graphql/resolvers/comment.ex:143
+#: lib/graphql/resolvers/comment.ex:149
 #, elixir-autogen, elixir-format
 msgid "You cannot delete this comment"
 msgstr "Du kan ikkje sletta denne kommentaren"
 
-#: lib/graphql/resolvers/event.ex:403
+#: lib/graphql/resolvers/event.ex:430
 #, elixir-autogen, elixir-format
 msgid "You cannot delete this event"
 msgstr "Du kan ikkje sletta denne hendinga"
@@ -669,21 +664,21 @@ msgstr "Du må vera innlogga og ha ei moderatorrolle for å oppdatera ein rappor
 msgid "You need to be logged-in and a moderator to view a report"
 msgstr "Du må vera innlogga og ha ei moderatorrolle for å lesa rapportar"
 
-#: lib/graphql/resolvers/admin.ex:252
+#: lib/graphql/resolvers/admin.ex:258
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in and an administrator to access admin settings"
 msgstr ""
 "Du må vera innlogga og ha ei administratorrolle for å sjå admin-"
 "innstillingane"
 
-#: lib/graphql/resolvers/admin.ex:236
+#: lib/graphql/resolvers/admin.ex:242
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in and an administrator to access dashboard statistics"
 msgstr ""
 "Du må vera innlogga og ha ei administratorrolle for å sjå statistikk på "
 "styringspanelet"
 
-#: lib/graphql/resolvers/admin.ex:278
+#: lib/graphql/resolvers/admin.ex:283
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in and an administrator to save admin settings"
 msgstr ""
@@ -695,12 +690,12 @@ msgstr ""
 msgid "You need to be logged-in to access discussions"
 msgstr "Du må vera innlogga for å sjå ordskifte"
 
-#: lib/graphql/resolvers/resource.ex:96
+#: lib/graphql/resolvers/resource.ex:98
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to access resources"
 msgstr "Du må vera innlogga for å sjå ressursane"
 
-#: lib/graphql/resolvers/event.ex:313
+#: lib/graphql/resolvers/event.ex:321
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to create events"
 msgstr "Du må vera innlogga for å laga hendingar"
@@ -715,12 +710,12 @@ msgstr "Du må vera innlogga for å skriva innlegg"
 msgid "You need to be logged-in to create reports"
 msgstr "Du må vera innlogga for å rapportera"
 
-#: lib/graphql/resolvers/resource.ex:140
+#: lib/graphql/resolvers/resource.ex:142
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to create resources"
 msgstr "Du må vera innlogga for å laga ressursar"
 
-#: lib/graphql/resolvers/event.ex:412
+#: lib/graphql/resolvers/event.ex:439
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to delete an event"
 msgstr "Du må vera innlogga for å sletta ei hending"
@@ -730,7 +725,7 @@ msgstr "Du må vera innlogga for å sletta ei hending"
 msgid "You need to be logged-in to delete posts"
 msgstr "Du må vera innlogga for å sletta innlegg"
 
-#: lib/graphql/resolvers/resource.ex:207
+#: lib/graphql/resolvers/resource.ex:209
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to delete resources"
 msgstr "Du må vera innlogga for å sletta ressursar"
@@ -745,7 +740,7 @@ msgstr "Du må vera innlogga for å bli med på ei hending"
 msgid "You need to be logged-in to leave an event"
 msgstr "Du må vera innlogga for å melda deg av ei hending"
 
-#: lib/graphql/resolvers/event.ex:369
+#: lib/graphql/resolvers/event.ex:396
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to update an event"
 msgstr "Du må vera innlogga for å oppdatera hendingar"
@@ -755,17 +750,17 @@ msgstr "Du må vera innlogga for å oppdatera hendingar"
 msgid "You need to be logged-in to update posts"
 msgstr "Du må vera innlogga for å oppdatera innlegg"
 
-#: lib/graphql/resolvers/resource.ex:177
+#: lib/graphql/resolvers/resource.ex:179
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to update resources"
 msgstr "Du må vera innlogga for å oppdatera ressursar"
 
-#: lib/graphql/resolvers/resource.ex:236
+#: lib/graphql/resolvers/resource.ex:233
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to view a resource preview"
 msgstr "Du må vera innlogga for å førehandsvisa ressursar"
 
-#: lib/graphql/resolvers/resource.ex:132
+#: lib/graphql/resolvers/resource.ex:134
 #, elixir-autogen, elixir-format
 msgid "Parent resource doesn't belong to this group"
 msgstr "Opphavsressursen høyrer ikkje til denne gruppa"
@@ -853,12 +848,12 @@ msgstr "Fila har ingen tillaten MIME-type."
 msgid "Profile is not administrator for the group"
 msgstr "Profilen er ikkje administrator for gruppa"
 
-#: lib/graphql/resolvers/event.ex:358
+#: lib/graphql/resolvers/event.ex:385
 #, elixir-autogen, elixir-format
 msgid "You can't edit this event."
 msgstr "Du kan ikkje endra denne hendinga."
 
-#: lib/graphql/resolvers/event.ex:361
+#: lib/graphql/resolvers/event.ex:388
 #, elixir-autogen, elixir-format
 msgid "You can't attribute this event to this profile."
 msgstr "Du kan ikkje kopla denne hendinga til denne profilen."
@@ -878,7 +873,7 @@ msgstr "Denne medlemen har allereie fått avslag."
 msgid "You don't have the right to remove this member."
 msgstr "Du har ikkje løyve til å fjerna denne medlemen."
 
-#: lib/mobilizon/actors/actor.ex:377
+#: lib/mobilizon/actors/actor.ex:378
 #, elixir-autogen, elixir-format
 msgid "This username is already taken."
 msgstr "Dette brukarnamnet er oppteke."
@@ -889,7 +884,7 @@ msgid "You must provide either an ID or a slug to access a discussion"
 msgstr ""
 "Du må gje anten ein ID eller ei stuttadresse for å få tilgang til ordskiftet"
 
-#: lib/graphql/resolvers/event.ex:275
+#: lib/graphql/resolvers/event.ex:276
 #, elixir-autogen, elixir-format
 msgid "Organizer profile is not owned by the user"
 msgstr "Brukaren eig ikkje arrangørprofilen"
@@ -901,42 +896,42 @@ msgstr "Denne profil-IDen er ikkje den anonyme profilen"
 
 #: lib/graphql/resolvers/group.ex:181
 #: lib/graphql/resolvers/group.ex:223
-#: lib/graphql/resolvers/person.ex:157
-#: lib/graphql/resolvers/person.ex:191
-#: lib/graphql/resolvers/person.ex:324
+#: lib/graphql/resolvers/person.ex:159
+#: lib/graphql/resolvers/person.ex:193
+#: lib/graphql/resolvers/person.ex:326
 #, elixir-autogen, elixir-format
 msgid "The provided picture is too heavy"
 msgstr "Dette biletet er for stort"
 
-#: lib/graphql/resolvers/resource.ex:129
+#: lib/graphql/resolvers/resource.ex:131
 #, elixir-autogen, elixir-format
 msgid "Error while creating resource"
 msgstr "Greidde ikkje laga ressursen"
 
-#: lib/graphql/resolvers/user.ex:537
+#: lib/graphql/resolvers/user.ex:566
 #, elixir-autogen, elixir-format
 msgid "Invalid activation token"
 msgstr "Ugyldig aktiveringslykjel"
 
-#: lib/graphql/resolvers/resource.ex:226
+#: lib/graphql/resolvers/resource.ex:228
 #, elixir-autogen, elixir-format
 msgid "Unable to fetch resource details from this URL."
 msgstr "Greidde ikkje henta ressursdetaljane frå denne adressa."
 
 #: lib/graphql/resolvers/event.ex:165
 #: lib/graphql/resolvers/participant.ex:253
-#: lib/graphql/resolvers/participant.ex:328
+#: lib/graphql/resolvers/participant.ex:335
 #, elixir-autogen, elixir-format
 msgid "Provided profile doesn't have moderator permissions on this event"
 msgstr "Moderatorprofilen har ikkje tilgang til denne hendinga"
 
-#: lib/graphql/resolvers/event.ex:286
+#: lib/graphql/resolvers/event.ex:294
 #, elixir-autogen, elixir-format
 msgid "Organizer profile doesn't have permission to create an event on behalf of this group"
 msgstr ""
 "Organisatoren har ikkje løyve til å laga hendingar på vegner av denne gruppa"
 
-#: lib/graphql/resolvers/event.ex:349
+#: lib/graphql/resolvers/event.ex:369
 #, elixir-autogen, elixir-format
 msgid "This profile doesn't have permission to update an event on behalf of this group"
 msgstr ""
@@ -950,7 +945,7 @@ msgstr ""
 "Eposten din er nekta å registrera seg, eller bruker ein epostvert me ikkje "
 "godtek"
 
-#: lib/graphql/resolvers/comment.ex:150
+#: lib/graphql/resolvers/comment.ex:156
 #, elixir-autogen, elixir-format
 msgid "Comment not found"
 msgstr "Fann ikkje hendinga"
@@ -960,12 +955,12 @@ msgstr "Fann ikkje hendinga"
 msgid "Error while creating a discussion"
 msgstr "Greidde ikkje laga ressursen"
 
-#: lib/graphql/resolvers/user.ex:658
+#: lib/graphql/resolvers/user.ex:687
 #, elixir-autogen, elixir-format
 msgid "Error while updating locale"
 msgstr "Greidde ikkje oppdatera rapporten"
 
-#: lib/graphql/resolvers/person.ex:327
+#: lib/graphql/resolvers/person.ex:329
 #, elixir-autogen, elixir-format
 msgid "Error while uploading pictures"
 msgstr "Greidde ikkje oppdatera rapporten"
@@ -980,13 +975,13 @@ msgstr "Greidde ikkje forlata hendinga"
 msgid "Failed to update the group"
 msgstr "Greidde ikkje oppdatera gruppa"
 
-#: lib/graphql/resolvers/admin.ex:333
-#: lib/graphql/resolvers/user.ex:501
+#: lib/graphql/resolvers/admin.ex:357
+#: lib/graphql/resolvers/user.ex:547
 #, elixir-autogen, elixir-format
 msgid "Failed to update user email"
 msgstr "Greidde ikkje oppdatera epostadressa til brukaren"
 
-#: lib/graphql/resolvers/user.ex:533
+#: lib/graphql/resolvers/user.ex:562
 #, elixir-autogen, elixir-format
 msgid "Failed to validate user email"
 msgstr "Greier ikkje godkjenna brukaren"
@@ -996,38 +991,38 @@ msgstr "Greier ikkje godkjenna brukaren"
 msgid "The anonymous actor ID is invalid"
 msgstr "ID-en til den anonyme brukaren er ugyldig"
 
-#: lib/graphql/resolvers/resource.ex:165
+#: lib/graphql/resolvers/resource.ex:167
 #, elixir-autogen, elixir-format
 msgid "Unknown error while updating resource"
 msgstr "Det var ein ukjend feil då ressursen vart oppdatert"
 
-#: lib/graphql/resolvers/comment.ex:105
+#: lib/graphql/resolvers/comment.ex:111
 #, elixir-autogen, elixir-format
 msgid "You are not the comment creator"
 msgstr "Du har ikkje skrive denne kommentaren"
 
-#: lib/graphql/resolvers/user.ex:458
+#: lib/graphql/resolvers/user.ex:471
 #, elixir-autogen, elixir-format
 msgid "You cannot change your password."
 msgstr "Du kan ikkje endra passordet ditt."
 
-#: lib/graphql/resolvers/participant.ex:321
+#: lib/graphql/resolvers/participant.ex:328
 #, elixir-autogen, elixir-format
 msgid "Format not supported"
 msgstr "Formatet er ikkje støtta"
 
-#: lib/graphql/resolvers/participant.ex:305
+#: lib/graphql/resolvers/participant.ex:312
 #, elixir-autogen, elixir-format
 msgid "A dependency needed to export to %{format} is not installed"
 msgstr ""
 "Eit program som trengst for å eksportera til %{format} er ikkje installert"
 
-#: lib/graphql/resolvers/participant.ex:313
+#: lib/graphql/resolvers/participant.ex:320
 #, elixir-autogen, elixir-format
 msgid "An error occured while saving export"
 msgstr "Det var ein feil då eksporten vart lagra"
 
-#: lib/web/controllers/export_controller.ex:30
+#: lib/web/controllers/export_controller.ex:32
 #, elixir-autogen, elixir-format
 msgid "Export to format %{format} is not enabled on this instance"
 msgstr "Du kan ikkje eksportera til %{format} på denne nettstaden"
@@ -1037,17 +1032,17 @@ msgstr "Du kan ikkje eksportera til %{format} på denne nettstaden"
 msgid "Only admins can create groups"
 msgstr "Berre styrarar kan laga grupper"
 
-#: lib/graphql/resolvers/event.ex:279
+#: lib/graphql/resolvers/event.ex:280
 #, elixir-autogen, elixir-format
 msgid "Only groups can create events"
 msgstr "Berre grupper kan laga hendingar"
 
-#: lib/graphql/resolvers/event.ex:305
+#: lib/graphql/resolvers/event.ex:313
 #, elixir-autogen, elixir-format
 msgid "Unknown error while creating event"
 msgstr "Det var ein ukjend feil då ressursen vart oppdatert"
 
-#: lib/graphql/resolvers/user.ex:514
+#: lib/graphql/resolvers/user.ex:498
 #, elixir-autogen, elixir-format
 msgid "User cannot change email"
 msgstr "Brukaren kan ikkje endra epostadressa"
@@ -1062,12 +1057,12 @@ msgstr "Abonnementet stemmer ikkje med kontoen din"
 msgid "Follow not found"
 msgstr "Fann ikkje abonnementet"
 
-#: lib/graphql/resolvers/user.ex:379
+#: lib/graphql/resolvers/user.ex:392
 #, elixir-autogen, elixir-format
 msgid "Profile with username %{username} not found"
 msgstr "Fann ingen person med brukarnamnet %{username}"
 
-#: lib/graphql/resolvers/user.ex:374
+#: lib/graphql/resolvers/user.ex:387
 #, elixir-autogen, elixir-format
 msgid "This profile does not belong to you"
 msgstr "Denne profilen høyrer ikkje til deg"
@@ -1112,22 +1107,22 @@ msgstr "Du må vera innlogga for å fjerna medlemer"
 msgid "Your email seems to be using an invalid format"
 msgstr "Det ser ut som epostadressa di er ugyldig"
 
-#: lib/graphql/resolvers/admin.ex:382
+#: lib/graphql/resolvers/admin.ex:399
 #, elixir-autogen, elixir-format
 msgid "Can't confirm an already confirmed user"
 msgstr "Du kan ikkje stadfesta ein brukar som allereie er stadfesta"
 
-#: lib/graphql/resolvers/admin.ex:386
+#: lib/graphql/resolvers/admin.ex:403
 #, elixir-autogen, elixir-format
 msgid "Deconfirming users is not supported"
 msgstr "Du kan ikkje oppheva stadfesting av brukarar"
 
-#: lib/graphql/resolvers/admin.ex:358
+#: lib/graphql/resolvers/admin.ex:375
 #, elixir-autogen, elixir-format
 msgid "The new role must be different"
 msgstr "Den nye rolla må vera annleis"
 
-#: lib/graphql/resolvers/admin.ex:309
+#: lib/graphql/resolvers/admin.ex:314
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in and an administrator to edit an user's details"
 msgstr "Du må vera innlogga og ha ei administratorrolle for å redigera brukarar"
@@ -1137,28 +1132,28 @@ msgstr "Du må vera innlogga og ha ei administratorrolle for å redigera brukara
 msgid "A profile or group with that name already exists"
 msgstr "Det finst allereie ein brukar eller ei gruppe med det namnet"
 
-#: lib/graphql/resolvers/admin.ex:519
+#: lib/graphql/resolvers/admin.ex:542
 #, elixir-autogen, elixir-format
 msgid "Unable to find an instance to follow at this address"
 msgstr "Greidde ikkje finna ein nettstad å fylgja på denne adressa"
 
-#: lib/mobilizon/actors/actor.ex:396
+#: lib/mobilizon/actors/actor.ex:397
 #, elixir-autogen, elixir-format
 msgid "Username must only contain alphanumeric lowercased characters and underscores."
 msgstr "Brukarnamnet kan berre innehalda små bokstavar, tal og understrek."
 
 #: lib/graphql/resolvers/user.ex:303
-#: lib/graphql/resolvers/user.ex:326
+#: lib/graphql/resolvers/user.ex:333
 #, elixir-autogen, elixir-format
 msgid "This email doesn't seem to be valid"
 msgstr "Denne epostadressa ser ikkje gyldig ut"
 
-#: lib/graphql/resolvers/comment.ex:65
+#: lib/graphql/resolvers/comment.ex:59
 #, elixir-autogen, elixir-format
 msgid "This comment was detected as spam."
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:293
+#: lib/graphql/resolvers/event.ex:301
 #, elixir-autogen, elixir-format
 msgid "This event was detected as spam."
 msgstr ""
@@ -1179,7 +1174,7 @@ msgstr ""
 msgid "You need to be a moderator or an administrator to create a note on a report"
 msgstr ""
 
-#: lib/graphql/resolvers/person.ex:330
+#: lib/graphql/resolvers/person.ex:332
 #, elixir-autogen, elixir-format
 msgid "Your profile was detected as spam."
 msgstr ""
@@ -1189,7 +1184,7 @@ msgstr ""
 msgid "Your registration has been detected as spam and cannot be processed."
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:86
+#: lib/web/controllers/application_controller.ex:88
 #, elixir-autogen, elixir-format
 msgid "All of name, scope and redirect_uri parameters are required to create an application"
 msgstr ""
@@ -1204,171 +1199,227 @@ msgstr ""
 msgid "Application token not found"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:89
+#: lib/graphql/resolvers/application.ex:90
 #, elixir-autogen, elixir-format, fuzzy
 msgid "Error while revoking token"
 msgstr "Greidde ikkje lagra rapporten"
 
-#: lib/web/controllers/application_controller.ex:59
+#: lib/web/controllers/application_controller.ex:61
 #, elixir-autogen, elixir-format
 msgid "Impossible to create application."
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:356
+#: lib/web/controllers/application_controller.ex:358
 #, elixir-autogen, elixir-format
 msgid "Incorrect parameters sent. You need to provide at least the grant_type and client_id parameters, depending on the grant type being used."
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:329
+#: lib/web/controllers/application_controller.ex:331
 #, elixir-autogen, elixir-format
 msgid "Invalid client credentials provided"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:337
+#: lib/web/controllers/application_controller.ex:339
 #, elixir-autogen, elixir-format
 msgid "Invalid refresh token provided"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:170
-#: lib/web/controllers/application_controller.ex:401
+#: lib/web/controllers/application_controller.ex:172
+#: lib/web/controllers/application_controller.ex:403
 #, elixir-autogen, elixir-format
 msgid "No application was found with this client_id"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:37
+#: lib/graphql/resolvers/application.ex:38
 #, elixir-autogen, elixir-format
 msgid "No application with this client_id was found"
 msgstr ""
 
-#: lib/graphql/authorization.ex:80
+#: lib/graphql/authorization.ex:81
 #, elixir-autogen, elixir-format
 msgid "Not authorized to access field %{field}"
 msgstr ""
 
-#: lib/graphql/authorization.ex:70
-#: lib/graphql/authorization.ex:75
+#: lib/graphql/authorization.ex:71
+#: lib/graphql/authorization.ex:76
 #, elixir-autogen, elixir-format
 msgid "Not authorized to access object %{object}"
 msgstr ""
 
-#: lib/graphql/authorization.ex:63
+#: lib/graphql/authorization.ex:64
 #, elixir-autogen, elixir-format
 msgid "Not authorized to access this %{object_type}"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:279
+#: lib/web/controllers/application_controller.ex:281
 #, elixir-autogen, elixir-format
 msgid "Please slow down the rate of your requests"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:267
+#: lib/web/controllers/application_controller.ex:269
 #, elixir-autogen, elixir-format
 msgid "The authorization request is still pending"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:249
+#: lib/web/controllers/application_controller.ex:251
 #, elixir-autogen, elixir-format
 msgid "The client_id provided or the device_code associated is invalid"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:133
+#: lib/graphql/resolvers/application.ex:139
 #, elixir-autogen, elixir-format
 msgid "The device user code was not provided before approving the application"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:304
+#: lib/web/controllers/application_controller.ex:306
 #, elixir-autogen, elixir-format
 msgid "The given device_code has expired"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:44
+#: lib/graphql/resolvers/application.ex:45
 #, elixir-autogen, elixir-format
 msgid "The given redirect_uri is not in the list of allowed redirect URIs"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:158
+#: lib/web/controllers/application_controller.ex:160
 #, elixir-autogen, elixir-format
 msgid "The given scope is not in the list of the app declared scopes"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:109
-#: lib/graphql/resolvers/application.ex:146
+#: lib/graphql/resolvers/application.ex:112
+#: lib/graphql/resolvers/application.ex:154
 #, elixir-autogen, elixir-format
 msgid "The given user code has expired"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:112
-#: lib/graphql/resolvers/application.ex:140
+#: lib/graphql/resolvers/application.ex:118
+#: lib/graphql/resolvers/application.ex:146
 #, elixir-autogen, elixir-format
 msgid "The given user code is invalid"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:411
+#: lib/web/controllers/application_controller.ex:413
 #, elixir-autogen, elixir-format
 msgid "The provided client_id does not match the provided code"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:414
+#: lib/web/controllers/application_controller.ex:416
 #, elixir-autogen, elixir-format
 msgid "The provided client_secret is invalid"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:407
+#: lib/web/controllers/application_controller.ex:409
 #, elixir-autogen, elixir-format
 msgid "The provided code is invalid or expired"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:418
+#: lib/web/controllers/application_controller.ex:420
 #, elixir-autogen, elixir-format
 msgid "The provided scope is invalid or not included in the app declared scopes"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:45
+#: lib/web/controllers/application_controller.ex:47
 #, elixir-autogen, elixir-format
 msgid "The scope parameter is not a space separated list of valid scopes"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:292
+#: lib/web/controllers/application_controller.ex:294
 #, elixir-autogen, elixir-format
 msgid "The user rejected the requested authorization"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:404
+#: lib/web/controllers/application_controller.ex:406
 #, elixir-autogen, elixir-format
 msgid "This redirect URI is not allowed"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:381
+#: lib/web/controllers/application_controller.ex:383
 #, elixir-autogen, elixir-format, fuzzy
 msgid "Token not found"
 msgstr "Fann ikkje hendinga"
 
-#: lib/web/controllers/application_controller.ex:72
+#: lib/web/controllers/application_controller.ex:74
 #, elixir-autogen, elixir-format
 msgid "Too many requests"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:184
+#: lib/web/controllers/application_controller.ex:186
 #, elixir-autogen, elixir-format
 msgid "Unable to produce device code"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:373
+#: lib/web/controllers/application_controller.ex:375
 #, elixir-autogen, elixir-format
 msgid "Unable to revoke token"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:198
+#: lib/web/controllers/application_controller.ex:200
 #, elixir-autogen, elixir-format
 msgid "You need to pass both client_id and scope as parameters to obtain a device code"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:136
+#: lib/web/controllers/application_controller.ex:138
 #, elixir-autogen, elixir-format
 msgid "You need to provide a valid redirect_uri to autorize an application"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:126
+#: lib/web/controllers/application_controller.ex:128
 #, elixir-autogen, elixir-format
 msgid "You need to specify client_id, redirect_uri, scope and state to autorize an application"
 msgstr ""
+
+#: lib/graphql/resolvers/user.ex:306
+#, elixir-autogen, elixir-format
+msgid "Couldn't send an email. Internal error."
+msgstr ""
+
+#: lib/graphql/resolvers/participant.ex:286
+#, elixir-autogen, elixir-format
+msgid "Participation is already confirmed"
+msgstr ""
+
+#: lib/graphql/resolvers/participant.ex:283
+#, elixir-autogen, elixir-format
+msgid "Participation is confirmed but not approved yet by an organizer"
+msgstr ""
+
+#: lib/graphql/resolvers/event.ex:287
+#: lib/graphql/resolvers/event.ex:376
+#, elixir-autogen, elixir-format
+msgid "Providing external registration is not allowed"
+msgstr ""
+
+#: lib/graphql/resolvers/push_subscription.ex:48
+#, elixir-autogen, elixir-format
+msgid "The same push subscription has already been registered"
+msgstr ""
+
+#: lib/graphql/resolvers/admin.ex:536
+#, elixir-autogen, elixir-format
+msgid "This instance is pending follow approval"
+msgstr ""
+
+#: lib/graphql/schema/custom/timezone.ex:23
+#, elixir-autogen, elixir-format
+msgid "Timezone ID %{timezone} is invalid"
+msgstr ""
+
+#: lib/graphql/resolvers/admin.ex:539
+#, elixir-autogen, elixir-format, fuzzy
+msgid "You are already following this instance"
+msgstr "Du fylgjer allereie denne gruppa"
+
+#: lib/graphql/resolvers/user.ex:310
+#, elixir-autogen, elixir-format, fuzzy
+msgid "You requested again a confirmation email too soon. Please try again in a few minutes"
+msgstr "Du ba om ny stadfestingsepost for snøgt"
+
+#: lib/graphql/resolvers/user.ex:341
+#, elixir-autogen, elixir-format
+msgid "You requested again a password reset email too soon. Please try again in a few minutes"
+msgstr ""
+
+#: lib/graphql/resolvers/user.ex:368
+#, elixir-autogen, elixir-format
+msgid "The token you provided is invalid. Make sure that the URL is exactly the one provided inside the email you got."
+msgstr ""
diff --git a/priv/gettext/oc/LC_MESSAGES/activity.po b/priv/gettext/oc/LC_MESSAGES/activity.po
index ce12fbe9d8be091db347eb52389b17abf6551e7b..37aea19ec180e5536d808f443a23ae3b85ccda4c 100644
--- a/priv/gettext/oc/LC_MESSAGES/activity.po
+++ b/priv/gettext/oc/LC_MESSAGES/activity.po
@@ -9,7 +9,7 @@
 msgid ""
 msgstr ""
 "Language: oc\n"
-"Plural-Forms: nplurals=2\n"
+"Plural-Forms: nplurals=2; plural=n > 1;\n"
 
 #: lib/web/templates/email/activity/_member_activity_item.html.heex:14
 #: lib/web/templates/email/activity/_member_activity_item.text.eex:12
@@ -454,3 +454,15 @@ msgstr ""
 #, elixir-autogen, elixir-format, fuzzy
 msgid "%{profile} approved the member %{member}."
 msgstr ""
+
+#: lib/service/activity/renderer/event.ex:74
+#: lib/web/templates/email/activity/_event_activity_item.html.heex:55
+#: lib/web/templates/email/activity/_event_activity_item.text.eex:31
+#, elixir-autogen, elixir-format
+msgid "%{profile} joined your event %{event}."
+msgstr ""
+
+#: lib/web/views/email_view.ex:45
+#, elixir-autogen, elixir-format
+msgid "An anonymous profile"
+msgstr ""
diff --git a/priv/gettext/oc/LC_MESSAGES/default.po b/priv/gettext/oc/LC_MESSAGES/default.po
index 5a72435f1c98692b5dbe545948793ead4a4ea463..b2bb6824605a4a2eb0483fff85a1abf12f6dfc16 100644
--- a/priv/gettext/oc/LC_MESSAGES/default.po
+++ b/priv/gettext/oc/LC_MESSAGES/default.po
@@ -20,7 +20,7 @@ msgid "If you didn't request this, please ignore this email. Your password won't
 msgstr ""
 "S’avètz pas demandat aquò, podètz ignorar aqueste corrièl. Vòstre senhal cambiarà pas mentre que cliquetz pas lo ligam çai-jos e ne definiscatz un novèl."
 
-#: lib/web/templates/email/report.html.heex:120
+#: lib/web/templates/email/report.html.heex:121
 #, elixir-autogen, elixir-format
 msgid "%{title} by %{creator}"
 msgstr "%{title} per %{creator}"
@@ -36,23 +36,17 @@ msgstr "Activar mon compte"
 msgid "Ask the community on Framacolibri"
 msgstr "Demandatz a la comunautat sus Framacolibri"
 
-#: lib/web/templates/email/report.text.eex:15
+#: lib/web/templates/email/report.text.eex:17
 #, elixir-autogen, elixir-format
 msgid "Comments"
 msgstr "Comentaris"
 
-#: lib/web/templates/email/report.html.heex:115
-#: lib/web/templates/email/report.text.eex:11
-#, elixir-autogen, elixir-format
-msgid "Event"
-msgstr "Eveniment"
-
 #: lib/web/email/user.ex:49
 #, elixir-autogen, elixir-format
 msgid "Instructions to reset your password on %{instance}"
 msgstr "Consignas per reïnincializar vòstre senhal sus %{instance}"
 
-#: lib/web/templates/email/report.text.eex:21
+#: lib/web/templates/email/report.text.eex:23
 #, elixir-autogen, elixir-format
 msgid "Reason"
 msgstr "Rason"
@@ -343,12 +337,12 @@ msgctxt "terms"
 msgid "What information do we collect?"
 msgstr "Quinas informacions reculem ?"
 
-#: lib/web/email/user.ex:182
+#: lib/web/email/user.ex:188
 #, elixir-autogen, elixir-format
 msgid "Mobilizon on %{instance}: confirm your email address"
 msgstr "Mobilizon sus %{instance} : confirmatz vòstra adreça electronica"
 
-#: lib/web/email/user.ex:159
+#: lib/web/email/user.ex:165
 #, elixir-autogen, elixir-format
 msgid "Mobilizon on %{instance}: email changed"
 msgstr "Mobilizon sus %{instance} : adreça electronica cambiada"
@@ -894,7 +888,7 @@ msgstr "Fin"
 msgid "Event update!"
 msgstr "Eveniment actualizat !"
 
-#: lib/web/templates/email/report.html.heex:155
+#: lib/web/templates/email/report.html.heex:158
 #, elixir-autogen, elixir-format
 msgid "Flagged comments"
 msgstr "Comentaris senhalats"
@@ -978,7 +972,7 @@ msgstr "I sètz gaireben !"
 msgid "New email confirmation"
 msgstr "Confirmacion d'e-mail novèl"
 
-#: lib/web/templates/email/report.html.heex:191
+#: lib/web/templates/email/report.html.heex:194
 #, elixir-autogen, elixir-format
 msgid "Reasons for report"
 msgstr "Rason del senhalament"
@@ -1036,12 +1030,12 @@ msgstr ""
 msgid "Verify your email address"
 msgstr "Verificar l’adreça electronica"
 
-#: lib/web/templates/email/report.html.heex:232
+#: lib/web/templates/email/report.html.heex:235
 #, elixir-autogen, elixir-format
 msgid "View report"
 msgstr "Veire lo senhalament"
 
-#: lib/web/templates/email/report.text.eex:24
+#: lib/web/templates/email/report.text.eex:26
 #, elixir-autogen, elixir-format
 msgid "View report:"
 msgstr "Veire lo senhalament :"
@@ -1144,14 +1138,6 @@ msgstr ""
 "Estant qu’aqueste grop veniá d’una autra instància, tendrà de foncionar per "
 "d’autras instàncias."
 
-#: lib/web/templates/email/group_suspension.html.heex:67
-#: lib/web/templates/email/group_suspension.text.eex:5
-#, elixir-autogen, elixir-format
-msgid "As this group was located on this instance, all of it's data has been irretrievably deleted."
-msgstr ""
-"Estant qu’aqueste grop veniá d’aicesta instància, totas sas donadas son "
-"estadas suprimidas per totjorn."
-
 #: lib/web/templates/email/group_suspension.html.heex:18
 #: lib/web/templates/email/group_suspension.text.eex:1
 #, elixir-autogen, elixir-format
@@ -1163,7 +1149,7 @@ msgstr "Lo grop %{group} foguèt suspendut sus %{instance} !"
 msgid "Your instance's moderation team has decided to suspend %{group_name} (%{group_address}). You are no longer a member of this group."
 msgstr ""
 
-#: lib/web/email/group.ex:107
+#: lib/web/email/group.ex:108
 #, elixir-autogen, elixir-format
 msgid "The group %{group} has been suspended on %{instance}"
 msgstr "Lo grop %{group} foguèt suspendut sus %{instance}"
@@ -1448,16 +1434,6 @@ msgstr ""
 msgid "Public feed for %{instance}"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:350
-#, elixir-autogen, elixir-format
-msgid "The password you have choosen is too short. Please make sure your password contains at least 6 charaters."
-msgstr ""
-
-#: lib/graphql/resolvers/user.ex:356
-#, elixir-autogen, elixir-format
-msgid "The token you provided is invalid. Make sure that the URL is exactly the one provided inside the email you got."
-msgstr ""
-
 #: lib/web/email/actor.ex:43
 #, elixir-autogen, elixir-format
 msgid "Your participation to %{event} has been cancelled!"
@@ -1481,63 +1457,63 @@ msgid "Your participation to %{event} on %{instance} has been cancelled!"
 msgstr "Vòstra participacion a l’eveniment %{title} es estada aprovada"
 
 #. File name template for exported list of participants. Should NOT contain spaces. Make sure the output is going to be something standardized that is acceptable as a file name on most systems.
-#: lib/service/export/participants/csv.ex:81
+#: lib/service/export/participants/csv.ex:97
 #: lib/service/export/participants/ods.ex:86
 #: lib/service/export/participants/pdf.ex:96
 #, elixir-autogen, elixir-format
 msgid "%{event}_participants"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:61
+#: lib/service/export/participants/common.ex:66
 #, elixir-autogen, elixir-format
 msgid "Participant message"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:61
+#: lib/service/export/participants/common.ex:63
 #, elixir-autogen, elixir-format
 msgid "Participant name"
 msgstr "Participacion aprovada"
 
-#: lib/service/export/participants/common.ex:61
+#: lib/service/export/participants/common.ex:64
 #, elixir-autogen, elixir-format
 msgid "Participant status"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:52
+#: lib/service/export/participants/common.ex:53
 #: lib/web/templates/email/admin/_role.html.heex:3
 #: lib/web/templates/email/admin/_role.text.eex:1
 #, elixir-autogen, elixir-format
 msgid "Administrator"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:55
+#: lib/service/export/participants/common.ex:56
 #, elixir-autogen, elixir-format
 msgid "Creator"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:49
+#: lib/service/export/participants/common.ex:50
 #: lib/web/templates/email/admin/_role.html.heex:5
 #: lib/web/templates/email/admin/_role.text.eex:1
 #, elixir-autogen, elixir-format
 msgid "Moderator"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:37
+#: lib/service/export/participants/common.ex:38
 #, elixir-autogen, elixir-format
 msgid "Not approved"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:40
+#: lib/service/export/participants/common.ex:41
 #, elixir-autogen, elixir-format
 msgid "Not confirmed"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:46
+#: lib/service/export/participants/common.ex:47
 #, elixir-autogen, elixir-format
 msgid "Participant"
 msgstr "Participacion aprovada"
 
-#: lib/service/export/participants/common.ex:43
+#: lib/service/export/participants/common.ex:44
 #, elixir-autogen, elixir-format
 msgid "Rejected"
 msgstr ""
@@ -1562,7 +1538,7 @@ msgstr ""
 msgid "Participants for %{event}"
 msgstr "Participacion aprovada"
 
-#: lib/service/export/participants/common.ex:88
+#: lib/service/export/participants/common.ex:95
 #, elixir-autogen, elixir-format
 msgid "Anonymous participant"
 msgstr ""
@@ -1681,7 +1657,7 @@ msgstr "Participacion aprovada"
 msgid "Title: %{title}"
 msgstr ""
 
-#: lib/web/email/group.ex:46
+#: lib/web/email/group.ex:47
 #, elixir-autogen, elixir-format
 msgid "📅 Just scheduled by %{group}: %{event}"
 msgstr ""
@@ -2094,3 +2070,26 @@ msgstr ""
 #, elixir-autogen, elixir-format
 msgid "Until next time!"
 msgstr ""
+
+#: lib/web/templates/email/group_suspension.html.heex:67
+#: lib/web/templates/email/group_suspension.text.eex:5
+#, elixir-autogen, elixir-format, fuzzy
+msgid "As this group was located on this instance, all of its data has been irretrievably deleted."
+msgstr ""
+"Estant qu’aqueste grop veniá d’aicesta instància, totas sas donadas son "
+"estadas suprimidas per totjorn."
+
+#: lib/web/templates/email/report.text.eex:11
+#, elixir-autogen, elixir-format, fuzzy
+msgid "Events"
+msgstr "Eveniment"
+
+#: lib/web/templates/email/report.html.heex:115
+#, elixir-autogen, elixir-format, fuzzy
+msgid "Flagged events"
+msgstr "Comentaris senhalats"
+
+#: lib/service/export/participants/common.ex:65
+#, elixir-autogen, elixir-format, fuzzy
+msgid "Participant registration date"
+msgstr ""
diff --git a/priv/gettext/oc/LC_MESSAGES/errors.po b/priv/gettext/oc/LC_MESSAGES/errors.po
index 3a339d03441cb03f8c4fa517c39658a903ead825..3255beb1d3131116626b2d63b9d84f3df7cf47b2 100644
--- a/priv/gettext/oc/LC_MESSAGES/errors.po
+++ b/priv/gettext/oc/LC_MESSAGES/errors.po
@@ -110,7 +110,7 @@ msgstr "Lo perfil actual es pas un membre d’aqueste grop"
 msgid "Current profile is not an administrator of the selected group"
 msgstr "Lo perfil actual es pas administrator del grop seleccionat"
 
-#: lib/graphql/resolvers/user.ex:644
+#: lib/graphql/resolvers/user.ex:673
 #, elixir-autogen, elixir-format
 msgid "Error while saving user settings"
 msgstr "Error en salvagardant los paramètres utilizaire"
@@ -155,8 +155,8 @@ msgstr "Cap de perfil pas trobat per l’utilizaire moderator"
 msgid "No user to validate with this email was found"
 msgstr "Cap d’utilizaire de validar amb aqueste email pas trobat"
 
-#: lib/graphql/resolvers/person.ex:337
-#: lib/graphql/resolvers/user.ex:330
+#: lib/graphql/resolvers/person.ex:339
+#: lib/graphql/resolvers/user.ex:337
 #, elixir-autogen, elixir-format
 msgid "No user with this email was found"
 msgstr "Degun trobat d'amb aquesta email"
@@ -164,12 +164,12 @@ msgstr "Degun trobat d'amb aquesta email"
 #: lib/graphql/resolvers/feed_token.ex:28
 #: lib/graphql/resolvers/participant.ex:32
 #: lib/graphql/resolvers/participant.ex:210
-#: lib/graphql/resolvers/person.ex:245
-#: lib/graphql/resolvers/person.ex:376
-#: lib/graphql/resolvers/person.ex:412
-#: lib/graphql/resolvers/person.ex:419
-#: lib/graphql/resolvers/person.ex:448
-#: lib/graphql/resolvers/person.ex:463
+#: lib/graphql/resolvers/person.ex:247
+#: lib/graphql/resolvers/person.ex:378
+#: lib/graphql/resolvers/person.ex:414
+#: lib/graphql/resolvers/person.ex:421
+#: lib/graphql/resolvers/person.ex:450
+#: lib/graphql/resolvers/person.ex:465
 #, elixir-autogen, elixir-format
 msgid "Profile is not owned by authenticated user"
 msgstr "Lo perhiu es pas proprietat del utilizator autenticat"
@@ -179,43 +179,44 @@ msgstr "Lo perhiu es pas proprietat del utilizator autenticat"
 msgid "Registrations are not open"
 msgstr "Las inscripciones sèn pas obèrtas"
 
-#: lib/graphql/resolvers/user.ex:461
+#: lib/graphql/resolvers/user.ex:474
 #, elixir-autogen, elixir-format
 msgid "The current password is invalid"
 msgstr "Lo mòt de santa clara actuau es invalid"
 
-#: lib/graphql/resolvers/admin.ex:336
-#: lib/graphql/resolvers/user.ex:504
+#: lib/graphql/resolvers/admin.ex:334
+#: lib/graphql/resolvers/user.ex:527
 #, elixir-autogen, elixir-format
 msgid "The new email doesn't seem to be valid"
 msgstr "Lo email nau sèm invalid"
 
-#: lib/graphql/resolvers/admin.ex:339
-#: lib/graphql/resolvers/user.ex:507
+#: lib/graphql/resolvers/admin.ex:323
+#: lib/graphql/resolvers/user.ex:514
 #, elixir-autogen, elixir-format
 msgid "The new email must be different"
 msgstr "Lo email nau deb esser different"
 
-#: lib/graphql/resolvers/user.ex:464
+#: lib/graphql/resolvers/user.ex:477
 #, elixir-autogen, elixir-format
 msgid "The new password must be different"
 msgstr "Lo mòt de santa clara nau deb esser different"
 
-#: lib/graphql/resolvers/user.ex:511
-#: lib/graphql/resolvers/user.ex:573
-#: lib/graphql/resolvers/user.ex:576
+#: lib/graphql/resolvers/user.ex:518
+#: lib/graphql/resolvers/user.ex:602
+#: lib/graphql/resolvers/user.ex:605
 #, elixir-autogen, elixir-format
 msgid "The password provided is invalid"
 msgstr "Lo mòt de santa clara aprovedit es invalid"
 
-#: lib/graphql/resolvers/user.ex:468
+#: lib/graphql/resolvers/user.ex:361
+#: lib/graphql/resolvers/user.ex:481
 #, elixir-autogen, elixir-format
 msgid "The password you have chosen is too short. Please make sure your password contains at least 6 characters."
 msgstr ""
 "Lo mòt de santa clara que avetz causit es tròp cort. Merci de vos assegurar "
 "que vostre mòt de santa clara contienga au mèns 6 caracteres."
 
-#: lib/graphql/resolvers/user.ex:323
+#: lib/graphql/resolvers/user.ex:330
 #, elixir-autogen, elixir-format
 msgid "This user can't reset their password"
 msgstr "Aquest utilizator pod pas reinicializar lo sèn mòt de santa clara"
@@ -231,12 +232,12 @@ msgstr "Aquest utilizator a essat dasactivat"
 msgid "Unable to validate user"
 msgstr "Es impossible de validar l'utilizator"
 
-#: lib/graphql/resolvers/user.ex:554
+#: lib/graphql/resolvers/user.ex:583
 #, elixir-autogen, elixir-format
 msgid "User already disabled"
 msgstr "Utilizator déjà desactivat"
 
-#: lib/graphql/resolvers/user.ex:619
+#: lib/graphql/resolvers/user.ex:648
 #, elixir-autogen, elixir-format
 msgid "User requested is not logged-in"
 msgstr "L'utilizator demandat es pas conectat"
@@ -261,12 +262,12 @@ msgstr "Podetz pas rejónher aquest grop"
 msgid "You may not list groups unless moderator."
 msgstr "Podetz listar los grops sonque se essetz moderator."
 
-#: lib/graphql/resolvers/user.ex:519
+#: lib/graphql/resolvers/user.ex:503
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to change your email"
 msgstr "Debetz esser conectat per cambiar lo voste email"
 
-#: lib/graphql/resolvers/user.ex:476
+#: lib/graphql/resolvers/user.ex:489
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to change your password"
 msgstr "Debetz d'esser conectat per cambiar lo voste mòt de santa clara"
@@ -276,7 +277,7 @@ msgstr "Debetz d'esser conectat per cambiar lo voste mòt de santa clara"
 msgid "You need to be logged-in to delete a group"
 msgstr "Debetz d'esser conectat per suprimir un grop"
 
-#: lib/graphql/resolvers/user.ex:581
+#: lib/graphql/resolvers/user.ex:610
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to delete your account"
 msgstr "Devetz d'esser conectat per suprimir lo voste compte"
@@ -301,12 +302,6 @@ msgstr "Devetz d'esser conectat per metre à jorn un grop"
 msgid "You need to have an existing token to get a refresh token"
 msgstr "Devetz aver un senhau existant per obtiéner un senhau nau"
 
-#: lib/graphql/resolvers/user.ex:306
-#: lib/graphql/resolvers/user.ex:333
-#, elixir-autogen, elixir-format
-msgid "You requested again a confirmation email too soon"
-msgstr "Demandatz de nau un email de confirmacion tròp lèu"
-
 #: lib/graphql/resolvers/user.ex:180
 #, elixir-autogen, elixir-format
 msgid "Your email is not on the allowlist"
@@ -360,17 +355,17 @@ msgstr "Un email valid es requerit per la vòstra instància"
 msgid "Anonymous participation is not enabled"
 msgstr "Ua participacion anonima es pas permetuda"
 
-#: lib/graphql/resolvers/person.ex:219
+#: lib/graphql/resolvers/person.ex:221
 #, elixir-autogen, elixir-format
 msgid "Cannot remove the last administrator of a group"
 msgstr "Pòden pas suprimir lo darrièr administrator d'un grop"
 
-#: lib/graphql/resolvers/person.ex:216
+#: lib/graphql/resolvers/person.ex:218
 #, elixir-autogen, elixir-format
 msgid "Cannot remove the last identity of a user"
 msgstr "Pòden pas suprimir la darrièra identitat d'un utilizator"
 
-#: lib/graphql/resolvers/comment.ex:147
+#: lib/graphql/resolvers/comment.ex:153
 #, elixir-autogen, elixir-format
 msgid "Comment is already deleted"
 msgstr "Comentari déjà suprimit"
@@ -398,8 +393,8 @@ msgid "Event id not found"
 msgstr "ID d'eveniment non trobat"
 
 #: lib/graphql/error.ex:114
-#: lib/graphql/resolvers/event.ex:355
-#: lib/graphql/resolvers/event.ex:407
+#: lib/graphql/resolvers/event.ex:382
+#: lib/graphql/resolvers/event.ex:434
 #, elixir-autogen, elixir-format
 msgid "Event not found"
 msgstr "Eveniment non trobat"
@@ -407,7 +402,7 @@ msgstr "Eveniment non trobat"
 #: lib/graphql/resolvers/participant.ex:87
 #: lib/graphql/resolvers/participant.ex:128
 #: lib/graphql/resolvers/participant.ex:155
-#: lib/graphql/resolvers/participant.ex:336
+#: lib/graphql/resolvers/participant.ex:343
 #, elixir-autogen, elixir-format
 msgid "Event with this ID %{id} doesn't exist"
 msgstr "Un eveniment d'amb aquesta ID %{id} existís pas"
@@ -417,7 +412,7 @@ msgstr "Un eveniment d'amb aquesta ID %{id} existís pas"
 msgid "Internal Error"
 msgstr "Error interna"
 
-#: lib/graphql/resolvers/discussion.ex:219
+#: lib/graphql/resolvers/discussion.ex:222
 #, elixir-autogen, elixir-format
 msgid "No discussion with ID %{id}"
 msgstr "Cap de discussion d'amb aquesta ID %{id}"
@@ -484,10 +479,10 @@ msgstr ""
 #: lib/graphql/resolvers/post.ex:133
 #: lib/graphql/resolvers/post.ex:175
 #: lib/graphql/resolvers/post.ex:209
-#: lib/graphql/resolvers/resource.ex:90
-#: lib/graphql/resolvers/resource.ex:135
-#: lib/graphql/resolvers/resource.ex:168
-#: lib/graphql/resolvers/resource.ex:202
+#: lib/graphql/resolvers/resource.ex:92
+#: lib/graphql/resolvers/resource.ex:137
+#: lib/graphql/resolvers/resource.ex:170
+#: lib/graphql/resolvers/resource.ex:204
 #: lib/graphql/resolvers/todos.ex:58
 #: lib/graphql/resolvers/todos.ex:83
 #: lib/graphql/resolvers/todos.ex:110
@@ -499,7 +494,7 @@ msgid "Profile is not member of group"
 msgstr ""
 
 #: lib/graphql/resolvers/actor.ex:67
-#: lib/graphql/resolvers/person.ex:242
+#: lib/graphql/resolvers/person.ex:244
 #, elixir-autogen, elixir-format
 msgid "Profile not found"
 msgstr ""
@@ -509,8 +504,8 @@ msgstr ""
 msgid "Report not found"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:172
-#: lib/graphql/resolvers/resource.ex:199
+#: lib/graphql/resolvers/resource.ex:174
+#: lib/graphql/resolvers/resource.ex:201
 #, elixir-autogen, elixir-format
 msgid "Resource doesn't exist"
 msgstr ""
@@ -520,7 +515,7 @@ msgstr ""
 msgid "The event has already reached its maximum capacity"
 msgstr ""
 
-#: lib/graphql/resolvers/participant.ex:282
+#: lib/graphql/resolvers/participant.ex:289
 #, elixir-autogen, elixir-format
 msgid "This token is invalid"
 msgstr ""
@@ -554,7 +549,7 @@ msgstr ""
 msgid "User not found"
 msgstr ""
 
-#: lib/graphql/resolvers/person.ex:333
+#: lib/graphql/resolvers/person.ex:335
 #, elixir-autogen, elixir-format
 msgid "You already have a profile for this user"
 msgstr ""
@@ -576,7 +571,7 @@ msgstr ""
 msgid "You are not a moderator or admin for this group"
 msgstr ""
 
-#: lib/graphql/resolvers/comment.ex:80
+#: lib/graphql/resolvers/comment.ex:74
 #, elixir-autogen, elixir-format
 msgid "You are not allowed to create a comment if not connected"
 msgstr ""
@@ -586,7 +581,7 @@ msgstr ""
 msgid "You are not allowed to create a feed token if not connected"
 msgstr ""
 
-#: lib/graphql/resolvers/comment.ex:155
+#: lib/graphql/resolvers/comment.ex:161
 #, elixir-autogen, elixir-format
 msgid "You are not allowed to delete a comment if not connected"
 msgstr ""
@@ -596,7 +591,7 @@ msgstr ""
 msgid "You are not allowed to delete a feed token if not connected"
 msgstr ""
 
-#: lib/graphql/resolvers/comment.ex:114
+#: lib/graphql/resolvers/comment.ex:120
 #, elixir-autogen, elixir-format
 msgid "You are not allowed to update a comment if not connected"
 msgstr ""
@@ -612,12 +607,12 @@ msgstr ""
 msgid "You can't set yourself to a lower member role for this group because you are the only administrator"
 msgstr ""
 
-#: lib/graphql/resolvers/comment.ex:143
+#: lib/graphql/resolvers/comment.ex:149
 #, elixir-autogen, elixir-format
 msgid "You cannot delete this comment"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:403
+#: lib/graphql/resolvers/event.ex:430
 #, elixir-autogen, elixir-format
 msgid "You cannot delete this event"
 msgstr ""
@@ -652,17 +647,17 @@ msgstr ""
 msgid "You need to be logged-in and a moderator to view a report"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:252
+#: lib/graphql/resolvers/admin.ex:258
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in and an administrator to access admin settings"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:236
+#: lib/graphql/resolvers/admin.ex:242
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in and an administrator to access dashboard statistics"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:278
+#: lib/graphql/resolvers/admin.ex:283
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in and an administrator to save admin settings"
 msgstr ""
@@ -672,12 +667,12 @@ msgstr ""
 msgid "You need to be logged-in to access discussions"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:96
+#: lib/graphql/resolvers/resource.ex:98
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to access resources"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:313
+#: lib/graphql/resolvers/event.ex:321
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to create events"
 msgstr ""
@@ -692,12 +687,12 @@ msgstr ""
 msgid "You need to be logged-in to create reports"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:140
+#: lib/graphql/resolvers/resource.ex:142
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to create resources"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:412
+#: lib/graphql/resolvers/event.ex:439
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to delete an event"
 msgstr ""
@@ -707,7 +702,7 @@ msgstr ""
 msgid "You need to be logged-in to delete posts"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:207
+#: lib/graphql/resolvers/resource.ex:209
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to delete resources"
 msgstr ""
@@ -722,7 +717,7 @@ msgstr ""
 msgid "You need to be logged-in to leave an event"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:369
+#: lib/graphql/resolvers/event.ex:396
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to update an event"
 msgstr ""
@@ -732,17 +727,17 @@ msgstr ""
 msgid "You need to be logged-in to update posts"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:177
+#: lib/graphql/resolvers/resource.ex:179
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to update resources"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:236
+#: lib/graphql/resolvers/resource.ex:233
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to view a resource preview"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:132
+#: lib/graphql/resolvers/resource.ex:134
 #, elixir-autogen, elixir-format
 msgid "Parent resource doesn't belong to this group"
 msgstr ""
@@ -828,12 +823,12 @@ msgstr ""
 msgid "Profile is not administrator for the group"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:358
+#: lib/graphql/resolvers/event.ex:385
 #, elixir-autogen, elixir-format
 msgid "You can't edit this event."
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:361
+#: lib/graphql/resolvers/event.ex:388
 #, elixir-autogen, elixir-format
 msgid "You can't attribute this event to this profile."
 msgstr ""
@@ -853,7 +848,7 @@ msgstr ""
 msgid "You don't have the right to remove this member."
 msgstr ""
 
-#: lib/mobilizon/actors/actor.ex:377
+#: lib/mobilizon/actors/actor.ex:378
 #, elixir-autogen, elixir-format
 msgid "This username is already taken."
 msgstr ""
@@ -863,7 +858,7 @@ msgstr ""
 msgid "You must provide either an ID or a slug to access a discussion"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:275
+#: lib/graphql/resolvers/event.ex:276
 #, elixir-autogen, elixir-format
 msgid "Organizer profile is not owned by the user"
 msgstr ""
@@ -875,41 +870,41 @@ msgstr ""
 
 #: lib/graphql/resolvers/group.ex:181
 #: lib/graphql/resolvers/group.ex:223
-#: lib/graphql/resolvers/person.ex:157
-#: lib/graphql/resolvers/person.ex:191
-#: lib/graphql/resolvers/person.ex:324
+#: lib/graphql/resolvers/person.ex:159
+#: lib/graphql/resolvers/person.ex:193
+#: lib/graphql/resolvers/person.ex:326
 #, elixir-autogen, elixir-format
 msgid "The provided picture is too heavy"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:129
+#: lib/graphql/resolvers/resource.ex:131
 #, elixir-autogen, elixir-format
 msgid "Error while creating resource"
 msgstr "Error mentre que sauvant lo rapòrt"
 
-#: lib/graphql/resolvers/user.ex:537
+#: lib/graphql/resolvers/user.ex:566
 #, elixir-autogen, elixir-format
 msgid "Invalid activation token"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:226
+#: lib/graphql/resolvers/resource.ex:228
 #, elixir-autogen, elixir-format
 msgid "Unable to fetch resource details from this URL."
 msgstr ""
 
 #: lib/graphql/resolvers/event.ex:165
 #: lib/graphql/resolvers/participant.ex:253
-#: lib/graphql/resolvers/participant.ex:328
+#: lib/graphql/resolvers/participant.ex:335
 #, elixir-autogen, elixir-format
 msgid "Provided profile doesn't have moderator permissions on this event"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:286
+#: lib/graphql/resolvers/event.ex:294
 #, elixir-autogen, elixir-format
 msgid "Organizer profile doesn't have permission to create an event on behalf of this group"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:349
+#: lib/graphql/resolvers/event.ex:369
 #, elixir-autogen, elixir-format
 msgid "This profile doesn't have permission to update an event on behalf of this group"
 msgstr ""
@@ -919,7 +914,7 @@ msgstr ""
 msgid "Your e-mail has been denied registration or uses a disallowed e-mail provider"
 msgstr ""
 
-#: lib/graphql/resolvers/comment.ex:150
+#: lib/graphql/resolvers/comment.ex:156
 #, elixir-autogen, elixir-format
 msgid "Comment not found"
 msgstr "Eveniment non trobat"
@@ -929,12 +924,12 @@ msgstr "Eveniment non trobat"
 msgid "Error while creating a discussion"
 msgstr "Error mentre que sauvant lo rapòrt"
 
-#: lib/graphql/resolvers/user.ex:658
+#: lib/graphql/resolvers/user.ex:687
 #, elixir-autogen, elixir-format
 msgid "Error while updating locale"
 msgstr "Error mentre la mesa a jorn dèu rapòrt"
 
-#: lib/graphql/resolvers/person.ex:327
+#: lib/graphql/resolvers/person.ex:329
 #, elixir-autogen, elixir-format
 msgid "Error while uploading pictures"
 msgstr "Error mentre la mesa a jorn dèu rapòrt"
@@ -949,13 +944,13 @@ msgstr ""
 msgid "Failed to update the group"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:333
-#: lib/graphql/resolvers/user.ex:501
+#: lib/graphql/resolvers/admin.ex:357
+#: lib/graphql/resolvers/user.ex:547
 #, elixir-autogen, elixir-format
 msgid "Failed to update user email"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:533
+#: lib/graphql/resolvers/user.ex:562
 #, elixir-autogen, elixir-format
 msgid "Failed to validate user email"
 msgstr "Es impossible de validar l'utilizator"
@@ -965,37 +960,37 @@ msgstr "Es impossible de validar l'utilizator"
 msgid "The anonymous actor ID is invalid"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:165
+#: lib/graphql/resolvers/resource.ex:167
 #, elixir-autogen, elixir-format
 msgid "Unknown error while updating resource"
 msgstr ""
 
-#: lib/graphql/resolvers/comment.ex:105
+#: lib/graphql/resolvers/comment.ex:111
 #, elixir-autogen, elixir-format
 msgid "You are not the comment creator"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:458
+#: lib/graphql/resolvers/user.ex:471
 #, elixir-autogen, elixir-format
 msgid "You cannot change your password."
 msgstr ""
 
-#: lib/graphql/resolvers/participant.ex:321
+#: lib/graphql/resolvers/participant.ex:328
 #, elixir-autogen, elixir-format
 msgid "Format not supported"
 msgstr ""
 
-#: lib/graphql/resolvers/participant.ex:305
+#: lib/graphql/resolvers/participant.ex:312
 #, elixir-autogen, elixir-format
 msgid "A dependency needed to export to %{format} is not installed"
 msgstr ""
 
-#: lib/graphql/resolvers/participant.ex:313
+#: lib/graphql/resolvers/participant.ex:320
 #, elixir-autogen, elixir-format
 msgid "An error occured while saving export"
 msgstr ""
 
-#: lib/web/controllers/export_controller.ex:30
+#: lib/web/controllers/export_controller.ex:32
 #, elixir-autogen, elixir-format
 msgid "Export to format %{format} is not enabled on this instance"
 msgstr ""
@@ -1005,17 +1000,17 @@ msgstr ""
 msgid "Only admins can create groups"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:279
+#: lib/graphql/resolvers/event.ex:280
 #, elixir-autogen, elixir-format
 msgid "Only groups can create events"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:305
+#: lib/graphql/resolvers/event.ex:313
 #, elixir-autogen, elixir-format
 msgid "Unknown error while creating event"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:514
+#: lib/graphql/resolvers/user.ex:498
 #, elixir-autogen, elixir-format
 msgid "User cannot change email"
 msgstr ""
@@ -1030,12 +1025,12 @@ msgstr ""
 msgid "Follow not found"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:379
+#: lib/graphql/resolvers/user.ex:392
 #, elixir-autogen, elixir-format
 msgid "Profile with username %{username} not found"
 msgstr "Degun trobat d'amb l'utilizator %{username}"
 
-#: lib/graphql/resolvers/user.ex:374
+#: lib/graphql/resolvers/user.ex:387
 #, elixir-autogen, elixir-format
 msgid "This profile does not belong to you"
 msgstr ""
@@ -1080,22 +1075,22 @@ msgstr ""
 msgid "Your email seems to be using an invalid format"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:382
+#: lib/graphql/resolvers/admin.ex:399
 #, elixir-autogen, elixir-format
 msgid "Can't confirm an already confirmed user"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:386
+#: lib/graphql/resolvers/admin.ex:403
 #, elixir-autogen, elixir-format
 msgid "Deconfirming users is not supported"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:358
+#: lib/graphql/resolvers/admin.ex:375
 #, elixir-autogen, elixir-format, fuzzy
 msgid "The new role must be different"
 msgstr "Lo email nau deb esser different"
 
-#: lib/graphql/resolvers/admin.ex:309
+#: lib/graphql/resolvers/admin.ex:314
 #, elixir-autogen, elixir-format, fuzzy
 msgid "You need to be logged-in and an administrator to edit an user's details"
 msgstr ""
@@ -1105,28 +1100,28 @@ msgstr ""
 msgid "A profile or group with that name already exists"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:519
+#: lib/graphql/resolvers/admin.ex:542
 #, elixir-autogen, elixir-format
 msgid "Unable to find an instance to follow at this address"
 msgstr ""
 
-#: lib/mobilizon/actors/actor.ex:396
+#: lib/mobilizon/actors/actor.ex:397
 #, elixir-autogen, elixir-format
 msgid "Username must only contain alphanumeric lowercased characters and underscores."
 msgstr ""
 
 #: lib/graphql/resolvers/user.ex:303
-#: lib/graphql/resolvers/user.ex:326
+#: lib/graphql/resolvers/user.ex:333
 #, elixir-autogen, elixir-format, fuzzy
 msgid "This email doesn't seem to be valid"
 msgstr "Lo email nau sèm invalid"
 
-#: lib/graphql/resolvers/comment.ex:65
+#: lib/graphql/resolvers/comment.ex:59
 #, elixir-autogen, elixir-format
 msgid "This comment was detected as spam."
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:293
+#: lib/graphql/resolvers/event.ex:301
 #, elixir-autogen, elixir-format
 msgid "This event was detected as spam."
 msgstr ""
@@ -1147,7 +1142,7 @@ msgstr ""
 msgid "You need to be a moderator or an administrator to create a note on a report"
 msgstr ""
 
-#: lib/graphql/resolvers/person.ex:330
+#: lib/graphql/resolvers/person.ex:332
 #, elixir-autogen, elixir-format
 msgid "Your profile was detected as spam."
 msgstr ""
@@ -1157,7 +1152,7 @@ msgstr ""
 msgid "Your registration has been detected as spam and cannot be processed."
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:86
+#: lib/web/controllers/application_controller.ex:88
 #, elixir-autogen, elixir-format
 msgid "All of name, scope and redirect_uri parameters are required to create an application"
 msgstr ""
@@ -1172,171 +1167,227 @@ msgstr ""
 msgid "Application token not found"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:89
+#: lib/graphql/resolvers/application.ex:90
 #, elixir-autogen, elixir-format, fuzzy
 msgid "Error while revoking token"
 msgstr "Error mentre que sauvant lo rapòrt"
 
-#: lib/web/controllers/application_controller.ex:59
+#: lib/web/controllers/application_controller.ex:61
 #, elixir-autogen, elixir-format
 msgid "Impossible to create application."
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:356
+#: lib/web/controllers/application_controller.ex:358
 #, elixir-autogen, elixir-format
 msgid "Incorrect parameters sent. You need to provide at least the grant_type and client_id parameters, depending on the grant type being used."
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:329
+#: lib/web/controllers/application_controller.ex:331
 #, elixir-autogen, elixir-format
 msgid "Invalid client credentials provided"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:337
+#: lib/web/controllers/application_controller.ex:339
 #, elixir-autogen, elixir-format
 msgid "Invalid refresh token provided"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:170
-#: lib/web/controllers/application_controller.ex:401
+#: lib/web/controllers/application_controller.ex:172
+#: lib/web/controllers/application_controller.ex:403
 #, elixir-autogen, elixir-format
 msgid "No application was found with this client_id"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:37
+#: lib/graphql/resolvers/application.ex:38
 #, elixir-autogen, elixir-format
 msgid "No application with this client_id was found"
 msgstr ""
 
-#: lib/graphql/authorization.ex:80
+#: lib/graphql/authorization.ex:81
 #, elixir-autogen, elixir-format
 msgid "Not authorized to access field %{field}"
 msgstr ""
 
-#: lib/graphql/authorization.ex:70
-#: lib/graphql/authorization.ex:75
+#: lib/graphql/authorization.ex:71
+#: lib/graphql/authorization.ex:76
 #, elixir-autogen, elixir-format
 msgid "Not authorized to access object %{object}"
 msgstr ""
 
-#: lib/graphql/authorization.ex:63
+#: lib/graphql/authorization.ex:64
 #, elixir-autogen, elixir-format
 msgid "Not authorized to access this %{object_type}"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:279
+#: lib/web/controllers/application_controller.ex:281
 #, elixir-autogen, elixir-format
 msgid "Please slow down the rate of your requests"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:267
+#: lib/web/controllers/application_controller.ex:269
 #, elixir-autogen, elixir-format
 msgid "The authorization request is still pending"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:249
+#: lib/web/controllers/application_controller.ex:251
 #, elixir-autogen, elixir-format
 msgid "The client_id provided or the device_code associated is invalid"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:133
+#: lib/graphql/resolvers/application.ex:139
 #, elixir-autogen, elixir-format
 msgid "The device user code was not provided before approving the application"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:304
+#: lib/web/controllers/application_controller.ex:306
 #, elixir-autogen, elixir-format
 msgid "The given device_code has expired"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:44
+#: lib/graphql/resolvers/application.ex:45
 #, elixir-autogen, elixir-format
 msgid "The given redirect_uri is not in the list of allowed redirect URIs"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:158
+#: lib/web/controllers/application_controller.ex:160
 #, elixir-autogen, elixir-format
 msgid "The given scope is not in the list of the app declared scopes"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:109
-#: lib/graphql/resolvers/application.ex:146
+#: lib/graphql/resolvers/application.ex:112
+#: lib/graphql/resolvers/application.ex:154
 #, elixir-autogen, elixir-format
 msgid "The given user code has expired"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:112
-#: lib/graphql/resolvers/application.ex:140
+#: lib/graphql/resolvers/application.ex:118
+#: lib/graphql/resolvers/application.ex:146
 #, elixir-autogen, elixir-format
 msgid "The given user code is invalid"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:411
+#: lib/web/controllers/application_controller.ex:413
 #, elixir-autogen, elixir-format
 msgid "The provided client_id does not match the provided code"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:414
+#: lib/web/controllers/application_controller.ex:416
 #, elixir-autogen, elixir-format
 msgid "The provided client_secret is invalid"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:407
+#: lib/web/controllers/application_controller.ex:409
 #, elixir-autogen, elixir-format
 msgid "The provided code is invalid or expired"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:418
+#: lib/web/controllers/application_controller.ex:420
 #, elixir-autogen, elixir-format
 msgid "The provided scope is invalid or not included in the app declared scopes"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:45
+#: lib/web/controllers/application_controller.ex:47
 #, elixir-autogen, elixir-format
 msgid "The scope parameter is not a space separated list of valid scopes"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:292
+#: lib/web/controllers/application_controller.ex:294
 #, elixir-autogen, elixir-format
 msgid "The user rejected the requested authorization"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:404
+#: lib/web/controllers/application_controller.ex:406
 #, elixir-autogen, elixir-format
 msgid "This redirect URI is not allowed"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:381
+#: lib/web/controllers/application_controller.ex:383
 #, elixir-autogen, elixir-format, fuzzy
 msgid "Token not found"
 msgstr "Eveniment non trobat"
 
-#: lib/web/controllers/application_controller.ex:72
+#: lib/web/controllers/application_controller.ex:74
 #, elixir-autogen, elixir-format
 msgid "Too many requests"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:184
+#: lib/web/controllers/application_controller.ex:186
 #, elixir-autogen, elixir-format
 msgid "Unable to produce device code"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:373
+#: lib/web/controllers/application_controller.ex:375
 #, elixir-autogen, elixir-format
 msgid "Unable to revoke token"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:198
+#: lib/web/controllers/application_controller.ex:200
 #, elixir-autogen, elixir-format
 msgid "You need to pass both client_id and scope as parameters to obtain a device code"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:136
+#: lib/web/controllers/application_controller.ex:138
 #, elixir-autogen, elixir-format
 msgid "You need to provide a valid redirect_uri to autorize an application"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:126
+#: lib/web/controllers/application_controller.ex:128
 #, elixir-autogen, elixir-format
 msgid "You need to specify client_id, redirect_uri, scope and state to autorize an application"
 msgstr ""
+
+#: lib/graphql/resolvers/user.ex:306
+#, elixir-autogen, elixir-format
+msgid "Couldn't send an email. Internal error."
+msgstr ""
+
+#: lib/graphql/resolvers/participant.ex:286
+#, elixir-autogen, elixir-format
+msgid "Participation is already confirmed"
+msgstr ""
+
+#: lib/graphql/resolvers/participant.ex:283
+#, elixir-autogen, elixir-format
+msgid "Participation is confirmed but not approved yet by an organizer"
+msgstr ""
+
+#: lib/graphql/resolvers/event.ex:287
+#: lib/graphql/resolvers/event.ex:376
+#, elixir-autogen, elixir-format
+msgid "Providing external registration is not allowed"
+msgstr ""
+
+#: lib/graphql/resolvers/push_subscription.ex:48
+#, elixir-autogen, elixir-format
+msgid "The same push subscription has already been registered"
+msgstr ""
+
+#: lib/graphql/resolvers/admin.ex:536
+#, elixir-autogen, elixir-format
+msgid "This instance is pending follow approval"
+msgstr ""
+
+#: lib/graphql/schema/custom/timezone.ex:23
+#, elixir-autogen, elixir-format
+msgid "Timezone ID %{timezone} is invalid"
+msgstr ""
+
+#: lib/graphql/resolvers/admin.ex:539
+#, elixir-autogen, elixir-format, fuzzy
+msgid "You are already following this instance"
+msgstr ""
+
+#: lib/graphql/resolvers/user.ex:310
+#, elixir-autogen, elixir-format, fuzzy
+msgid "You requested again a confirmation email too soon. Please try again in a few minutes"
+msgstr "Demandatz de nau un email de confirmacion tròp lèu"
+
+#: lib/graphql/resolvers/user.ex:341
+#, elixir-autogen, elixir-format
+msgid "You requested again a password reset email too soon. Please try again in a few minutes"
+msgstr ""
+
+#: lib/graphql/resolvers/user.ex:368
+#, elixir-autogen, elixir-format
+msgid "The token you provided is invalid. Make sure that the URL is exactly the one provided inside the email you got."
+msgstr ""
diff --git a/priv/gettext/pl/LC_MESSAGES/activity.po b/priv/gettext/pl/LC_MESSAGES/activity.po
index 0dc301a4810b17d9442ff78c2576ecdee9f16ef2..80ad676a23f67ae4de02c3797df46bc13125f880 100644
--- a/priv/gettext/pl/LC_MESSAGES/activity.po
+++ b/priv/gettext/pl/LC_MESSAGES/activity.po
@@ -490,3 +490,15 @@ msgstr ""
 #, elixir-autogen, elixir-format
 msgid "%{profile} approved the member %{member}."
 msgstr "Profil %{profile} zatwierdził członka %{member}."
+
+#: lib/service/activity/renderer/event.ex:74
+#: lib/web/templates/email/activity/_event_activity_item.html.heex:55
+#: lib/web/templates/email/activity/_event_activity_item.text.eex:31
+#, elixir-autogen, elixir-format
+msgid "%{profile} joined your event %{event}."
+msgstr ""
+
+#: lib/web/views/email_view.ex:45
+#, elixir-autogen, elixir-format
+msgid "An anonymous profile"
+msgstr ""
diff --git a/priv/gettext/pl/LC_MESSAGES/default.po b/priv/gettext/pl/LC_MESSAGES/default.po
index 9c3bfd4258797f38dcd11f94f19e40665f1524f1..e5193b5ba9d835d9654d67366fbb0677be7fc7b7 100644
--- a/priv/gettext/pl/LC_MESSAGES/default.po
+++ b/priv/gettext/pl/LC_MESSAGES/default.po
@@ -23,7 +23,7 @@ msgstr ""
 "zostanie zmienione, jeżeli nie skorzystasz z poniższego linku i nie ustawisz "
 "nowego."
 
-#: lib/web/templates/email/report.html.heex:120
+#: lib/web/templates/email/report.html.heex:121
 #, elixir-autogen, elixir-format
 msgid "%{title} by %{creator}"
 msgstr "%{title} od %{creator}"
@@ -39,23 +39,17 @@ msgstr "Aktywuj moje konto"
 msgid "Ask the community on Framacolibri"
 msgstr "Zapytaj społeczność na Framacolibri"
 
-#: lib/web/templates/email/report.text.eex:15
+#: lib/web/templates/email/report.text.eex:17
 #, elixir-autogen, elixir-format
 msgid "Comments"
 msgstr "Komentarze"
 
-#: lib/web/templates/email/report.html.heex:115
-#: lib/web/templates/email/report.text.eex:11
-#, elixir-autogen, elixir-format
-msgid "Event"
-msgstr "Wydarzenie"
-
 #: lib/web/email/user.ex:49
 #, elixir-autogen, elixir-format
 msgid "Instructions to reset your password on %{instance}"
 msgstr "Instrukcje resetowania hasła na %{instance}"
 
-#: lib/web/templates/email/report.text.eex:21
+#: lib/web/templates/email/report.text.eex:23
 #, elixir-autogen, elixir-format
 msgid "Reason"
 msgstr "Powód"
@@ -354,12 +348,12 @@ msgctxt "terms"
 msgid "What information do we collect?"
 msgstr "Jakie informacje zbieramy?"
 
-#: lib/web/email/user.ex:182
+#: lib/web/email/user.ex:188
 #, elixir-autogen, elixir-format
 msgid "Mobilizon on %{instance}: confirm your email address"
 msgstr "Mobilizon na %{instance}: potwierdź swój adres e-mail"
 
-#: lib/web/email/user.ex:159
+#: lib/web/email/user.ex:165
 #, elixir-autogen, elixir-format
 msgid "Mobilizon on %{instance}: email changed"
 msgstr "Mobilizon na %{instance}: zmieniono e-mail"
@@ -1008,7 +1002,7 @@ msgstr "Koniec"
 msgid "Event update!"
 msgstr "Zaktualizowano wydarzenie!"
 
-#: lib/web/templates/email/report.html.heex:155
+#: lib/web/templates/email/report.html.heex:158
 #, elixir-autogen, elixir-format
 msgid "Flagged comments"
 msgstr "Oflagowane komentarze"
@@ -1106,7 +1100,7 @@ msgstr "Już prawie!"
 msgid "New email confirmation"
 msgstr "Potwierdzenie nowego adresu e-mail"
 
-#: lib/web/templates/email/report.html.heex:191
+#: lib/web/templates/email/report.html.heex:194
 #, elixir-autogen, elixir-format
 msgid "Reasons for report"
 msgstr "Powody zgłoszenia"
@@ -1163,12 +1157,12 @@ msgstr "Niestety, organizatorzy odrzucili Twoje uczestnictwo."
 msgid "Verify your email address"
 msgstr "Zweryfikuj swój adres e-mail"
 
-#: lib/web/templates/email/report.html.heex:232
+#: lib/web/templates/email/report.html.heex:235
 #, elixir-autogen, elixir-format
 msgid "View report"
 msgstr "Zobacz zgłoszenie"
 
-#: lib/web/templates/email/report.text.eex:24
+#: lib/web/templates/email/report.text.eex:26
 #, elixir-autogen, elixir-format
 msgid "View report:"
 msgstr "Zobacz zgłoszenie:"
@@ -1282,14 +1276,6 @@ msgstr ""
 "Jako że ta grupa znajdowała się na innej instancji, będzie wciąż działać na "
 "instancjach innych niż ta."
 
-#: lib/web/templates/email/group_suspension.html.heex:67
-#: lib/web/templates/email/group_suspension.text.eex:5
-#, elixir-autogen, elixir-format
-msgid "As this group was located on this instance, all of it's data has been irretrievably deleted."
-msgstr ""
-"Ponieważ ta grupa znajdowała się na tej instancji, cała jej zawartość "
-"została bezpowrotnie usunięta."
-
 #: lib/web/templates/email/group_suspension.html.heex:18
 #: lib/web/templates/email/group_suspension.text.eex:1
 #, elixir-autogen, elixir-format
@@ -1303,7 +1289,7 @@ msgstr ""
 "Zespół moderatorów(-ek) Twojej instancji zdecydował się zawiesić "
 "%{nazwa_grupy} (%{adres_grupy}). Nie należysz już do tej grupy."
 
-#: lib/web/email/group.ex:107
+#: lib/web/email/group.ex:108
 #, elixir-autogen, elixir-format
 msgid "The group %{group} has been suspended on %{instance}"
 msgstr "Grupa %{group} została zawieszona na %{instance}"
@@ -1682,20 +1668,6 @@ msgstr "Serwer Mobilizon %{instance} wydaje się tymczasowo nie działać."
 msgid "Public feed for %{instance}"
 msgstr "Publiczny kanał dla %{instance}"
 
-#: lib/graphql/resolvers/user.ex:350
-#, elixir-autogen, elixir-format
-msgid "The password you have choosen is too short. Please make sure your password contains at least 6 charaters."
-msgstr ""
-"Wprowadzone hasło jest zbyt krótkie. Upewnij się, że Twoje hasło składa się "
-"przynajmniej z sześciu znaków."
-
-#: lib/graphql/resolvers/user.ex:356
-#, elixir-autogen, elixir-format
-msgid "The token you provided is invalid. Make sure that the URL is exactly the one provided inside the email you got."
-msgstr ""
-"Podany token jest nieprawidłowy. Upewnij się, że adres URL jest dokładnie "
-"taki sam, jak podany w otrzymanej wiadomości e-mail."
-
 #: lib/web/email/actor.ex:43
 #, elixir-autogen, elixir-format
 msgid "Your participation to %{event} has been cancelled!"
@@ -1724,63 +1696,63 @@ msgid "Your participation to %{event} on %{instance} has been cancelled!"
 msgstr "Twoje uczestnictwo w %{event} na %{instance} zostało anulowane!"
 
 #. File name template for exported list of participants. Should NOT contain spaces. Make sure the output is going to be something standardized that is acceptable as a file name on most systems.
-#: lib/service/export/participants/csv.ex:81
+#: lib/service/export/participants/csv.ex:97
 #: lib/service/export/participants/ods.ex:86
 #: lib/service/export/participants/pdf.ex:96
 #, elixir-autogen, elixir-format
 msgid "%{event}_participants"
 msgstr "{event}_uczestnicy"
 
-#: lib/service/export/participants/common.ex:61
+#: lib/service/export/participants/common.ex:66
 #, elixir-autogen, elixir-format
 msgid "Participant message"
 msgstr "Wiadomość uczestnika"
 
-#: lib/service/export/participants/common.ex:61
+#: lib/service/export/participants/common.ex:63
 #, elixir-autogen, elixir-format
 msgid "Participant name"
 msgstr "Nazwa uczestnika"
 
-#: lib/service/export/participants/common.ex:61
+#: lib/service/export/participants/common.ex:64
 #, elixir-autogen, elixir-format
 msgid "Participant status"
 msgstr "Status uczestnika"
 
-#: lib/service/export/participants/common.ex:52
+#: lib/service/export/participants/common.ex:53
 #: lib/web/templates/email/admin/_role.html.heex:3
 #: lib/web/templates/email/admin/_role.text.eex:1
 #, elixir-autogen, elixir-format
 msgid "Administrator"
 msgstr "Administrator (ka)"
 
-#: lib/service/export/participants/common.ex:55
+#: lib/service/export/participants/common.ex:56
 #, elixir-autogen, elixir-format
 msgid "Creator"
 msgstr "Autor(ka)"
 
-#: lib/service/export/participants/common.ex:49
+#: lib/service/export/participants/common.ex:50
 #: lib/web/templates/email/admin/_role.html.heex:5
 #: lib/web/templates/email/admin/_role.text.eex:1
 #, elixir-autogen, elixir-format
 msgid "Moderator"
 msgstr "Moderator(ka)"
 
-#: lib/service/export/participants/common.ex:37
+#: lib/service/export/participants/common.ex:38
 #, elixir-autogen, elixir-format
 msgid "Not approved"
 msgstr "Nie zatwierdzony(-a)"
 
-#: lib/service/export/participants/common.ex:40
+#: lib/service/export/participants/common.ex:41
 #, elixir-autogen, elixir-format
 msgid "Not confirmed"
 msgstr "Nie potwierdzono"
 
-#: lib/service/export/participants/common.ex:46
+#: lib/service/export/participants/common.ex:47
 #, elixir-autogen, elixir-format
 msgid "Participant"
 msgstr "Uczestnik(-czka)"
 
-#: lib/service/export/participants/common.ex:43
+#: lib/service/export/participants/common.ex:44
 #, elixir-autogen, elixir-format
 msgid "Rejected"
 msgstr "Odrzucony(-a)"
@@ -1805,7 +1777,7 @@ msgstr "Liczba uczestników(-czek)"
 msgid "Participants for %{event}"
 msgstr "Osoby uczestniczÄ…ce w %{event}"
 
-#: lib/service/export/participants/common.ex:88
+#: lib/service/export/participants/common.ex:95
 #, elixir-autogen, elixir-format
 msgid "Anonymous participant"
 msgstr "Osoba uczestniczÄ…ca anonimowo"
@@ -1924,7 +1896,7 @@ msgstr "Weź udział:"
 msgid "Title: %{title}"
 msgstr "Tytuł: %{title}"
 
-#: lib/web/email/group.ex:46
+#: lib/web/email/group.ex:47
 #, elixir-autogen, elixir-format
 msgid "📅 Just scheduled by %{group}: %{event}"
 msgstr "📅 Właśnie zaplanowane przez %{group}: %{event}"
@@ -2388,3 +2360,26 @@ msgstr ""
 #, elixir-autogen, elixir-format
 msgid "Until next time!"
 msgstr "Do następnego razu!"
+
+#: lib/web/templates/email/group_suspension.html.heex:67
+#: lib/web/templates/email/group_suspension.text.eex:5
+#, elixir-autogen, elixir-format, fuzzy
+msgid "As this group was located on this instance, all of its data has been irretrievably deleted."
+msgstr ""
+"Ponieważ ta grupa znajdowała się na tej instancji, cała jej zawartość "
+"została bezpowrotnie usunięta."
+
+#: lib/web/templates/email/report.text.eex:11
+#, elixir-autogen, elixir-format, fuzzy
+msgid "Events"
+msgstr "Wydarzenie"
+
+#: lib/web/templates/email/report.html.heex:115
+#, elixir-autogen, elixir-format, fuzzy
+msgid "Flagged events"
+msgstr "Oflagowane komentarze"
+
+#: lib/service/export/participants/common.ex:65
+#, elixir-autogen, elixir-format, fuzzy
+msgid "Participant registration date"
+msgstr "Status uczestnika"
diff --git a/priv/gettext/pl/LC_MESSAGES/errors.po b/priv/gettext/pl/LC_MESSAGES/errors.po
index 85f636d0a96c48bc80a7e2b27a70521a7f3022d6..7cf77a85e11a8d669506e0590d619e7a5d93c945 100644
--- a/priv/gettext/pl/LC_MESSAGES/errors.po
+++ b/priv/gettext/pl/LC_MESSAGES/errors.po
@@ -117,7 +117,7 @@ msgstr "Obecny profil nie jest członkiem tej grupy"
 msgid "Current profile is not an administrator of the selected group"
 msgstr "Obecny profil nie jest administratorem zaznaczonej grupy"
 
-#: lib/graphql/resolvers/user.ex:644
+#: lib/graphql/resolvers/user.ex:673
 #, elixir-autogen, elixir-format
 msgid "Error while saving user settings"
 msgstr "Błąd zapisywania ustawień użytkownika"
@@ -163,8 +163,8 @@ msgstr ""
 "Nie znaleziono użytkownika(-czki) do zatwierdzenia z użyciem tego adresu "
 "e-mail"
 
-#: lib/graphql/resolvers/person.ex:337
-#: lib/graphql/resolvers/user.ex:330
+#: lib/graphql/resolvers/person.ex:339
+#: lib/graphql/resolvers/user.ex:337
 #, elixir-autogen, elixir-format
 msgid "No user with this email was found"
 msgstr "Nie znaleziono użytkownika(czki) o tym adresie e-mail"
@@ -172,12 +172,12 @@ msgstr "Nie znaleziono użytkownika(czki) o tym adresie e-mail"
 #: lib/graphql/resolvers/feed_token.ex:28
 #: lib/graphql/resolvers/participant.ex:32
 #: lib/graphql/resolvers/participant.ex:210
-#: lib/graphql/resolvers/person.ex:245
-#: lib/graphql/resolvers/person.ex:376
-#: lib/graphql/resolvers/person.ex:412
-#: lib/graphql/resolvers/person.ex:419
-#: lib/graphql/resolvers/person.ex:448
-#: lib/graphql/resolvers/person.ex:463
+#: lib/graphql/resolvers/person.ex:247
+#: lib/graphql/resolvers/person.ex:378
+#: lib/graphql/resolvers/person.ex:414
+#: lib/graphql/resolvers/person.ex:421
+#: lib/graphql/resolvers/person.ex:450
+#: lib/graphql/resolvers/person.ex:465
 #, elixir-autogen, elixir-format
 msgid "Profile is not owned by authenticated user"
 msgstr "Profil nie należy do uwierzytelnionego użytkownika(-czki)"
@@ -187,43 +187,44 @@ msgstr "Profil nie należy do uwierzytelnionego użytkownika(-czki)"
 msgid "Registrations are not open"
 msgstr "Rejestracje nie sÄ… otwarte"
 
-#: lib/graphql/resolvers/user.ex:461
+#: lib/graphql/resolvers/user.ex:474
 #, elixir-autogen, elixir-format
 msgid "The current password is invalid"
 msgstr "Obecne hasło jest nieprawidłowe"
 
-#: lib/graphql/resolvers/admin.ex:336
-#: lib/graphql/resolvers/user.ex:504
+#: lib/graphql/resolvers/admin.ex:334
+#: lib/graphql/resolvers/user.ex:527
 #, elixir-autogen, elixir-format
 msgid "The new email doesn't seem to be valid"
 msgstr "Nowy adres e-mail nie wydaje się być prawidłowy"
 
-#: lib/graphql/resolvers/admin.ex:339
-#: lib/graphql/resolvers/user.ex:507
+#: lib/graphql/resolvers/admin.ex:323
+#: lib/graphql/resolvers/user.ex:514
 #, elixir-autogen, elixir-format
 msgid "The new email must be different"
 msgstr "Nowy adres e-mail musi się różnić od obecnego"
 
-#: lib/graphql/resolvers/user.ex:464
+#: lib/graphql/resolvers/user.ex:477
 #, elixir-autogen, elixir-format
 msgid "The new password must be different"
 msgstr "Nowe hasło musi różnić się od obecnego"
 
-#: lib/graphql/resolvers/user.ex:511
-#: lib/graphql/resolvers/user.ex:573
-#: lib/graphql/resolvers/user.ex:576
+#: lib/graphql/resolvers/user.ex:518
+#: lib/graphql/resolvers/user.ex:602
+#: lib/graphql/resolvers/user.ex:605
 #, elixir-autogen, elixir-format
 msgid "The password provided is invalid"
 msgstr "Wprowadzone hasło jest nieprawidłowe"
 
-#: lib/graphql/resolvers/user.ex:468
+#: lib/graphql/resolvers/user.ex:361
+#: lib/graphql/resolvers/user.ex:481
 #, elixir-autogen, elixir-format
 msgid "The password you have chosen is too short. Please make sure your password contains at least 6 characters."
 msgstr ""
 "Wprowadzone hasło jest zbyt krótkie. Upewnij się, że Twoje hasło składa się "
 "z przynajmniej 6 znaków."
 
-#: lib/graphql/resolvers/user.ex:323
+#: lib/graphql/resolvers/user.ex:330
 #, elixir-autogen, elixir-format
 msgid "This user can't reset their password"
 msgstr "Ten użytkownik nie może resetować swojego hasła"
@@ -239,12 +240,12 @@ msgstr "Ten użytkownik jest wyłączony"
 msgid "Unable to validate user"
 msgstr "Nie udało się zwalidować użytkownika"
 
-#: lib/graphql/resolvers/user.ex:554
+#: lib/graphql/resolvers/user.ex:583
 #, elixir-autogen, elixir-format
 msgid "User already disabled"
 msgstr "Użytkownik jest już wyłączony"
 
-#: lib/graphql/resolvers/user.ex:619
+#: lib/graphql/resolvers/user.ex:648
 #, elixir-autogen, elixir-format
 msgid "User requested is not logged-in"
 msgstr "Żądany użytkownik nie jest zalogowany"
@@ -271,12 +272,12 @@ msgstr "Nie możesz dołączyć do tej grupy"
 msgid "You may not list groups unless moderator."
 msgstr "Nie masz dostępu do listy grup, jeżeli nie jesteś moderatorem(-ką)."
 
-#: lib/graphql/resolvers/user.ex:519
+#: lib/graphql/resolvers/user.ex:503
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to change your email"
 msgstr "Musisz być zalogowany(-a), aby zmienić adres e-mail"
 
-#: lib/graphql/resolvers/user.ex:476
+#: lib/graphql/resolvers/user.ex:489
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to change your password"
 msgstr "Musisz być zalogowany(-a), aby zmienić hasło"
@@ -286,7 +287,7 @@ msgstr "Musisz być zalogowany(-a), aby zmienić hasło"
 msgid "You need to be logged-in to delete a group"
 msgstr "Musisz być zalogowany(-a), aby usunąć grupę"
 
-#: lib/graphql/resolvers/user.ex:581
+#: lib/graphql/resolvers/user.ex:610
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to delete your account"
 msgstr "Musisz być zalogowany(-a), aby usunąć konto"
@@ -311,12 +312,6 @@ msgstr "Aby zaktualizować grupę, musisz być zalogowany(-a)"
 msgid "You need to have an existing token to get a refresh token"
 msgstr "Musisz mieć istniejący token, aby uzyskać token odświeżający"
 
-#: lib/graphql/resolvers/user.ex:306
-#: lib/graphql/resolvers/user.ex:333
-#, elixir-autogen, elixir-format
-msgid "You requested again a confirmation email too soon"
-msgstr "Zbyt wcześnie poprosiłeś(-aś) o nową wiadomość potwierdzającą"
-
 #: lib/graphql/resolvers/user.ex:180
 #, elixir-autogen, elixir-format
 msgid "Your email is not on the allowlist"
@@ -370,17 +365,17 @@ msgstr "Twoja instancja wymaga prawidłowego adresu e-mail"
 msgid "Anonymous participation is not enabled"
 msgstr "Anonimowe uczestnictwo nie jest włączone"
 
-#: lib/graphql/resolvers/person.ex:219
+#: lib/graphql/resolvers/person.ex:221
 #, elixir-autogen, elixir-format
 msgid "Cannot remove the last administrator of a group"
 msgstr "Nie można usunąć jedynego(-j) administratora(-ki) grupy"
 
-#: lib/graphql/resolvers/person.ex:216
+#: lib/graphql/resolvers/person.ex:218
 #, elixir-autogen, elixir-format
 msgid "Cannot remove the last identity of a user"
 msgstr "Nie można usunąć jedynej tożsamości użytkownika(-czki)"
 
-#: lib/graphql/resolvers/comment.ex:147
+#: lib/graphql/resolvers/comment.ex:153
 #, elixir-autogen, elixir-format
 msgid "Comment is already deleted"
 msgstr "Komentarz jest już usunięty"
@@ -408,8 +403,8 @@ msgid "Event id not found"
 msgstr "Nie znaleziono id wydarzenia"
 
 #: lib/graphql/error.ex:114
-#: lib/graphql/resolvers/event.ex:355
-#: lib/graphql/resolvers/event.ex:407
+#: lib/graphql/resolvers/event.ex:382
+#: lib/graphql/resolvers/event.ex:434
 #, elixir-autogen, elixir-format
 msgid "Event not found"
 msgstr "Nie znaleziono wydarzenia"
@@ -417,7 +412,7 @@ msgstr "Nie znaleziono wydarzenia"
 #: lib/graphql/resolvers/participant.ex:87
 #: lib/graphql/resolvers/participant.ex:128
 #: lib/graphql/resolvers/participant.ex:155
-#: lib/graphql/resolvers/participant.ex:336
+#: lib/graphql/resolvers/participant.ex:343
 #, elixir-autogen, elixir-format
 msgid "Event with this ID %{id} doesn't exist"
 msgstr "Wydarzenie o ID %{id} nie istnieje"
@@ -427,7 +422,7 @@ msgstr "Wydarzenie o ID %{id} nie istnieje"
 msgid "Internal Error"
 msgstr "Wewnętrzny błąd"
 
-#: lib/graphql/resolvers/discussion.ex:219
+#: lib/graphql/resolvers/discussion.ex:222
 #, elixir-autogen, elixir-format
 msgid "No discussion with ID %{id}"
 msgstr "Nie znaleziono dyskusji o ID %{id}"
@@ -494,10 +489,10 @@ msgstr "Profil jest już członkiem tej grupy"
 #: lib/graphql/resolvers/post.ex:133
 #: lib/graphql/resolvers/post.ex:175
 #: lib/graphql/resolvers/post.ex:209
-#: lib/graphql/resolvers/resource.ex:90
-#: lib/graphql/resolvers/resource.ex:135
-#: lib/graphql/resolvers/resource.ex:168
-#: lib/graphql/resolvers/resource.ex:202
+#: lib/graphql/resolvers/resource.ex:92
+#: lib/graphql/resolvers/resource.ex:137
+#: lib/graphql/resolvers/resource.ex:170
+#: lib/graphql/resolvers/resource.ex:204
 #: lib/graphql/resolvers/todos.ex:58
 #: lib/graphql/resolvers/todos.ex:83
 #: lib/graphql/resolvers/todos.ex:110
@@ -509,7 +504,7 @@ msgid "Profile is not member of group"
 msgstr "Profil nie jest członkiem grupy"
 
 #: lib/graphql/resolvers/actor.ex:67
-#: lib/graphql/resolvers/person.ex:242
+#: lib/graphql/resolvers/person.ex:244
 #, elixir-autogen, elixir-format
 msgid "Profile not found"
 msgstr "Nie znaleziono profilu"
@@ -519,8 +514,8 @@ msgstr "Nie znaleziono profilu"
 msgid "Report not found"
 msgstr "Nie znaleziono zgłoszenia"
 
-#: lib/graphql/resolvers/resource.ex:172
-#: lib/graphql/resolvers/resource.ex:199
+#: lib/graphql/resolvers/resource.ex:174
+#: lib/graphql/resolvers/resource.ex:201
 #, elixir-autogen, elixir-format
 msgid "Resource doesn't exist"
 msgstr "Zasób nie istnieje"
@@ -530,7 +525,7 @@ msgstr "Zasób nie istnieje"
 msgid "The event has already reached its maximum capacity"
 msgstr "Wydarzenie już przekroczyło maksymalną zasobność"
 
-#: lib/graphql/resolvers/participant.ex:282
+#: lib/graphql/resolvers/participant.ex:289
 #, elixir-autogen, elixir-format
 msgid "This token is invalid"
 msgstr "Ten token jest nieprawidłowy"
@@ -564,7 +559,7 @@ msgstr "Token nie jest prawidłowym UUID"
 msgid "User not found"
 msgstr "Nie znaleziono użytkownika(-czki)"
 
-#: lib/graphql/resolvers/person.ex:333
+#: lib/graphql/resolvers/person.ex:335
 #, elixir-autogen, elixir-format
 msgid "You already have a profile for this user"
 msgstr "Już masz profil dla tego(-j) użytkownika(-czki)"
@@ -586,7 +581,7 @@ msgstr "Nie jesteś członkiem(-nią) tej grupy"
 msgid "You are not a moderator or admin for this group"
 msgstr "Nie jesteÅ› moderatorem(-kÄ…) ani administratorem(-kÄ…) tej grupy"
 
-#: lib/graphql/resolvers/comment.ex:80
+#: lib/graphql/resolvers/comment.ex:74
 #, elixir-autogen, elixir-format
 msgid "You are not allowed to create a comment if not connected"
 msgstr "Nie możesz utworzyć komentarza, jeśli nie jesteś połączony(-a)"
@@ -596,7 +591,7 @@ msgstr "Nie możesz utworzyć komentarza, jeśli nie jesteś połączony(-a)"
 msgid "You are not allowed to create a feed token if not connected"
 msgstr "Nie możesz utworzyć tokena kanału, jeśli nie jesteś połączony(-a)"
 
-#: lib/graphql/resolvers/comment.ex:155
+#: lib/graphql/resolvers/comment.ex:161
 #, elixir-autogen, elixir-format
 msgid "You are not allowed to delete a comment if not connected"
 msgstr "Nie możesz usunąć komentarza, jeśli nie jesteś połączony(-a)"
@@ -606,7 +601,7 @@ msgstr "Nie możesz usunąć komentarza, jeśli nie jesteś połączony(-a)"
 msgid "You are not allowed to delete a feed token if not connected"
 msgstr "Nie możesz usunąć tokena kanału, jeśli nie jesteś połączony(-a)"
 
-#: lib/graphql/resolvers/comment.ex:114
+#: lib/graphql/resolvers/comment.ex:120
 #, elixir-autogen, elixir-format
 msgid "You are not allowed to update a comment if not connected"
 msgstr "Nie możesz zaktualizować komentarza, jeśli nie jesteś połączony(-a)"
@@ -626,12 +621,12 @@ msgstr ""
 "Nie możesz przydzielić sobie niższej roli dla tej grupy, ponieważ jesteś "
 "jedynym(-Ä…) administratorem(-kÄ…)"
 
-#: lib/graphql/resolvers/comment.ex:143
+#: lib/graphql/resolvers/comment.ex:149
 #, elixir-autogen, elixir-format
 msgid "You cannot delete this comment"
 msgstr "Nie możesz usunąć tego komentarza"
 
-#: lib/graphql/resolvers/event.ex:403
+#: lib/graphql/resolvers/event.ex:430
 #, elixir-autogen, elixir-format
 msgid "You cannot delete this event"
 msgstr "Nie możesz usunąć tego wydarzenia"
@@ -671,21 +666,21 @@ msgstr ""
 msgid "You need to be logged-in and a moderator to view a report"
 msgstr "Musisz być zalogowanym(-ą) moderatorem(-ką), aby wyświetlić zgłoszenie"
 
-#: lib/graphql/resolvers/admin.ex:252
+#: lib/graphql/resolvers/admin.ex:258
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in and an administrator to access admin settings"
 msgstr ""
 "Musisz być zalogowanym(-ą) administratorem(-ką), aby uzyskać dostęp do "
 "ustawień administratora(-ki)"
 
-#: lib/graphql/resolvers/admin.ex:236
+#: lib/graphql/resolvers/admin.ex:242
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in and an administrator to access dashboard statistics"
 msgstr ""
 "Musisz być zalogowanym(-ą) administratorem(-ką), aby uzyskać dostęp do "
 "statystyk w panelu"
 
-#: lib/graphql/resolvers/admin.ex:278
+#: lib/graphql/resolvers/admin.ex:283
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in and an administrator to save admin settings"
 msgstr ""
@@ -697,12 +692,12 @@ msgstr ""
 msgid "You need to be logged-in to access discussions"
 msgstr "Musisz być zalogowany(-a), aby uzyskać dostęp do dyskusji"
 
-#: lib/graphql/resolvers/resource.ex:96
+#: lib/graphql/resolvers/resource.ex:98
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to access resources"
 msgstr "Musisz być zalogowany(-a), aby uzyskać dostęp do zasobów"
 
-#: lib/graphql/resolvers/event.ex:313
+#: lib/graphql/resolvers/event.ex:321
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to create events"
 msgstr "Musisz być zalogowany(-a), aby móc utworzyć wydarzenia"
@@ -717,12 +712,12 @@ msgstr "Musisz być zalogowany(-a), aby utworzyć wpis"
 msgid "You need to be logged-in to create reports"
 msgstr "Musisz być zalogowany(-a), aby utworzyć zgłoszenie"
 
-#: lib/graphql/resolvers/resource.ex:140
+#: lib/graphql/resolvers/resource.ex:142
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to create resources"
 msgstr "Musisz być zalogowany(-a), aby utworzyć zasób"
 
-#: lib/graphql/resolvers/event.ex:412
+#: lib/graphql/resolvers/event.ex:439
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to delete an event"
 msgstr "Musisz być zalogowany(-a), aby usunąć wydarzenie"
@@ -732,7 +727,7 @@ msgstr "Musisz być zalogowany(-a), aby usunąć wydarzenie"
 msgid "You need to be logged-in to delete posts"
 msgstr "Musisz być zalogowany(-a), aby usunąć wpis"
 
-#: lib/graphql/resolvers/resource.ex:207
+#: lib/graphql/resolvers/resource.ex:209
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to delete resources"
 msgstr "Musisz być zalogowany(-a), aby usunąć zasób"
@@ -747,7 +742,7 @@ msgstr "Musisz być zalogowany(-a), aby dołączyć do wydarzenia"
 msgid "You need to be logged-in to leave an event"
 msgstr "Musisz być zalogowany(-a), aby opuścić wydarzenie"
 
-#: lib/graphql/resolvers/event.ex:369
+#: lib/graphql/resolvers/event.ex:396
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to update an event"
 msgstr "Musisz być zalogowany(-a), aby zaktualizować wydarzenie"
@@ -757,17 +752,17 @@ msgstr "Musisz być zalogowany(-a), aby zaktualizować wydarzenie"
 msgid "You need to be logged-in to update posts"
 msgstr "Musisz być zalogowany(-a), aby zaktualizować wpis"
 
-#: lib/graphql/resolvers/resource.ex:177
+#: lib/graphql/resolvers/resource.ex:179
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to update resources"
 msgstr "Musisz być zalogowany(-a), aby zaktualizować zasób"
 
-#: lib/graphql/resolvers/resource.ex:236
+#: lib/graphql/resolvers/resource.ex:233
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to view a resource preview"
 msgstr "Musisz być zalogowany(-a), aby zobaczyć podgląd zasobu"
 
-#: lib/graphql/resolvers/resource.ex:132
+#: lib/graphql/resolvers/resource.ex:134
 #, elixir-autogen, elixir-format
 msgid "Parent resource doesn't belong to this group"
 msgstr "Nadrzędny zasób nie należy do tej grupy"
@@ -855,12 +850,12 @@ msgstr "Plik nie ma dozwolonego typu MIME."
 msgid "Profile is not administrator for the group"
 msgstr "Profil nie jest administratorem(-kÄ…) grupy"
 
-#: lib/graphql/resolvers/event.ex:358
+#: lib/graphql/resolvers/event.ex:385
 #, elixir-autogen, elixir-format
 msgid "You can't edit this event."
 msgstr "Nie możesz edytować tego wydarzenia."
 
-#: lib/graphql/resolvers/event.ex:361
+#: lib/graphql/resolvers/event.ex:388
 #, elixir-autogen, elixir-format
 msgid "You can't attribute this event to this profile."
 msgstr "Nie możesz przypisać tego wydarzenia do tego profilu."
@@ -880,7 +875,7 @@ msgstr "Ten członek już został odrzucony."
 msgid "You don't have the right to remove this member."
 msgstr "Nie masz uprawnień do usunięcia tego członka."
 
-#: lib/mobilizon/actors/actor.ex:377
+#: lib/mobilizon/actors/actor.ex:378
 #, elixir-autogen, elixir-format
 msgid "This username is already taken."
 msgstr "Ta nazwa użytkownika(-czki) jest już zajęta."
@@ -890,7 +885,7 @@ msgstr "Ta nazwa użytkownika(-czki) jest już zajęta."
 msgid "You must provide either an ID or a slug to access a discussion"
 msgstr "Aby uzyskać dostęp do dyskusji, należy podać identyfikator lub slug"
 
-#: lib/graphql/resolvers/event.ex:275
+#: lib/graphql/resolvers/event.ex:276
 #, elixir-autogen, elixir-format
 msgid "Organizer profile is not owned by the user"
 msgstr "Profil organizatora(-ki) nie należy do użytkownika(-czki)"
@@ -903,43 +898,43 @@ msgstr ""
 
 #: lib/graphql/resolvers/group.ex:181
 #: lib/graphql/resolvers/group.ex:223
-#: lib/graphql/resolvers/person.ex:157
-#: lib/graphql/resolvers/person.ex:191
-#: lib/graphql/resolvers/person.ex:324
+#: lib/graphql/resolvers/person.ex:159
+#: lib/graphql/resolvers/person.ex:193
+#: lib/graphql/resolvers/person.ex:326
 #, elixir-autogen, elixir-format
 msgid "The provided picture is too heavy"
 msgstr "Dostarczony obraz jest zbyt duży"
 
-#: lib/graphql/resolvers/resource.ex:129
+#: lib/graphql/resolvers/resource.ex:131
 #, elixir-autogen, elixir-format
 msgid "Error while creating resource"
 msgstr "Wystąpił błąd podczas tworzenia zasobu"
 
-#: lib/graphql/resolvers/user.ex:537
+#: lib/graphql/resolvers/user.ex:566
 #, elixir-autogen, elixir-format
 msgid "Invalid activation token"
 msgstr "Nieprawidłowy token aktywacji"
 
-#: lib/graphql/resolvers/resource.ex:226
+#: lib/graphql/resolvers/resource.ex:228
 #, elixir-autogen, elixir-format
 msgid "Unable to fetch resource details from this URL."
 msgstr "Nie można pobrać szczegółów zasobu z tego adresu URL."
 
 #: lib/graphql/resolvers/event.ex:165
 #: lib/graphql/resolvers/participant.ex:253
-#: lib/graphql/resolvers/participant.ex:328
+#: lib/graphql/resolvers/participant.ex:335
 #, elixir-autogen, elixir-format
 msgid "Provided profile doesn't have moderator permissions on this event"
 msgstr "Wskazany profil moderatora(-ki) nie ma uprawnień dla tego wydarzenia"
 
-#: lib/graphql/resolvers/event.ex:286
+#: lib/graphql/resolvers/event.ex:294
 #, elixir-autogen, elixir-format
 msgid "Organizer profile doesn't have permission to create an event on behalf of this group"
 msgstr ""
 "Profil organizatora(-ki) nie ma uprawnień do utworzenia wydarzenia w imieniu "
 "tej grupy"
 
-#: lib/graphql/resolvers/event.ex:349
+#: lib/graphql/resolvers/event.ex:369
 #, elixir-autogen, elixir-format
 msgid "This profile doesn't have permission to update an event on behalf of this group"
 msgstr ""
@@ -952,7 +947,7 @@ msgstr ""
 "Odmówiono rejestracji Twojego adresu e-mail lub korzysta on z niedozwolonego "
 "dostawcy poczty e-mail"
 
-#: lib/graphql/resolvers/comment.ex:150
+#: lib/graphql/resolvers/comment.ex:156
 #, elixir-autogen, elixir-format
 msgid "Comment not found"
 msgstr "Nie znaleziono komentarza"
@@ -962,12 +957,12 @@ msgstr "Nie znaleziono komentarza"
 msgid "Error while creating a discussion"
 msgstr "Wystąpił błąd podczas zapisywania dyskusji"
 
-#: lib/graphql/resolvers/user.ex:658
+#: lib/graphql/resolvers/user.ex:687
 #, elixir-autogen, elixir-format
 msgid "Error while updating locale"
 msgstr "Wystąpił błąd podczas aktualizacji ustawień regionalnych"
 
-#: lib/graphql/resolvers/person.ex:327
+#: lib/graphql/resolvers/person.ex:329
 #, elixir-autogen, elixir-format
 msgid "Error while uploading pictures"
 msgstr "Wystąpił błąd podczas aktualizacji obrazów"
@@ -982,13 +977,13 @@ msgstr "Nie udało się opuścić wydarzenia"
 msgid "Failed to update the group"
 msgstr "Nie udało się zaktualizować grupy"
 
-#: lib/graphql/resolvers/admin.ex:333
-#: lib/graphql/resolvers/user.ex:501
+#: lib/graphql/resolvers/admin.ex:357
+#: lib/graphql/resolvers/user.ex:547
 #, elixir-autogen, elixir-format
 msgid "Failed to update user email"
 msgstr "Nie udało się zaktualizować adresu e-mail użytkownika(-czki)"
 
-#: lib/graphql/resolvers/user.ex:533
+#: lib/graphql/resolvers/user.ex:562
 #, elixir-autogen, elixir-format
 msgid "Failed to validate user email"
 msgstr "Nie udało się zwalidować użytkownika(-czki)"
@@ -998,37 +993,37 @@ msgstr "Nie udało się zwalidować użytkownika(-czki)"
 msgid "The anonymous actor ID is invalid"
 msgstr "Identyfikator anonimowego podmiotu jest nieprawidłowy"
 
-#: lib/graphql/resolvers/resource.ex:165
+#: lib/graphql/resolvers/resource.ex:167
 #, elixir-autogen, elixir-format
 msgid "Unknown error while updating resource"
 msgstr "Nieznany błąd podczas aktualizacji zasobu"
 
-#: lib/graphql/resolvers/comment.ex:105
+#: lib/graphql/resolvers/comment.ex:111
 #, elixir-autogen, elixir-format
 msgid "You are not the comment creator"
 msgstr "Nie jesteÅ› autorem(-kÄ…) komentarza"
 
-#: lib/graphql/resolvers/user.ex:458
+#: lib/graphql/resolvers/user.ex:471
 #, elixir-autogen, elixir-format
 msgid "You cannot change your password."
 msgstr "Nie można zmienić hasła."
 
-#: lib/graphql/resolvers/participant.ex:321
+#: lib/graphql/resolvers/participant.ex:328
 #, elixir-autogen, elixir-format
 msgid "Format not supported"
 msgstr "Format nie jest obsługiwany"
 
-#: lib/graphql/resolvers/participant.ex:305
+#: lib/graphql/resolvers/participant.ex:312
 #, elixir-autogen, elixir-format
 msgid "A dependency needed to export to %{format} is not installed"
 msgstr "Zależność wymagana do eksportu do %{format} nie jest zainstalowana"
 
-#: lib/graphql/resolvers/participant.ex:313
+#: lib/graphql/resolvers/participant.ex:320
 #, elixir-autogen, elixir-format
 msgid "An error occured while saving export"
 msgstr "Wystąpił błąd podczas zapisywania eksportu"
 
-#: lib/web/controllers/export_controller.ex:30
+#: lib/web/controllers/export_controller.ex:32
 #, elixir-autogen, elixir-format
 msgid "Export to format %{format} is not enabled on this instance"
 msgstr "Eksport do formatu %{format} nie jest aktywowany w tej instancji"
@@ -1038,17 +1033,17 @@ msgstr "Eksport do formatu %{format} nie jest aktywowany w tej instancji"
 msgid "Only admins can create groups"
 msgstr "Tylko administratorzy(-ki) mogą tworzyć grupy"
 
-#: lib/graphql/resolvers/event.ex:279
+#: lib/graphql/resolvers/event.ex:280
 #, elixir-autogen, elixir-format
 msgid "Only groups can create events"
 msgstr "Tylko grupy mogą tworzyć wydarzenia"
 
-#: lib/graphql/resolvers/event.ex:305
+#: lib/graphql/resolvers/event.ex:313
 #, elixir-autogen, elixir-format
 msgid "Unknown error while creating event"
 msgstr "Nieznany błąd podczas tworzenia wydarzenia"
 
-#: lib/graphql/resolvers/user.ex:514
+#: lib/graphql/resolvers/user.ex:498
 #, elixir-autogen, elixir-format
 msgid "User cannot change email"
 msgstr "Użytkownik nie może zmienić adresu e-mail"
@@ -1063,12 +1058,12 @@ msgstr "Subskrypcja nie jest powiązana z Twoim kontem"
 msgid "Follow not found"
 msgstr "Nie znaleziono subskrypcji"
 
-#: lib/graphql/resolvers/user.ex:379
+#: lib/graphql/resolvers/user.ex:392
 #, elixir-autogen, elixir-format
 msgid "Profile with username %{username} not found"
 msgstr "Nie znaleziono profilu o nazwie użytkownika %{username}"
 
-#: lib/graphql/resolvers/user.ex:374
+#: lib/graphql/resolvers/user.ex:387
 #, elixir-autogen, elixir-format
 msgid "This profile does not belong to you"
 msgstr "Ten profil nie należy do Ciebie"
@@ -1113,22 +1108,22 @@ msgstr "Musisz być zalogowany(-a), aby usunąć członka"
 msgid "Your email seems to be using an invalid format"
 msgstr "Wiadomość e-mail ma nieprawidłowy format"
 
-#: lib/graphql/resolvers/admin.ex:382
+#: lib/graphql/resolvers/admin.ex:399
 #, elixir-autogen, elixir-format
 msgid "Can't confirm an already confirmed user"
 msgstr "Nie można potwierdzić już potwierdzonego(-ej) użytkownika(-czki)"
 
-#: lib/graphql/resolvers/admin.ex:386
+#: lib/graphql/resolvers/admin.ex:403
 #, elixir-autogen, elixir-format
 msgid "Deconfirming users is not supported"
 msgstr "Cofanie potwierdzenia nie jest obsługiwane"
 
-#: lib/graphql/resolvers/admin.ex:358
+#: lib/graphql/resolvers/admin.ex:375
 #, elixir-autogen, elixir-format
 msgid "The new role must be different"
 msgstr "Nowa rola musi być inna"
 
-#: lib/graphql/resolvers/admin.ex:309
+#: lib/graphql/resolvers/admin.ex:314
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in and an administrator to edit an user's details"
 msgstr ""
@@ -1140,12 +1135,12 @@ msgstr ""
 msgid "A profile or group with that name already exists"
 msgstr "Profil lub grupa o tej nazwie już istnieje"
 
-#: lib/graphql/resolvers/admin.ex:519
+#: lib/graphql/resolvers/admin.ex:542
 #, elixir-autogen, elixir-format
 msgid "Unable to find an instance to follow at this address"
 msgstr "Nie można znaleźć instancji do obserwacji pod tym adresem"
 
-#: lib/mobilizon/actors/actor.ex:396
+#: lib/mobilizon/actors/actor.ex:397
 #, elixir-autogen, elixir-format
 msgid "Username must only contain alphanumeric lowercased characters and underscores."
 msgstr ""
@@ -1153,17 +1148,17 @@ msgstr ""
 "podkreślenia."
 
 #: lib/graphql/resolvers/user.ex:303
-#: lib/graphql/resolvers/user.ex:326
+#: lib/graphql/resolvers/user.ex:333
 #, elixir-autogen, elixir-format
 msgid "This email doesn't seem to be valid"
 msgstr "Ten adres e-mail nie wydaje się być prawidłowy"
 
-#: lib/graphql/resolvers/comment.ex:65
+#: lib/graphql/resolvers/comment.ex:59
 #, elixir-autogen, elixir-format
 msgid "This comment was detected as spam."
 msgstr "Ten komentarz został rozpoznany jako spam."
 
-#: lib/graphql/resolvers/event.ex:293
+#: lib/graphql/resolvers/event.ex:301
 #, elixir-autogen, elixir-format
 msgid "This event was detected as spam."
 msgstr "To zdarzenie zostało rozpoznane jako spam."
@@ -1186,7 +1181,7 @@ msgstr ""
 "Aby utworzyć notatkę w raporcie, musisz być moderatorem(-ką) lub "
 "administratorem(-kÄ…("
 
-#: lib/graphql/resolvers/person.ex:330
+#: lib/graphql/resolvers/person.ex:332
 #, elixir-autogen, elixir-format
 msgid "Your profile was detected as spam."
 msgstr "Twój profil został rozpoznany jako spam."
@@ -1198,7 +1193,7 @@ msgstr ""
 "Twoja rejestracja została rozpoznana jako spam i nie może zostać "
 "przetworzona."
 
-#: lib/web/controllers/application_controller.ex:86
+#: lib/web/controllers/application_controller.ex:88
 #, elixir-autogen, elixir-format
 msgid "All of name, scope and redirect_uri parameters are required to create an application"
 msgstr ""
@@ -1215,182 +1210,238 @@ msgstr "Nie znaleziono aplikacji"
 msgid "Application token not found"
 msgstr "Nie znaleziono tokenu aplikacji"
 
-#: lib/graphql/resolvers/application.ex:89
+#: lib/graphql/resolvers/application.ex:90
 #, elixir-autogen, elixir-format
 msgid "Error while revoking token"
 msgstr "Błąd podczas unieważniania tokena"
 
-#: lib/web/controllers/application_controller.ex:59
+#: lib/web/controllers/application_controller.ex:61
 #, elixir-autogen, elixir-format
 msgid "Impossible to create application."
 msgstr "Nie da się utworzyć aplikacji."
 
-#: lib/web/controllers/application_controller.ex:356
+#: lib/web/controllers/application_controller.ex:358
 #, elixir-autogen, elixir-format
 msgid "Incorrect parameters sent. You need to provide at least the grant_type and client_id parameters, depending on the grant type being used."
 msgstr ""
 "Wysłano nieprawidłowe parametry. Należy podać co najmniej parametry "
 "grant_type i client_id, w zależności od używanego typu grantu."
 
-#: lib/web/controllers/application_controller.ex:329
+#: lib/web/controllers/application_controller.ex:331
 #, elixir-autogen, elixir-format
 msgid "Invalid client credentials provided"
 msgstr "Podano nieprawidłowe informacje uwierzytelniające klienta"
 
-#: lib/web/controllers/application_controller.ex:337
+#: lib/web/controllers/application_controller.ex:339
 #, elixir-autogen, elixir-format
 msgid "Invalid refresh token provided"
 msgstr "Podano nieprawidłowy token odświeżania"
 
-#: lib/web/controllers/application_controller.ex:170
-#: lib/web/controllers/application_controller.ex:401
+#: lib/web/controllers/application_controller.ex:172
+#: lib/web/controllers/application_controller.ex:403
 #, elixir-autogen, elixir-format
 msgid "No application was found with this client_id"
 msgstr "Nie znaleziono aplikacji o tym identyfikatorze client_id"
 
-#: lib/graphql/resolvers/application.ex:37
+#: lib/graphql/resolvers/application.ex:38
 #, elixir-autogen, elixir-format
 msgid "No application with this client_id was found"
 msgstr "Nie znaleziono aplikacji z tym identyfikatorem client_id"
 
-#: lib/graphql/authorization.ex:80
+#: lib/graphql/authorization.ex:81
 #, elixir-autogen, elixir-format
 msgid "Not authorized to access field %{field}"
 msgstr "Brak uprawnień dostępu do pola %{field}"
 
-#: lib/graphql/authorization.ex:70
-#: lib/graphql/authorization.ex:75
+#: lib/graphql/authorization.ex:71
+#: lib/graphql/authorization.ex:76
 #, elixir-autogen, elixir-format
 msgid "Not authorized to access object %{object}"
 msgstr "Brak uprawnień dostępu do obiektu %{object}"
 
-#: lib/graphql/authorization.ex:63
+#: lib/graphql/authorization.ex:64
 #, elixir-autogen, elixir-format
 msgid "Not authorized to access this %{object_type}"
 msgstr "Brak uprawnień dostępu do tego %{object_type}"
 
-#: lib/web/controllers/application_controller.ex:279
+#: lib/web/controllers/application_controller.ex:281
 #, elixir-autogen, elixir-format
 msgid "Please slow down the rate of your requests"
 msgstr "Prosimy o zwolnienie tempa wysyłania żądań"
 
-#: lib/web/controllers/application_controller.ex:267
+#: lib/web/controllers/application_controller.ex:269
 #, elixir-autogen, elixir-format
 msgid "The authorization request is still pending"
 msgstr "Żądanie autoryzacji jest nadal w toku"
 
-#: lib/web/controllers/application_controller.ex:249
+#: lib/web/controllers/application_controller.ex:251
 #, elixir-autogen, elixir-format
 msgid "The client_id provided or the device_code associated is invalid"
 msgstr "Nieprawidłowy identyfikator client_id lub powiązany kod device_code"
 
-#: lib/graphql/resolvers/application.ex:133
+#: lib/graphql/resolvers/application.ex:139
 #, elixir-autogen, elixir-format
 msgid "The device user code was not provided before approving the application"
 msgstr "Przed zatwierdzeniem aplikacji nie podano kodu użytkownika urządzenia"
 
-#: lib/web/controllers/application_controller.ex:304
+#: lib/web/controllers/application_controller.ex:306
 #, elixir-autogen, elixir-format
 msgid "The given device_code has expired"
 msgstr "Podany kod device_code wygasł"
 
-#: lib/graphql/resolvers/application.ex:44
+#: lib/graphql/resolvers/application.ex:45
 #, elixir-autogen, elixir-format
 msgid "The given redirect_uri is not in the list of allowed redirect URIs"
 msgstr ""
 "Podany redirect_uri nie znajduje się na liście dozwolonych URI przekierowania"
 
-#: lib/web/controllers/application_controller.ex:158
+#: lib/web/controllers/application_controller.ex:160
 #, elixir-autogen, elixir-format
 msgid "The given scope is not in the list of the app declared scopes"
 msgstr ""
 "Podany zakres nie znajduje się na liście zadeklarowanych zakresów aplikacji"
 
-#: lib/graphql/resolvers/application.ex:109
-#: lib/graphql/resolvers/application.ex:146
+#: lib/graphql/resolvers/application.ex:112
+#: lib/graphql/resolvers/application.ex:154
 #, elixir-autogen, elixir-format
 msgid "The given user code has expired"
 msgstr "Podany kod użytkownika wygasł"
 
-#: lib/graphql/resolvers/application.ex:112
-#: lib/graphql/resolvers/application.ex:140
+#: lib/graphql/resolvers/application.ex:118
+#: lib/graphql/resolvers/application.ex:146
 #, elixir-autogen, elixir-format
 msgid "The given user code is invalid"
 msgstr "Podany kod użytkownika jest nieprawidłowy"
 
-#: lib/web/controllers/application_controller.ex:411
+#: lib/web/controllers/application_controller.ex:413
 #, elixir-autogen, elixir-format
 msgid "The provided client_id does not match the provided code"
 msgstr "Identyfikator client_id nie pasuje do podanego kodu"
 
-#: lib/web/controllers/application_controller.ex:414
+#: lib/web/controllers/application_controller.ex:416
 #, elixir-autogen, elixir-format
 msgid "The provided client_secret is invalid"
 msgstr "Podany client_secret jest nieprawidłowy"
 
-#: lib/web/controllers/application_controller.ex:407
+#: lib/web/controllers/application_controller.ex:409
 #, elixir-autogen, elixir-format
 msgid "The provided code is invalid or expired"
 msgstr "Podany kod jest nieprawidłowy lub wygasł"
 
-#: lib/web/controllers/application_controller.ex:418
+#: lib/web/controllers/application_controller.ex:420
 #, elixir-autogen, elixir-format
 msgid "The provided scope is invalid or not included in the app declared scopes"
 msgstr ""
 "Podany zakres jest nieprawidłowy lub nie znajduje się w zadeklarowanych "
 "zakresach aplikacji"
 
-#: lib/web/controllers/application_controller.ex:45
+#: lib/web/controllers/application_controller.ex:47
 #, elixir-autogen, elixir-format
 msgid "The scope parameter is not a space separated list of valid scopes"
 msgstr ""
 "Parametr scope nie jest rozdzieloną spacjami listą prawidłowych zakresów"
 
-#: lib/web/controllers/application_controller.ex:292
+#: lib/web/controllers/application_controller.ex:294
 #, elixir-autogen, elixir-format
 msgid "The user rejected the requested authorization"
 msgstr "Użytkownik odrzucił żądaną autoryzację"
 
-#: lib/web/controllers/application_controller.ex:404
+#: lib/web/controllers/application_controller.ex:406
 #, elixir-autogen, elixir-format
 msgid "This redirect URI is not allowed"
 msgstr "Ten URI przekierowania jest niedozwolony"
 
-#: lib/web/controllers/application_controller.ex:381
+#: lib/web/controllers/application_controller.ex:383
 #, elixir-autogen, elixir-format
 msgid "Token not found"
 msgstr "Nie znaleziono tokena"
 
-#: lib/web/controllers/application_controller.ex:72
+#: lib/web/controllers/application_controller.ex:74
 #, elixir-autogen, elixir-format
 msgid "Too many requests"
 msgstr "Zbyt wiele żądań"
 
-#: lib/web/controllers/application_controller.ex:184
+#: lib/web/controllers/application_controller.ex:186
 #, elixir-autogen, elixir-format
 msgid "Unable to produce device code"
 msgstr "Nie można wygenerować kodu urządzenia"
 
-#: lib/web/controllers/application_controller.ex:373
+#: lib/web/controllers/application_controller.ex:375
 #, elixir-autogen, elixir-format
 msgid "Unable to revoke token"
 msgstr "Nie można unieważnić tokena"
 
-#: lib/web/controllers/application_controller.ex:198
+#: lib/web/controllers/application_controller.ex:200
 #, elixir-autogen, elixir-format
 msgid "You need to pass both client_id and scope as parameters to obtain a device code"
 msgstr ""
 "Aby uzyskać kod urządzenia, należy określić zarówno client_id, jak i scope "
 "jako parametry"
 
-#: lib/web/controllers/application_controller.ex:136
+#: lib/web/controllers/application_controller.ex:138
 #, elixir-autogen, elixir-format
 msgid "You need to provide a valid redirect_uri to autorize an application"
 msgstr "Aby autoryzować aplikację, należy podać prawidłowe redirect_uri"
 
-#: lib/web/controllers/application_controller.ex:126
+#: lib/web/controllers/application_controller.ex:128
 #, elixir-autogen, elixir-format
 msgid "You need to specify client_id, redirect_uri, scope and state to autorize an application"
 msgstr ""
 "Aby autoryzować aplikację, należy określić client_id, redirect_uri, scope i "
 "state"
+
+#: lib/graphql/resolvers/user.ex:306
+#, elixir-autogen, elixir-format
+msgid "Couldn't send an email. Internal error."
+msgstr ""
+
+#: lib/graphql/resolvers/participant.ex:286
+#, elixir-autogen, elixir-format
+msgid "Participation is already confirmed"
+msgstr ""
+
+#: lib/graphql/resolvers/participant.ex:283
+#, elixir-autogen, elixir-format
+msgid "Participation is confirmed but not approved yet by an organizer"
+msgstr ""
+
+#: lib/graphql/resolvers/event.ex:287
+#: lib/graphql/resolvers/event.ex:376
+#, elixir-autogen, elixir-format
+msgid "Providing external registration is not allowed"
+msgstr ""
+
+#: lib/graphql/resolvers/push_subscription.ex:48
+#, elixir-autogen, elixir-format
+msgid "The same push subscription has already been registered"
+msgstr ""
+
+#: lib/graphql/resolvers/admin.ex:536
+#, elixir-autogen, elixir-format
+msgid "This instance is pending follow approval"
+msgstr ""
+
+#: lib/graphql/schema/custom/timezone.ex:23
+#, elixir-autogen, elixir-format
+msgid "Timezone ID %{timezone} is invalid"
+msgstr ""
+
+#: lib/graphql/resolvers/admin.ex:539
+#, elixir-autogen, elixir-format, fuzzy
+msgid "You are already following this instance"
+msgstr "Obserwujesz już tę grupę"
+
+#: lib/graphql/resolvers/user.ex:310
+#, elixir-autogen, elixir-format, fuzzy
+msgid "You requested again a confirmation email too soon. Please try again in a few minutes"
+msgstr "Zbyt wcześnie poprosiłeś(-aś) o nową wiadomość potwierdzającą"
+
+#: lib/graphql/resolvers/user.ex:341
+#, elixir-autogen, elixir-format
+msgid "You requested again a password reset email too soon. Please try again in a few minutes"
+msgstr ""
+
+#: lib/graphql/resolvers/user.ex:368
+#, elixir-autogen, elixir-format
+msgid "The token you provided is invalid. Make sure that the URL is exactly the one provided inside the email you got."
+msgstr ""
diff --git a/priv/gettext/pt/LC_MESSAGES/activity.po b/priv/gettext/pt/LC_MESSAGES/activity.po
index d0dc9f9e4b765e5893880360682aaa46a6c2f692..0a51235998be3a59d0f2d2a78343749138bc2dd8 100644
--- a/priv/gettext/pt/LC_MESSAGES/activity.po
+++ b/priv/gettext/pt/LC_MESSAGES/activity.po
@@ -9,7 +9,7 @@
 msgid ""
 msgstr ""
 "Language: pt\n"
-"Plural-Forms: nplurals=2\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
 #: lib/web/templates/email/activity/_member_activity_item.html.heex:14
 #: lib/web/templates/email/activity/_member_activity_item.text.eex:12
@@ -454,3 +454,15 @@ msgstr ""
 #, elixir-autogen, elixir-format, fuzzy
 msgid "%{profile} approved the member %{member}."
 msgstr ""
+
+#: lib/service/activity/renderer/event.ex:74
+#: lib/web/templates/email/activity/_event_activity_item.html.heex:55
+#: lib/web/templates/email/activity/_event_activity_item.text.eex:31
+#, elixir-autogen, elixir-format
+msgid "%{profile} joined your event %{event}."
+msgstr ""
+
+#: lib/web/views/email_view.ex:45
+#, elixir-autogen, elixir-format
+msgid "An anonymous profile"
+msgstr ""
diff --git a/priv/gettext/pt/LC_MESSAGES/default.po b/priv/gettext/pt/LC_MESSAGES/default.po
index b5032c328a852d42c69141f54c9df52b7f800d65..d1682765870eaf75e9a2038e64d97618019d268c 100644
--- a/priv/gettext/pt/LC_MESSAGES/default.po
+++ b/priv/gettext/pt/LC_MESSAGES/default.po
@@ -7,6 +7,7 @@ msgstr ""
 "Last-Translator: Automatically generated\n"
 "Language-Team: none\n"
 "Language: pt\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -17,7 +18,7 @@ msgstr ""
 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 ""
 
-#: lib/web/templates/email/report.html.heex:120
+#: lib/web/templates/email/report.html.heex:121
 #, elixir-autogen, elixir-format
 msgid "%{title} by %{creator}"
 msgstr ""
@@ -33,23 +34,17 @@ msgstr ""
 msgid "Ask the community on Framacolibri"
 msgstr ""
 
-#: lib/web/templates/email/report.text.eex:15
+#: lib/web/templates/email/report.text.eex:17
 #, elixir-autogen, elixir-format
 msgid "Comments"
 msgstr ""
 
-#: lib/web/templates/email/report.html.heex:115
-#: lib/web/templates/email/report.text.eex:11
-#, elixir-autogen, elixir-format
-msgid "Event"
-msgstr ""
-
 #: lib/web/email/user.ex:49
 #, elixir-autogen, elixir-format
 msgid "Instructions to reset your password on %{instance}"
 msgstr ""
 
-#: lib/web/templates/email/report.text.eex:21
+#: lib/web/templates/email/report.text.eex:23
 #, elixir-autogen, elixir-format
 msgid "Reason"
 msgstr ""
@@ -309,12 +304,12 @@ msgctxt "terms"
 msgid "What information do we collect?"
 msgstr ""
 
-#: lib/web/email/user.ex:182
+#: lib/web/email/user.ex:188
 #, elixir-autogen, elixir-format
 msgid "Mobilizon on %{instance}: confirm your email address"
 msgstr ""
 
-#: lib/web/email/user.ex:159
+#: lib/web/email/user.ex:165
 #, elixir-autogen, elixir-format
 msgid "Mobilizon on %{instance}: email changed"
 msgstr ""
@@ -805,7 +800,7 @@ msgstr ""
 msgid "Event update!"
 msgstr ""
 
-#: lib/web/templates/email/report.html.heex:155
+#: lib/web/templates/email/report.html.heex:158
 #, elixir-autogen, elixir-format
 msgid "Flagged comments"
 msgstr ""
@@ -886,7 +881,7 @@ msgstr ""
 msgid "New email confirmation"
 msgstr ""
 
-#: lib/web/templates/email/report.html.heex:191
+#: lib/web/templates/email/report.html.heex:194
 #, elixir-autogen, elixir-format
 msgid "Reasons for report"
 msgstr ""
@@ -941,12 +936,12 @@ msgstr ""
 msgid "Verify your email address"
 msgstr ""
 
-#: lib/web/templates/email/report.html.heex:232
+#: lib/web/templates/email/report.html.heex:235
 #, elixir-autogen, elixir-format
 msgid "View report"
 msgstr ""
 
-#: lib/web/templates/email/report.text.eex:24
+#: lib/web/templates/email/report.text.eex:26
 #, elixir-autogen, elixir-format
 msgid "View report:"
 msgstr ""
@@ -1044,12 +1039,6 @@ msgstr ""
 msgid "As this group was located on another instance, it will continue to work for other instances than this one."
 msgstr ""
 
-#: lib/web/templates/email/group_suspension.html.heex:67
-#: lib/web/templates/email/group_suspension.text.eex:5
-#, elixir-autogen, elixir-format
-msgid "As this group was located on this instance, all of it's data has been irretrievably deleted."
-msgstr ""
-
 #: lib/web/templates/email/group_suspension.html.heex:18
 #: lib/web/templates/email/group_suspension.text.eex:1
 #, elixir-autogen, elixir-format
@@ -1061,7 +1050,7 @@ msgstr ""
 msgid "Your instance's moderation team has decided to suspend %{group_name} (%{group_address}). You are no longer a member of this group."
 msgstr ""
 
-#: lib/web/email/group.ex:107
+#: lib/web/email/group.ex:108
 #, elixir-autogen, elixir-format
 msgid "The group %{group} has been suspended on %{instance}"
 msgstr ""
@@ -1343,16 +1332,6 @@ msgstr ""
 msgid "Public feed for %{instance}"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:350
-#, elixir-autogen, elixir-format
-msgid "The password you have choosen is too short. Please make sure your password contains at least 6 charaters."
-msgstr ""
-
-#: lib/graphql/resolvers/user.ex:356
-#, elixir-autogen, elixir-format
-msgid "The token you provided is invalid. Make sure that the URL is exactly the one provided inside the email you got."
-msgstr ""
-
 #: lib/web/email/actor.ex:43
 #, elixir-autogen, elixir-format
 msgid "Your participation to %{event} has been cancelled!"
@@ -1376,63 +1355,63 @@ msgid "Your participation to %{event} on %{instance} has been cancelled!"
 msgstr ""
 
 #. File name template for exported list of participants. Should NOT contain spaces. Make sure the output is going to be something standardized that is acceptable as a file name on most systems.
-#: lib/service/export/participants/csv.ex:81
+#: lib/service/export/participants/csv.ex:97
 #: lib/service/export/participants/ods.ex:86
 #: lib/service/export/participants/pdf.ex:96
 #, elixir-autogen, elixir-format
 msgid "%{event}_participants"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:61
+#: lib/service/export/participants/common.ex:66
 #, elixir-autogen, elixir-format
 msgid "Participant message"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:61
+#: lib/service/export/participants/common.ex:63
 #, elixir-autogen, elixir-format
 msgid "Participant name"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:61
+#: lib/service/export/participants/common.ex:64
 #, elixir-autogen, elixir-format
 msgid "Participant status"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:52
+#: lib/service/export/participants/common.ex:53
 #: lib/web/templates/email/admin/_role.html.heex:3
 #: lib/web/templates/email/admin/_role.text.eex:1
 #, elixir-autogen, elixir-format
 msgid "Administrator"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:55
+#: lib/service/export/participants/common.ex:56
 #, elixir-autogen, elixir-format
 msgid "Creator"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:49
+#: lib/service/export/participants/common.ex:50
 #: lib/web/templates/email/admin/_role.html.heex:5
 #: lib/web/templates/email/admin/_role.text.eex:1
 #, elixir-autogen, elixir-format
 msgid "Moderator"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:37
+#: lib/service/export/participants/common.ex:38
 #, elixir-autogen, elixir-format
 msgid "Not approved"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:40
+#: lib/service/export/participants/common.ex:41
 #, elixir-autogen, elixir-format
 msgid "Not confirmed"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:46
+#: lib/service/export/participants/common.ex:47
 #, elixir-autogen, elixir-format
 msgid "Participant"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:43
+#: lib/service/export/participants/common.ex:44
 #, elixir-autogen, elixir-format
 msgid "Rejected"
 msgstr ""
@@ -1457,7 +1436,7 @@ msgstr ""
 msgid "Participants for %{event}"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:88
+#: lib/service/export/participants/common.ex:95
 #, elixir-autogen, elixir-format
 msgid "Anonymous participant"
 msgstr ""
@@ -1576,7 +1555,7 @@ msgstr ""
 msgid "Title: %{title}"
 msgstr ""
 
-#: lib/web/email/group.ex:46
+#: lib/web/email/group.ex:47
 #, elixir-autogen, elixir-format
 msgid "📅 Just scheduled by %{group}: %{event}"
 msgstr ""
@@ -1989,3 +1968,24 @@ msgstr ""
 #, elixir-autogen, elixir-format
 msgid "Until next time!"
 msgstr ""
+
+#: lib/web/templates/email/group_suspension.html.heex:67
+#: lib/web/templates/email/group_suspension.text.eex:5
+#, elixir-autogen, elixir-format, fuzzy
+msgid "As this group was located on this instance, all of its data has been irretrievably deleted."
+msgstr ""
+
+#: lib/web/templates/email/report.text.eex:11
+#, elixir-autogen, elixir-format, fuzzy
+msgid "Events"
+msgstr ""
+
+#: lib/web/templates/email/report.html.heex:115
+#, elixir-autogen, elixir-format, fuzzy
+msgid "Flagged events"
+msgstr ""
+
+#: lib/service/export/participants/common.ex:65
+#, elixir-autogen, elixir-format, fuzzy
+msgid "Participant registration date"
+msgstr ""
diff --git a/priv/gettext/pt/LC_MESSAGES/errors.po b/priv/gettext/pt/LC_MESSAGES/errors.po
index 091d22b08e231e883284cc8fd59d34060ae0327e..03ca2976b13792761e49b71c8e87c9a014a88149 100644
--- a/priv/gettext/pt/LC_MESSAGES/errors.po
+++ b/priv/gettext/pt/LC_MESSAGES/errors.po
@@ -9,7 +9,7 @@
 msgid ""
 msgstr ""
 "Language: pt\n"
-"Plural-Forms: nplurals=2\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
 #: lib/mobilizon/discussions/discussion.ex:69
 #, elixir-autogen
@@ -103,7 +103,7 @@ msgstr ""
 msgid "Current profile is not an administrator of the selected group"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:644
+#: lib/graphql/resolvers/user.ex:673
 #, elixir-autogen, elixir-format
 msgid "Error while saving user settings"
 msgstr ""
@@ -146,8 +146,8 @@ msgstr ""
 msgid "No user to validate with this email was found"
 msgstr ""
 
-#: lib/graphql/resolvers/person.ex:337
-#: lib/graphql/resolvers/user.ex:330
+#: lib/graphql/resolvers/person.ex:339
+#: lib/graphql/resolvers/user.ex:337
 #, elixir-autogen, elixir-format
 msgid "No user with this email was found"
 msgstr ""
@@ -155,12 +155,12 @@ msgstr ""
 #: lib/graphql/resolvers/feed_token.ex:28
 #: lib/graphql/resolvers/participant.ex:32
 #: lib/graphql/resolvers/participant.ex:210
-#: lib/graphql/resolvers/person.ex:245
-#: lib/graphql/resolvers/person.ex:376
-#: lib/graphql/resolvers/person.ex:412
-#: lib/graphql/resolvers/person.ex:419
-#: lib/graphql/resolvers/person.ex:448
-#: lib/graphql/resolvers/person.ex:463
+#: lib/graphql/resolvers/person.ex:247
+#: lib/graphql/resolvers/person.ex:378
+#: lib/graphql/resolvers/person.ex:414
+#: lib/graphql/resolvers/person.ex:421
+#: lib/graphql/resolvers/person.ex:450
+#: lib/graphql/resolvers/person.ex:465
 #, elixir-autogen, elixir-format
 msgid "Profile is not owned by authenticated user"
 msgstr ""
@@ -170,41 +170,42 @@ msgstr ""
 msgid "Registrations are not open"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:461
+#: lib/graphql/resolvers/user.ex:474
 #, elixir-autogen, elixir-format
 msgid "The current password is invalid"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:336
-#: lib/graphql/resolvers/user.ex:504
+#: lib/graphql/resolvers/admin.ex:334
+#: lib/graphql/resolvers/user.ex:527
 #, elixir-autogen, elixir-format
 msgid "The new email doesn't seem to be valid"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:339
-#: lib/graphql/resolvers/user.ex:507
+#: lib/graphql/resolvers/admin.ex:323
+#: lib/graphql/resolvers/user.ex:514
 #, elixir-autogen, elixir-format
 msgid "The new email must be different"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:464
+#: lib/graphql/resolvers/user.ex:477
 #, elixir-autogen, elixir-format
 msgid "The new password must be different"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:511
-#: lib/graphql/resolvers/user.ex:573
-#: lib/graphql/resolvers/user.ex:576
+#: lib/graphql/resolvers/user.ex:518
+#: lib/graphql/resolvers/user.ex:602
+#: lib/graphql/resolvers/user.ex:605
 #, elixir-autogen, elixir-format
 msgid "The password provided is invalid"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:468
+#: lib/graphql/resolvers/user.ex:361
+#: lib/graphql/resolvers/user.ex:481
 #, elixir-autogen, elixir-format
 msgid "The password you have chosen is too short. Please make sure your password contains at least 6 characters."
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:323
+#: lib/graphql/resolvers/user.ex:330
 #, elixir-autogen, elixir-format
 msgid "This user can't reset their password"
 msgstr ""
@@ -220,12 +221,12 @@ msgstr ""
 msgid "Unable to validate user"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:554
+#: lib/graphql/resolvers/user.ex:583
 #, elixir-autogen, elixir-format
 msgid "User already disabled"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:619
+#: lib/graphql/resolvers/user.ex:648
 #, elixir-autogen, elixir-format
 msgid "User requested is not logged-in"
 msgstr ""
@@ -250,12 +251,12 @@ msgstr ""
 msgid "You may not list groups unless moderator."
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:519
+#: lib/graphql/resolvers/user.ex:503
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to change your email"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:476
+#: lib/graphql/resolvers/user.ex:489
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to change your password"
 msgstr ""
@@ -265,7 +266,7 @@ msgstr ""
 msgid "You need to be logged-in to delete a group"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:581
+#: lib/graphql/resolvers/user.ex:610
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to delete your account"
 msgstr ""
@@ -290,12 +291,6 @@ msgstr ""
 msgid "You need to have an existing token to get a refresh token"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:306
-#: lib/graphql/resolvers/user.ex:333
-#, elixir-autogen, elixir-format
-msgid "You requested again a confirmation email too soon"
-msgstr ""
-
 #: lib/graphql/resolvers/user.ex:180
 #, elixir-autogen, elixir-format
 msgid "Your email is not on the allowlist"
@@ -348,17 +343,17 @@ msgstr ""
 msgid "Anonymous participation is not enabled"
 msgstr ""
 
-#: lib/graphql/resolvers/person.ex:219
+#: lib/graphql/resolvers/person.ex:221
 #, elixir-autogen, elixir-format
 msgid "Cannot remove the last administrator of a group"
 msgstr ""
 
-#: lib/graphql/resolvers/person.ex:216
+#: lib/graphql/resolvers/person.ex:218
 #, elixir-autogen, elixir-format
 msgid "Cannot remove the last identity of a user"
 msgstr ""
 
-#: lib/graphql/resolvers/comment.ex:147
+#: lib/graphql/resolvers/comment.ex:153
 #, elixir-autogen, elixir-format
 msgid "Comment is already deleted"
 msgstr ""
@@ -386,8 +381,8 @@ msgid "Event id not found"
 msgstr ""
 
 #: lib/graphql/error.ex:114
-#: lib/graphql/resolvers/event.ex:355
-#: lib/graphql/resolvers/event.ex:407
+#: lib/graphql/resolvers/event.ex:382
+#: lib/graphql/resolvers/event.ex:434
 #, elixir-autogen, elixir-format
 msgid "Event not found"
 msgstr ""
@@ -395,7 +390,7 @@ msgstr ""
 #: lib/graphql/resolvers/participant.ex:87
 #: lib/graphql/resolvers/participant.ex:128
 #: lib/graphql/resolvers/participant.ex:155
-#: lib/graphql/resolvers/participant.ex:336
+#: lib/graphql/resolvers/participant.ex:343
 #, elixir-autogen, elixir-format
 msgid "Event with this ID %{id} doesn't exist"
 msgstr ""
@@ -405,7 +400,7 @@ msgstr ""
 msgid "Internal Error"
 msgstr ""
 
-#: lib/graphql/resolvers/discussion.ex:219
+#: lib/graphql/resolvers/discussion.ex:222
 #, elixir-autogen, elixir-format
 msgid "No discussion with ID %{id}"
 msgstr ""
@@ -472,10 +467,10 @@ msgstr ""
 #: lib/graphql/resolvers/post.ex:133
 #: lib/graphql/resolvers/post.ex:175
 #: lib/graphql/resolvers/post.ex:209
-#: lib/graphql/resolvers/resource.ex:90
-#: lib/graphql/resolvers/resource.ex:135
-#: lib/graphql/resolvers/resource.ex:168
-#: lib/graphql/resolvers/resource.ex:202
+#: lib/graphql/resolvers/resource.ex:92
+#: lib/graphql/resolvers/resource.ex:137
+#: lib/graphql/resolvers/resource.ex:170
+#: lib/graphql/resolvers/resource.ex:204
 #: lib/graphql/resolvers/todos.ex:58
 #: lib/graphql/resolvers/todos.ex:83
 #: lib/graphql/resolvers/todos.ex:110
@@ -487,7 +482,7 @@ msgid "Profile is not member of group"
 msgstr ""
 
 #: lib/graphql/resolvers/actor.ex:67
-#: lib/graphql/resolvers/person.ex:242
+#: lib/graphql/resolvers/person.ex:244
 #, elixir-autogen, elixir-format
 msgid "Profile not found"
 msgstr ""
@@ -497,8 +492,8 @@ msgstr ""
 msgid "Report not found"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:172
-#: lib/graphql/resolvers/resource.ex:199
+#: lib/graphql/resolvers/resource.ex:174
+#: lib/graphql/resolvers/resource.ex:201
 #, elixir-autogen, elixir-format
 msgid "Resource doesn't exist"
 msgstr ""
@@ -508,7 +503,7 @@ msgstr ""
 msgid "The event has already reached its maximum capacity"
 msgstr ""
 
-#: lib/graphql/resolvers/participant.ex:282
+#: lib/graphql/resolvers/participant.ex:289
 #, elixir-autogen, elixir-format
 msgid "This token is invalid"
 msgstr ""
@@ -542,7 +537,7 @@ msgstr ""
 msgid "User not found"
 msgstr ""
 
-#: lib/graphql/resolvers/person.ex:333
+#: lib/graphql/resolvers/person.ex:335
 #, elixir-autogen, elixir-format
 msgid "You already have a profile for this user"
 msgstr ""
@@ -564,7 +559,7 @@ msgstr ""
 msgid "You are not a moderator or admin for this group"
 msgstr ""
 
-#: lib/graphql/resolvers/comment.ex:80
+#: lib/graphql/resolvers/comment.ex:74
 #, elixir-autogen, elixir-format
 msgid "You are not allowed to create a comment if not connected"
 msgstr ""
@@ -574,7 +569,7 @@ msgstr ""
 msgid "You are not allowed to create a feed token if not connected"
 msgstr ""
 
-#: lib/graphql/resolvers/comment.ex:155
+#: lib/graphql/resolvers/comment.ex:161
 #, elixir-autogen, elixir-format
 msgid "You are not allowed to delete a comment if not connected"
 msgstr ""
@@ -584,7 +579,7 @@ msgstr ""
 msgid "You are not allowed to delete a feed token if not connected"
 msgstr ""
 
-#: lib/graphql/resolvers/comment.ex:114
+#: lib/graphql/resolvers/comment.ex:120
 #, elixir-autogen, elixir-format
 msgid "You are not allowed to update a comment if not connected"
 msgstr ""
@@ -600,12 +595,12 @@ msgstr ""
 msgid "You can't set yourself to a lower member role for this group because you are the only administrator"
 msgstr ""
 
-#: lib/graphql/resolvers/comment.ex:143
+#: lib/graphql/resolvers/comment.ex:149
 #, elixir-autogen, elixir-format
 msgid "You cannot delete this comment"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:403
+#: lib/graphql/resolvers/event.ex:430
 #, elixir-autogen, elixir-format
 msgid "You cannot delete this event"
 msgstr ""
@@ -640,17 +635,17 @@ msgstr ""
 msgid "You need to be logged-in and a moderator to view a report"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:252
+#: lib/graphql/resolvers/admin.ex:258
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in and an administrator to access admin settings"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:236
+#: lib/graphql/resolvers/admin.ex:242
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in and an administrator to access dashboard statistics"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:278
+#: lib/graphql/resolvers/admin.ex:283
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in and an administrator to save admin settings"
 msgstr ""
@@ -660,12 +655,12 @@ msgstr ""
 msgid "You need to be logged-in to access discussions"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:96
+#: lib/graphql/resolvers/resource.ex:98
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to access resources"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:313
+#: lib/graphql/resolvers/event.ex:321
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to create events"
 msgstr ""
@@ -680,12 +675,12 @@ msgstr ""
 msgid "You need to be logged-in to create reports"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:140
+#: lib/graphql/resolvers/resource.ex:142
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to create resources"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:412
+#: lib/graphql/resolvers/event.ex:439
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to delete an event"
 msgstr ""
@@ -695,7 +690,7 @@ msgstr ""
 msgid "You need to be logged-in to delete posts"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:207
+#: lib/graphql/resolvers/resource.ex:209
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to delete resources"
 msgstr ""
@@ -710,7 +705,7 @@ msgstr ""
 msgid "You need to be logged-in to leave an event"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:369
+#: lib/graphql/resolvers/event.ex:396
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to update an event"
 msgstr ""
@@ -720,17 +715,17 @@ msgstr ""
 msgid "You need to be logged-in to update posts"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:177
+#: lib/graphql/resolvers/resource.ex:179
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to update resources"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:236
+#: lib/graphql/resolvers/resource.ex:233
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to view a resource preview"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:132
+#: lib/graphql/resolvers/resource.ex:134
 #, elixir-autogen, elixir-format
 msgid "Parent resource doesn't belong to this group"
 msgstr ""
@@ -816,12 +811,12 @@ msgstr ""
 msgid "Profile is not administrator for the group"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:358
+#: lib/graphql/resolvers/event.ex:385
 #, elixir-autogen, elixir-format
 msgid "You can't edit this event."
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:361
+#: lib/graphql/resolvers/event.ex:388
 #, elixir-autogen, elixir-format
 msgid "You can't attribute this event to this profile."
 msgstr ""
@@ -841,7 +836,7 @@ msgstr ""
 msgid "You don't have the right to remove this member."
 msgstr ""
 
-#: lib/mobilizon/actors/actor.ex:377
+#: lib/mobilizon/actors/actor.ex:378
 #, elixir-autogen, elixir-format
 msgid "This username is already taken."
 msgstr ""
@@ -851,7 +846,7 @@ msgstr ""
 msgid "You must provide either an ID or a slug to access a discussion"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:275
+#: lib/graphql/resolvers/event.ex:276
 #, elixir-autogen, elixir-format
 msgid "Organizer profile is not owned by the user"
 msgstr ""
@@ -863,41 +858,41 @@ msgstr ""
 
 #: lib/graphql/resolvers/group.ex:181
 #: lib/graphql/resolvers/group.ex:223
-#: lib/graphql/resolvers/person.ex:157
-#: lib/graphql/resolvers/person.ex:191
-#: lib/graphql/resolvers/person.ex:324
+#: lib/graphql/resolvers/person.ex:159
+#: lib/graphql/resolvers/person.ex:193
+#: lib/graphql/resolvers/person.ex:326
 #, elixir-autogen, elixir-format
 msgid "The provided picture is too heavy"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:129
+#: lib/graphql/resolvers/resource.ex:131
 #, elixir-autogen, elixir-format
 msgid "Error while creating resource"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:537
+#: lib/graphql/resolvers/user.ex:566
 #, elixir-autogen, elixir-format
 msgid "Invalid activation token"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:226
+#: lib/graphql/resolvers/resource.ex:228
 #, elixir-autogen, elixir-format
 msgid "Unable to fetch resource details from this URL."
 msgstr ""
 
 #: lib/graphql/resolvers/event.ex:165
 #: lib/graphql/resolvers/participant.ex:253
-#: lib/graphql/resolvers/participant.ex:328
+#: lib/graphql/resolvers/participant.ex:335
 #, elixir-autogen, elixir-format
 msgid "Provided profile doesn't have moderator permissions on this event"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:286
+#: lib/graphql/resolvers/event.ex:294
 #, elixir-autogen, elixir-format
 msgid "Organizer profile doesn't have permission to create an event on behalf of this group"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:349
+#: lib/graphql/resolvers/event.ex:369
 #, elixir-autogen, elixir-format
 msgid "This profile doesn't have permission to update an event on behalf of this group"
 msgstr ""
@@ -907,7 +902,7 @@ msgstr ""
 msgid "Your e-mail has been denied registration or uses a disallowed e-mail provider"
 msgstr ""
 
-#: lib/graphql/resolvers/comment.ex:150
+#: lib/graphql/resolvers/comment.ex:156
 #, elixir-autogen, elixir-format
 msgid "Comment not found"
 msgstr ""
@@ -917,12 +912,12 @@ msgstr ""
 msgid "Error while creating a discussion"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:658
+#: lib/graphql/resolvers/user.ex:687
 #, elixir-autogen, elixir-format
 msgid "Error while updating locale"
 msgstr ""
 
-#: lib/graphql/resolvers/person.ex:327
+#: lib/graphql/resolvers/person.ex:329
 #, elixir-autogen, elixir-format
 msgid "Error while uploading pictures"
 msgstr ""
@@ -937,13 +932,13 @@ msgstr ""
 msgid "Failed to update the group"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:333
-#: lib/graphql/resolvers/user.ex:501
+#: lib/graphql/resolvers/admin.ex:357
+#: lib/graphql/resolvers/user.ex:547
 #, elixir-autogen, elixir-format
 msgid "Failed to update user email"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:533
+#: lib/graphql/resolvers/user.ex:562
 #, elixir-autogen, elixir-format
 msgid "Failed to validate user email"
 msgstr ""
@@ -953,37 +948,37 @@ msgstr ""
 msgid "The anonymous actor ID is invalid"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:165
+#: lib/graphql/resolvers/resource.ex:167
 #, elixir-autogen, elixir-format
 msgid "Unknown error while updating resource"
 msgstr ""
 
-#: lib/graphql/resolvers/comment.ex:105
+#: lib/graphql/resolvers/comment.ex:111
 #, elixir-autogen, elixir-format
 msgid "You are not the comment creator"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:458
+#: lib/graphql/resolvers/user.ex:471
 #, elixir-autogen, elixir-format
 msgid "You cannot change your password."
 msgstr ""
 
-#: lib/graphql/resolvers/participant.ex:321
+#: lib/graphql/resolvers/participant.ex:328
 #, elixir-autogen, elixir-format
 msgid "Format not supported"
 msgstr ""
 
-#: lib/graphql/resolvers/participant.ex:305
+#: lib/graphql/resolvers/participant.ex:312
 #, elixir-autogen, elixir-format
 msgid "A dependency needed to export to %{format} is not installed"
 msgstr ""
 
-#: lib/graphql/resolvers/participant.ex:313
+#: lib/graphql/resolvers/participant.ex:320
 #, elixir-autogen, elixir-format
 msgid "An error occured while saving export"
 msgstr ""
 
-#: lib/web/controllers/export_controller.ex:30
+#: lib/web/controllers/export_controller.ex:32
 #, elixir-autogen, elixir-format
 msgid "Export to format %{format} is not enabled on this instance"
 msgstr ""
@@ -993,17 +988,17 @@ msgstr ""
 msgid "Only admins can create groups"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:279
+#: lib/graphql/resolvers/event.ex:280
 #, elixir-autogen, elixir-format
 msgid "Only groups can create events"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:305
+#: lib/graphql/resolvers/event.ex:313
 #, elixir-autogen, elixir-format
 msgid "Unknown error while creating event"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:514
+#: lib/graphql/resolvers/user.ex:498
 #, elixir-autogen, elixir-format
 msgid "User cannot change email"
 msgstr ""
@@ -1018,12 +1013,12 @@ msgstr ""
 msgid "Follow not found"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:379
+#: lib/graphql/resolvers/user.ex:392
 #, elixir-autogen, elixir-format
 msgid "Profile with username %{username} not found"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:374
+#: lib/graphql/resolvers/user.ex:387
 #, elixir-autogen, elixir-format
 msgid "This profile does not belong to you"
 msgstr ""
@@ -1068,22 +1063,22 @@ msgstr ""
 msgid "Your email seems to be using an invalid format"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:382
+#: lib/graphql/resolvers/admin.ex:399
 #, elixir-autogen, elixir-format
 msgid "Can't confirm an already confirmed user"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:386
+#: lib/graphql/resolvers/admin.ex:403
 #, elixir-autogen, elixir-format
 msgid "Deconfirming users is not supported"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:358
+#: lib/graphql/resolvers/admin.ex:375
 #, elixir-autogen, elixir-format, fuzzy
 msgid "The new role must be different"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:309
+#: lib/graphql/resolvers/admin.ex:314
 #, elixir-autogen, elixir-format, fuzzy
 msgid "You need to be logged-in and an administrator to edit an user's details"
 msgstr ""
@@ -1093,28 +1088,28 @@ msgstr ""
 msgid "A profile or group with that name already exists"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:519
+#: lib/graphql/resolvers/admin.ex:542
 #, elixir-autogen, elixir-format
 msgid "Unable to find an instance to follow at this address"
 msgstr ""
 
-#: lib/mobilizon/actors/actor.ex:396
+#: lib/mobilizon/actors/actor.ex:397
 #, elixir-autogen, elixir-format
 msgid "Username must only contain alphanumeric lowercased characters and underscores."
 msgstr ""
 
 #: lib/graphql/resolvers/user.ex:303
-#: lib/graphql/resolvers/user.ex:326
+#: lib/graphql/resolvers/user.ex:333
 #, elixir-autogen, elixir-format, fuzzy
 msgid "This email doesn't seem to be valid"
 msgstr ""
 
-#: lib/graphql/resolvers/comment.ex:65
+#: lib/graphql/resolvers/comment.ex:59
 #, elixir-autogen, elixir-format
 msgid "This comment was detected as spam."
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:293
+#: lib/graphql/resolvers/event.ex:301
 #, elixir-autogen, elixir-format
 msgid "This event was detected as spam."
 msgstr ""
@@ -1135,7 +1130,7 @@ msgstr ""
 msgid "You need to be a moderator or an administrator to create a note on a report"
 msgstr ""
 
-#: lib/graphql/resolvers/person.ex:330
+#: lib/graphql/resolvers/person.ex:332
 #, elixir-autogen, elixir-format
 msgid "Your profile was detected as spam."
 msgstr ""
@@ -1145,7 +1140,7 @@ msgstr ""
 msgid "Your registration has been detected as spam and cannot be processed."
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:86
+#: lib/web/controllers/application_controller.ex:88
 #, elixir-autogen, elixir-format
 msgid "All of name, scope and redirect_uri parameters are required to create an application"
 msgstr ""
@@ -1160,171 +1155,227 @@ msgstr ""
 msgid "Application token not found"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:89
+#: lib/graphql/resolvers/application.ex:90
 #, elixir-autogen, elixir-format, fuzzy
 msgid "Error while revoking token"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:59
+#: lib/web/controllers/application_controller.ex:61
 #, elixir-autogen, elixir-format
 msgid "Impossible to create application."
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:356
+#: lib/web/controllers/application_controller.ex:358
 #, elixir-autogen, elixir-format
 msgid "Incorrect parameters sent. You need to provide at least the grant_type and client_id parameters, depending on the grant type being used."
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:329
+#: lib/web/controllers/application_controller.ex:331
 #, elixir-autogen, elixir-format
 msgid "Invalid client credentials provided"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:337
+#: lib/web/controllers/application_controller.ex:339
 #, elixir-autogen, elixir-format
 msgid "Invalid refresh token provided"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:170
-#: lib/web/controllers/application_controller.ex:401
+#: lib/web/controllers/application_controller.ex:172
+#: lib/web/controllers/application_controller.ex:403
 #, elixir-autogen, elixir-format
 msgid "No application was found with this client_id"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:37
+#: lib/graphql/resolvers/application.ex:38
 #, elixir-autogen, elixir-format
 msgid "No application with this client_id was found"
 msgstr ""
 
-#: lib/graphql/authorization.ex:80
+#: lib/graphql/authorization.ex:81
 #, elixir-autogen, elixir-format
 msgid "Not authorized to access field %{field}"
 msgstr ""
 
-#: lib/graphql/authorization.ex:70
-#: lib/graphql/authorization.ex:75
+#: lib/graphql/authorization.ex:71
+#: lib/graphql/authorization.ex:76
 #, elixir-autogen, elixir-format
 msgid "Not authorized to access object %{object}"
 msgstr ""
 
-#: lib/graphql/authorization.ex:63
+#: lib/graphql/authorization.ex:64
 #, elixir-autogen, elixir-format
 msgid "Not authorized to access this %{object_type}"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:279
+#: lib/web/controllers/application_controller.ex:281
 #, elixir-autogen, elixir-format
 msgid "Please slow down the rate of your requests"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:267
+#: lib/web/controllers/application_controller.ex:269
 #, elixir-autogen, elixir-format
 msgid "The authorization request is still pending"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:249
+#: lib/web/controllers/application_controller.ex:251
 #, elixir-autogen, elixir-format
 msgid "The client_id provided or the device_code associated is invalid"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:133
+#: lib/graphql/resolvers/application.ex:139
 #, elixir-autogen, elixir-format
 msgid "The device user code was not provided before approving the application"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:304
+#: lib/web/controllers/application_controller.ex:306
 #, elixir-autogen, elixir-format
 msgid "The given device_code has expired"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:44
+#: lib/graphql/resolvers/application.ex:45
 #, elixir-autogen, elixir-format
 msgid "The given redirect_uri is not in the list of allowed redirect URIs"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:158
+#: lib/web/controllers/application_controller.ex:160
 #, elixir-autogen, elixir-format
 msgid "The given scope is not in the list of the app declared scopes"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:109
-#: lib/graphql/resolvers/application.ex:146
+#: lib/graphql/resolvers/application.ex:112
+#: lib/graphql/resolvers/application.ex:154
 #, elixir-autogen, elixir-format
 msgid "The given user code has expired"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:112
-#: lib/graphql/resolvers/application.ex:140
+#: lib/graphql/resolvers/application.ex:118
+#: lib/graphql/resolvers/application.ex:146
 #, elixir-autogen, elixir-format
 msgid "The given user code is invalid"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:411
+#: lib/web/controllers/application_controller.ex:413
 #, elixir-autogen, elixir-format
 msgid "The provided client_id does not match the provided code"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:414
+#: lib/web/controllers/application_controller.ex:416
 #, elixir-autogen, elixir-format
 msgid "The provided client_secret is invalid"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:407
+#: lib/web/controllers/application_controller.ex:409
 #, elixir-autogen, elixir-format
 msgid "The provided code is invalid or expired"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:418
+#: lib/web/controllers/application_controller.ex:420
 #, elixir-autogen, elixir-format
 msgid "The provided scope is invalid or not included in the app declared scopes"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:45
+#: lib/web/controllers/application_controller.ex:47
 #, elixir-autogen, elixir-format
 msgid "The scope parameter is not a space separated list of valid scopes"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:292
+#: lib/web/controllers/application_controller.ex:294
 #, elixir-autogen, elixir-format
 msgid "The user rejected the requested authorization"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:404
+#: lib/web/controllers/application_controller.ex:406
 #, elixir-autogen, elixir-format
 msgid "This redirect URI is not allowed"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:381
+#: lib/web/controllers/application_controller.ex:383
 #, elixir-autogen, elixir-format, fuzzy
 msgid "Token not found"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:72
+#: lib/web/controllers/application_controller.ex:74
 #, elixir-autogen, elixir-format
 msgid "Too many requests"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:184
+#: lib/web/controllers/application_controller.ex:186
 #, elixir-autogen, elixir-format
 msgid "Unable to produce device code"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:373
+#: lib/web/controllers/application_controller.ex:375
 #, elixir-autogen, elixir-format
 msgid "Unable to revoke token"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:198
+#: lib/web/controllers/application_controller.ex:200
 #, elixir-autogen, elixir-format
 msgid "You need to pass both client_id and scope as parameters to obtain a device code"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:136
+#: lib/web/controllers/application_controller.ex:138
 #, elixir-autogen, elixir-format
 msgid "You need to provide a valid redirect_uri to autorize an application"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:126
+#: lib/web/controllers/application_controller.ex:128
 #, elixir-autogen, elixir-format
 msgid "You need to specify client_id, redirect_uri, scope and state to autorize an application"
 msgstr ""
+
+#: lib/graphql/resolvers/user.ex:306
+#, elixir-autogen, elixir-format
+msgid "Couldn't send an email. Internal error."
+msgstr ""
+
+#: lib/graphql/resolvers/participant.ex:286
+#, elixir-autogen, elixir-format
+msgid "Participation is already confirmed"
+msgstr ""
+
+#: lib/graphql/resolvers/participant.ex:283
+#, elixir-autogen, elixir-format
+msgid "Participation is confirmed but not approved yet by an organizer"
+msgstr ""
+
+#: lib/graphql/resolvers/event.ex:287
+#: lib/graphql/resolvers/event.ex:376
+#, elixir-autogen, elixir-format
+msgid "Providing external registration is not allowed"
+msgstr ""
+
+#: lib/graphql/resolvers/push_subscription.ex:48
+#, elixir-autogen, elixir-format
+msgid "The same push subscription has already been registered"
+msgstr ""
+
+#: lib/graphql/resolvers/admin.ex:536
+#, elixir-autogen, elixir-format
+msgid "This instance is pending follow approval"
+msgstr ""
+
+#: lib/graphql/schema/custom/timezone.ex:23
+#, elixir-autogen, elixir-format
+msgid "Timezone ID %{timezone} is invalid"
+msgstr ""
+
+#: lib/graphql/resolvers/admin.ex:539
+#, elixir-autogen, elixir-format, fuzzy
+msgid "You are already following this instance"
+msgstr ""
+
+#: lib/graphql/resolvers/user.ex:310
+#, elixir-autogen, elixir-format, fuzzy
+msgid "You requested again a confirmation email too soon. Please try again in a few minutes"
+msgstr ""
+
+#: lib/graphql/resolvers/user.ex:341
+#, elixir-autogen, elixir-format
+msgid "You requested again a password reset email too soon. Please try again in a few minutes"
+msgstr ""
+
+#: lib/graphql/resolvers/user.ex:368
+#, elixir-autogen, elixir-format
+msgid "The token you provided is invalid. Make sure that the URL is exactly the one provided inside the email you got."
+msgstr ""
diff --git a/priv/gettext/pt_BR/LC_MESSAGES/activity.po b/priv/gettext/pt_BR/LC_MESSAGES/activity.po
index e4348e4566af2394e387e3fe0cf53e338b0df9a6..18c92ca2f18cfae332e3a90ebfac7661c1a7b707 100644
--- a/priv/gettext/pt_BR/LC_MESSAGES/activity.po
+++ b/priv/gettext/pt_BR/LC_MESSAGES/activity.po
@@ -473,3 +473,15 @@ msgstr "%{profile} respondeu à discussão %{discussion} no grupo %{group}."
 #, elixir-autogen, elixir-format, fuzzy
 msgid "%{profile} approved the member %{member}."
 msgstr "%{profile} adicionou o membro %{member}."
+
+#: lib/service/activity/renderer/event.ex:74
+#: lib/web/templates/email/activity/_event_activity_item.html.heex:55
+#: lib/web/templates/email/activity/_event_activity_item.text.eex:31
+#, elixir-autogen, elixir-format
+msgid "%{profile} joined your event %{event}."
+msgstr ""
+
+#: lib/web/views/email_view.ex:45
+#, elixir-autogen, elixir-format
+msgid "An anonymous profile"
+msgstr ""
diff --git a/priv/gettext/pt_BR/LC_MESSAGES/default.po b/priv/gettext/pt_BR/LC_MESSAGES/default.po
index b3c2c470213e249fc8e743f0b838287b18da9ae7..d00ae2b86e9084bcb163f42b331e03392fdd99f7 100644
--- a/priv/gettext/pt_BR/LC_MESSAGES/default.po
+++ b/priv/gettext/pt_BR/LC_MESSAGES/default.po
@@ -21,7 +21,7 @@ msgstr ""
 "Se você não fez essa solicitação, favor ignorar este email. Sua senha não "
 "será modificada até que você acesse o link abaixo e crie uma nova senha."
 
-#: lib/web/templates/email/report.html.heex:120
+#: lib/web/templates/email/report.html.heex:121
 #, elixir-autogen, elixir-format
 msgid "%{title} by %{creator}"
 msgstr "%{title} por %{creator}"
@@ -37,23 +37,17 @@ msgstr "Ativar a minha conta"
 msgid "Ask the community on Framacolibri"
 msgstr "Perguntar à comunidade Framacolibri"
 
-#: lib/web/templates/email/report.text.eex:15
+#: lib/web/templates/email/report.text.eex:17
 #, elixir-autogen, elixir-format
 msgid "Comments"
 msgstr "Comentários"
 
-#: lib/web/templates/email/report.html.heex:115
-#: lib/web/templates/email/report.text.eex:11
-#, elixir-autogen, elixir-format
-msgid "Event"
-msgstr "Evento"
-
 #: lib/web/email/user.ex:49
 #, elixir-autogen, elixir-format
 msgid "Instructions to reset your password on %{instance}"
 msgstr "Instruções para reiniciar a senha de %{instance}"
 
-#: lib/web/templates/email/report.text.eex:21
+#: lib/web/templates/email/report.text.eex:23
 #, elixir-autogen, elixir-format
 msgid "Reason"
 msgstr "Razão"
@@ -355,12 +349,12 @@ msgctxt "terms"
 msgid "What information do we collect?"
 msgstr "Quais informações coletamos?"
 
-#: lib/web/email/user.ex:182
+#: lib/web/email/user.ex:188
 #, elixir-autogen, elixir-format
 msgid "Mobilizon on %{instance}: confirm your email address"
 msgstr "Mobilizon da instância %{instance}: confirma seu endereço de email"
 
-#: lib/web/email/user.ex:159
+#: lib/web/email/user.ex:165
 #, elixir-autogen, elixir-format
 msgid "Mobilizon on %{instance}: email changed"
 msgstr "Mobilizon da instância %{instance}: email alterado"
@@ -880,7 +874,7 @@ msgstr ""
 msgid "Event update!"
 msgstr "Evento atualizado!"
 
-#: lib/web/templates/email/report.html.heex:155
+#: lib/web/templates/email/report.html.heex:158
 #, elixir-autogen, elixir-format
 msgid "Flagged comments"
 msgstr ""
@@ -963,7 +957,7 @@ msgstr "Você está quase lá!"
 msgid "New email confirmation"
 msgstr ""
 
-#: lib/web/templates/email/report.html.heex:191
+#: lib/web/templates/email/report.html.heex:194
 #, elixir-autogen, elixir-format
 msgid "Reasons for report"
 msgstr ""
@@ -1018,12 +1012,12 @@ msgstr "Infelizmente, a organização rejeitou a sua participação."
 msgid "Verify your email address"
 msgstr "Verificar endereço de email"
 
-#: lib/web/templates/email/report.html.heex:232
+#: lib/web/templates/email/report.html.heex:235
 #, elixir-autogen, elixir-format
 msgid "View report"
 msgstr "Veja o relato"
 
-#: lib/web/templates/email/report.text.eex:24
+#: lib/web/templates/email/report.text.eex:26
 #, elixir-autogen, elixir-format
 msgid "View report:"
 msgstr "Veja o relato"
@@ -1121,12 +1115,6 @@ msgstr ""
 msgid "As this group was located on another instance, it will continue to work for other instances than this one."
 msgstr ""
 
-#: lib/web/templates/email/group_suspension.html.heex:67
-#: lib/web/templates/email/group_suspension.text.eex:5
-#, elixir-autogen, elixir-format
-msgid "As this group was located on this instance, all of it's data has been irretrievably deleted."
-msgstr ""
-
 #: lib/web/templates/email/group_suspension.html.heex:18
 #: lib/web/templates/email/group_suspension.text.eex:1
 #, elixir-autogen, elixir-format
@@ -1138,7 +1126,7 @@ msgstr ""
 msgid "Your instance's moderation team has decided to suspend %{group_name} (%{group_address}). You are no longer a member of this group."
 msgstr ""
 
-#: lib/web/email/group.ex:107
+#: lib/web/email/group.ex:108
 #, elixir-autogen, elixir-format
 msgid "The group %{group} has been suspended on %{instance}"
 msgstr ""
@@ -1455,16 +1443,6 @@ msgstr ""
 msgid "Public feed for %{instance}"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:350
-#, elixir-autogen, elixir-format
-msgid "The password you have choosen is too short. Please make sure your password contains at least 6 charaters."
-msgstr ""
-
-#: lib/graphql/resolvers/user.ex:356
-#, elixir-autogen, elixir-format
-msgid "The token you provided is invalid. Make sure that the URL is exactly the one provided inside the email you got."
-msgstr ""
-
 #: lib/web/email/actor.ex:43
 #, elixir-autogen, elixir-format
 msgid "Your participation to %{event} has been cancelled!"
@@ -1488,63 +1466,63 @@ msgid "Your participation to %{event} on %{instance} has been cancelled!"
 msgstr "A sua participação no evento %{title} foi aprovada"
 
 #. File name template for exported list of participants. Should NOT contain spaces. Make sure the output is going to be something standardized that is acceptable as a file name on most systems.
-#: lib/service/export/participants/csv.ex:81
+#: lib/service/export/participants/csv.ex:97
 #: lib/service/export/participants/ods.ex:86
 #: lib/service/export/participants/pdf.ex:96
 #, elixir-autogen, elixir-format
 msgid "%{event}_participants"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:61
+#: lib/service/export/participants/common.ex:66
 #, elixir-autogen, elixir-format
 msgid "Participant message"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:61
+#: lib/service/export/participants/common.ex:63
 #, elixir-autogen, elixir-format
 msgid "Participant name"
 msgstr "Participação aprovada"
 
-#: lib/service/export/participants/common.ex:61
+#: lib/service/export/participants/common.ex:64
 #, elixir-autogen, elixir-format
 msgid "Participant status"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:52
+#: lib/service/export/participants/common.ex:53
 #: lib/web/templates/email/admin/_role.html.heex:3
 #: lib/web/templates/email/admin/_role.text.eex:1
 #, elixir-autogen, elixir-format
 msgid "Administrator"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:55
+#: lib/service/export/participants/common.ex:56
 #, elixir-autogen, elixir-format
 msgid "Creator"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:49
+#: lib/service/export/participants/common.ex:50
 #: lib/web/templates/email/admin/_role.html.heex:5
 #: lib/web/templates/email/admin/_role.text.eex:1
 #, elixir-autogen, elixir-format
 msgid "Moderator"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:37
+#: lib/service/export/participants/common.ex:38
 #, elixir-autogen, elixir-format
 msgid "Not approved"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:40
+#: lib/service/export/participants/common.ex:41
 #, elixir-autogen, elixir-format
 msgid "Not confirmed"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:46
+#: lib/service/export/participants/common.ex:47
 #, elixir-autogen, elixir-format
 msgid "Participant"
 msgstr "Participação aprovada"
 
-#: lib/service/export/participants/common.ex:43
+#: lib/service/export/participants/common.ex:44
 #, elixir-autogen, elixir-format
 msgid "Rejected"
 msgstr ""
@@ -1569,7 +1547,7 @@ msgstr ""
 msgid "Participants for %{event}"
 msgstr "Participação aprovada"
 
-#: lib/service/export/participants/common.ex:88
+#: lib/service/export/participants/common.ex:95
 #, elixir-autogen, elixir-format
 msgid "Anonymous participant"
 msgstr ""
@@ -1688,7 +1666,7 @@ msgstr "Participação aprovada"
 msgid "Title: %{title}"
 msgstr ""
 
-#: lib/web/email/group.ex:46
+#: lib/web/email/group.ex:47
 #, elixir-autogen, elixir-format
 msgid "📅 Just scheduled by %{group}: %{event}"
 msgstr ""
@@ -2101,3 +2079,24 @@ msgstr ""
 #, elixir-autogen, elixir-format
 msgid "Until next time!"
 msgstr ""
+
+#: lib/web/templates/email/group_suspension.html.heex:67
+#: lib/web/templates/email/group_suspension.text.eex:5
+#, elixir-autogen, elixir-format, fuzzy
+msgid "As this group was located on this instance, all of its data has been irretrievably deleted."
+msgstr ""
+
+#: lib/web/templates/email/report.text.eex:11
+#, elixir-autogen, elixir-format, fuzzy
+msgid "Events"
+msgstr "Evento"
+
+#: lib/web/templates/email/report.html.heex:115
+#, elixir-autogen, elixir-format, fuzzy
+msgid "Flagged events"
+msgstr ""
+
+#: lib/service/export/participants/common.ex:65
+#, elixir-autogen, elixir-format, fuzzy
+msgid "Participant registration date"
+msgstr ""
diff --git a/priv/gettext/pt_BR/LC_MESSAGES/errors.po b/priv/gettext/pt_BR/LC_MESSAGES/errors.po
index d5f14b8f9d384c9b351c59cb5675bd29e795cf0f..d9bdb00357a9e879e2df54a45f574b8a08014251 100644
--- a/priv/gettext/pt_BR/LC_MESSAGES/errors.po
+++ b/priv/gettext/pt_BR/LC_MESSAGES/errors.po
@@ -110,7 +110,7 @@ msgstr ""
 msgid "Current profile is not an administrator of the selected group"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:644
+#: lib/graphql/resolvers/user.ex:673
 #, elixir-autogen, elixir-format
 msgid "Error while saving user settings"
 msgstr ""
@@ -153,8 +153,8 @@ msgstr ""
 msgid "No user to validate with this email was found"
 msgstr ""
 
-#: lib/graphql/resolvers/person.ex:337
-#: lib/graphql/resolvers/user.ex:330
+#: lib/graphql/resolvers/person.ex:339
+#: lib/graphql/resolvers/user.ex:337
 #, elixir-autogen, elixir-format
 msgid "No user with this email was found"
 msgstr ""
@@ -162,12 +162,12 @@ msgstr ""
 #: lib/graphql/resolvers/feed_token.ex:28
 #: lib/graphql/resolvers/participant.ex:32
 #: lib/graphql/resolvers/participant.ex:210
-#: lib/graphql/resolvers/person.ex:245
-#: lib/graphql/resolvers/person.ex:376
-#: lib/graphql/resolvers/person.ex:412
-#: lib/graphql/resolvers/person.ex:419
-#: lib/graphql/resolvers/person.ex:448
-#: lib/graphql/resolvers/person.ex:463
+#: lib/graphql/resolvers/person.ex:247
+#: lib/graphql/resolvers/person.ex:378
+#: lib/graphql/resolvers/person.ex:414
+#: lib/graphql/resolvers/person.ex:421
+#: lib/graphql/resolvers/person.ex:450
+#: lib/graphql/resolvers/person.ex:465
 #, elixir-autogen, elixir-format
 msgid "Profile is not owned by authenticated user"
 msgstr ""
@@ -177,41 +177,42 @@ msgstr ""
 msgid "Registrations are not open"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:461
+#: lib/graphql/resolvers/user.ex:474
 #, elixir-autogen, elixir-format
 msgid "The current password is invalid"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:336
-#: lib/graphql/resolvers/user.ex:504
+#: lib/graphql/resolvers/admin.ex:334
+#: lib/graphql/resolvers/user.ex:527
 #, elixir-autogen, elixir-format
 msgid "The new email doesn't seem to be valid"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:339
-#: lib/graphql/resolvers/user.ex:507
+#: lib/graphql/resolvers/admin.ex:323
+#: lib/graphql/resolvers/user.ex:514
 #, elixir-autogen, elixir-format
 msgid "The new email must be different"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:464
+#: lib/graphql/resolvers/user.ex:477
 #, elixir-autogen, elixir-format
 msgid "The new password must be different"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:511
-#: lib/graphql/resolvers/user.ex:573
-#: lib/graphql/resolvers/user.ex:576
+#: lib/graphql/resolvers/user.ex:518
+#: lib/graphql/resolvers/user.ex:602
+#: lib/graphql/resolvers/user.ex:605
 #, elixir-autogen, elixir-format
 msgid "The password provided is invalid"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:468
+#: lib/graphql/resolvers/user.ex:361
+#: lib/graphql/resolvers/user.ex:481
 #, elixir-autogen, elixir-format
 msgid "The password you have chosen is too short. Please make sure your password contains at least 6 characters."
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:323
+#: lib/graphql/resolvers/user.ex:330
 #, elixir-autogen, elixir-format
 msgid "This user can't reset their password"
 msgstr ""
@@ -227,12 +228,12 @@ msgstr ""
 msgid "Unable to validate user"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:554
+#: lib/graphql/resolvers/user.ex:583
 #, elixir-autogen, elixir-format
 msgid "User already disabled"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:619
+#: lib/graphql/resolvers/user.ex:648
 #, elixir-autogen, elixir-format
 msgid "User requested is not logged-in"
 msgstr ""
@@ -257,12 +258,12 @@ msgstr ""
 msgid "You may not list groups unless moderator."
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:519
+#: lib/graphql/resolvers/user.ex:503
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to change your email"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:476
+#: lib/graphql/resolvers/user.ex:489
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to change your password"
 msgstr ""
@@ -272,7 +273,7 @@ msgstr ""
 msgid "You need to be logged-in to delete a group"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:581
+#: lib/graphql/resolvers/user.ex:610
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to delete your account"
 msgstr ""
@@ -297,12 +298,6 @@ msgstr ""
 msgid "You need to have an existing token to get a refresh token"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:306
-#: lib/graphql/resolvers/user.ex:333
-#, elixir-autogen, elixir-format
-msgid "You requested again a confirmation email too soon"
-msgstr ""
-
 #: lib/graphql/resolvers/user.ex:180
 #, elixir-autogen, elixir-format
 msgid "Your email is not on the allowlist"
@@ -355,17 +350,17 @@ msgstr ""
 msgid "Anonymous participation is not enabled"
 msgstr ""
 
-#: lib/graphql/resolvers/person.ex:219
+#: lib/graphql/resolvers/person.ex:221
 #, elixir-autogen, elixir-format
 msgid "Cannot remove the last administrator of a group"
 msgstr ""
 
-#: lib/graphql/resolvers/person.ex:216
+#: lib/graphql/resolvers/person.ex:218
 #, elixir-autogen, elixir-format
 msgid "Cannot remove the last identity of a user"
 msgstr ""
 
-#: lib/graphql/resolvers/comment.ex:147
+#: lib/graphql/resolvers/comment.ex:153
 #, elixir-autogen, elixir-format
 msgid "Comment is already deleted"
 msgstr ""
@@ -393,8 +388,8 @@ msgid "Event id not found"
 msgstr ""
 
 #: lib/graphql/error.ex:114
-#: lib/graphql/resolvers/event.ex:355
-#: lib/graphql/resolvers/event.ex:407
+#: lib/graphql/resolvers/event.ex:382
+#: lib/graphql/resolvers/event.ex:434
 #, elixir-autogen, elixir-format
 msgid "Event not found"
 msgstr ""
@@ -402,7 +397,7 @@ msgstr ""
 #: lib/graphql/resolvers/participant.ex:87
 #: lib/graphql/resolvers/participant.ex:128
 #: lib/graphql/resolvers/participant.ex:155
-#: lib/graphql/resolvers/participant.ex:336
+#: lib/graphql/resolvers/participant.ex:343
 #, elixir-autogen, elixir-format
 msgid "Event with this ID %{id} doesn't exist"
 msgstr ""
@@ -412,7 +407,7 @@ msgstr ""
 msgid "Internal Error"
 msgstr ""
 
-#: lib/graphql/resolvers/discussion.ex:219
+#: lib/graphql/resolvers/discussion.ex:222
 #, elixir-autogen, elixir-format
 msgid "No discussion with ID %{id}"
 msgstr ""
@@ -479,10 +474,10 @@ msgstr ""
 #: lib/graphql/resolvers/post.ex:133
 #: lib/graphql/resolvers/post.ex:175
 #: lib/graphql/resolvers/post.ex:209
-#: lib/graphql/resolvers/resource.ex:90
-#: lib/graphql/resolvers/resource.ex:135
-#: lib/graphql/resolvers/resource.ex:168
-#: lib/graphql/resolvers/resource.ex:202
+#: lib/graphql/resolvers/resource.ex:92
+#: lib/graphql/resolvers/resource.ex:137
+#: lib/graphql/resolvers/resource.ex:170
+#: lib/graphql/resolvers/resource.ex:204
 #: lib/graphql/resolvers/todos.ex:58
 #: lib/graphql/resolvers/todos.ex:83
 #: lib/graphql/resolvers/todos.ex:110
@@ -494,7 +489,7 @@ msgid "Profile is not member of group"
 msgstr ""
 
 #: lib/graphql/resolvers/actor.ex:67
-#: lib/graphql/resolvers/person.ex:242
+#: lib/graphql/resolvers/person.ex:244
 #, elixir-autogen, elixir-format
 msgid "Profile not found"
 msgstr ""
@@ -504,8 +499,8 @@ msgstr ""
 msgid "Report not found"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:172
-#: lib/graphql/resolvers/resource.ex:199
+#: lib/graphql/resolvers/resource.ex:174
+#: lib/graphql/resolvers/resource.ex:201
 #, elixir-autogen, elixir-format
 msgid "Resource doesn't exist"
 msgstr ""
@@ -515,7 +510,7 @@ msgstr ""
 msgid "The event has already reached its maximum capacity"
 msgstr ""
 
-#: lib/graphql/resolvers/participant.ex:282
+#: lib/graphql/resolvers/participant.ex:289
 #, elixir-autogen, elixir-format
 msgid "This token is invalid"
 msgstr ""
@@ -549,7 +544,7 @@ msgstr ""
 msgid "User not found"
 msgstr ""
 
-#: lib/graphql/resolvers/person.ex:333
+#: lib/graphql/resolvers/person.ex:335
 #, elixir-autogen, elixir-format
 msgid "You already have a profile for this user"
 msgstr ""
@@ -571,7 +566,7 @@ msgstr ""
 msgid "You are not a moderator or admin for this group"
 msgstr ""
 
-#: lib/graphql/resolvers/comment.ex:80
+#: lib/graphql/resolvers/comment.ex:74
 #, elixir-autogen, elixir-format
 msgid "You are not allowed to create a comment if not connected"
 msgstr ""
@@ -581,7 +576,7 @@ msgstr ""
 msgid "You are not allowed to create a feed token if not connected"
 msgstr ""
 
-#: lib/graphql/resolvers/comment.ex:155
+#: lib/graphql/resolvers/comment.ex:161
 #, elixir-autogen, elixir-format
 msgid "You are not allowed to delete a comment if not connected"
 msgstr ""
@@ -591,7 +586,7 @@ msgstr ""
 msgid "You are not allowed to delete a feed token if not connected"
 msgstr ""
 
-#: lib/graphql/resolvers/comment.ex:114
+#: lib/graphql/resolvers/comment.ex:120
 #, elixir-autogen, elixir-format
 msgid "You are not allowed to update a comment if not connected"
 msgstr ""
@@ -607,12 +602,12 @@ msgstr ""
 msgid "You can't set yourself to a lower member role for this group because you are the only administrator"
 msgstr ""
 
-#: lib/graphql/resolvers/comment.ex:143
+#: lib/graphql/resolvers/comment.ex:149
 #, elixir-autogen, elixir-format
 msgid "You cannot delete this comment"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:403
+#: lib/graphql/resolvers/event.ex:430
 #, elixir-autogen, elixir-format
 msgid "You cannot delete this event"
 msgstr ""
@@ -647,17 +642,17 @@ msgstr ""
 msgid "You need to be logged-in and a moderator to view a report"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:252
+#: lib/graphql/resolvers/admin.ex:258
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in and an administrator to access admin settings"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:236
+#: lib/graphql/resolvers/admin.ex:242
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in and an administrator to access dashboard statistics"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:278
+#: lib/graphql/resolvers/admin.ex:283
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in and an administrator to save admin settings"
 msgstr ""
@@ -667,12 +662,12 @@ msgstr ""
 msgid "You need to be logged-in to access discussions"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:96
+#: lib/graphql/resolvers/resource.ex:98
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to access resources"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:313
+#: lib/graphql/resolvers/event.ex:321
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to create events"
 msgstr ""
@@ -687,12 +682,12 @@ msgstr ""
 msgid "You need to be logged-in to create reports"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:140
+#: lib/graphql/resolvers/resource.ex:142
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to create resources"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:412
+#: lib/graphql/resolvers/event.ex:439
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to delete an event"
 msgstr ""
@@ -702,7 +697,7 @@ msgstr ""
 msgid "You need to be logged-in to delete posts"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:207
+#: lib/graphql/resolvers/resource.ex:209
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to delete resources"
 msgstr ""
@@ -717,7 +712,7 @@ msgstr ""
 msgid "You need to be logged-in to leave an event"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:369
+#: lib/graphql/resolvers/event.ex:396
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to update an event"
 msgstr ""
@@ -727,17 +722,17 @@ msgstr ""
 msgid "You need to be logged-in to update posts"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:177
+#: lib/graphql/resolvers/resource.ex:179
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to update resources"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:236
+#: lib/graphql/resolvers/resource.ex:233
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to view a resource preview"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:132
+#: lib/graphql/resolvers/resource.ex:134
 #, elixir-autogen, elixir-format
 msgid "Parent resource doesn't belong to this group"
 msgstr ""
@@ -823,12 +818,12 @@ msgstr ""
 msgid "Profile is not administrator for the group"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:358
+#: lib/graphql/resolvers/event.ex:385
 #, elixir-autogen, elixir-format
 msgid "You can't edit this event."
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:361
+#: lib/graphql/resolvers/event.ex:388
 #, elixir-autogen, elixir-format
 msgid "You can't attribute this event to this profile."
 msgstr ""
@@ -848,7 +843,7 @@ msgstr ""
 msgid "You don't have the right to remove this member."
 msgstr ""
 
-#: lib/mobilizon/actors/actor.ex:377
+#: lib/mobilizon/actors/actor.ex:378
 #, elixir-autogen, elixir-format
 msgid "This username is already taken."
 msgstr ""
@@ -858,7 +853,7 @@ msgstr ""
 msgid "You must provide either an ID or a slug to access a discussion"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:275
+#: lib/graphql/resolvers/event.ex:276
 #, elixir-autogen, elixir-format
 msgid "Organizer profile is not owned by the user"
 msgstr ""
@@ -870,41 +865,41 @@ msgstr ""
 
 #: lib/graphql/resolvers/group.ex:181
 #: lib/graphql/resolvers/group.ex:223
-#: lib/graphql/resolvers/person.ex:157
-#: lib/graphql/resolvers/person.ex:191
-#: lib/graphql/resolvers/person.ex:324
+#: lib/graphql/resolvers/person.ex:159
+#: lib/graphql/resolvers/person.ex:193
+#: lib/graphql/resolvers/person.ex:326
 #, elixir-autogen, elixir-format
 msgid "The provided picture is too heavy"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:129
+#: lib/graphql/resolvers/resource.ex:131
 #, elixir-autogen, elixir-format
 msgid "Error while creating resource"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:537
+#: lib/graphql/resolvers/user.ex:566
 #, elixir-autogen, elixir-format
 msgid "Invalid activation token"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:226
+#: lib/graphql/resolvers/resource.ex:228
 #, elixir-autogen, elixir-format
 msgid "Unable to fetch resource details from this URL."
 msgstr ""
 
 #: lib/graphql/resolvers/event.ex:165
 #: lib/graphql/resolvers/participant.ex:253
-#: lib/graphql/resolvers/participant.ex:328
+#: lib/graphql/resolvers/participant.ex:335
 #, elixir-autogen, elixir-format
 msgid "Provided profile doesn't have moderator permissions on this event"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:286
+#: lib/graphql/resolvers/event.ex:294
 #, elixir-autogen, elixir-format
 msgid "Organizer profile doesn't have permission to create an event on behalf of this group"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:349
+#: lib/graphql/resolvers/event.ex:369
 #, elixir-autogen, elixir-format
 msgid "This profile doesn't have permission to update an event on behalf of this group"
 msgstr ""
@@ -914,7 +909,7 @@ msgstr ""
 msgid "Your e-mail has been denied registration or uses a disallowed e-mail provider"
 msgstr ""
 
-#: lib/graphql/resolvers/comment.ex:150
+#: lib/graphql/resolvers/comment.ex:156
 #, elixir-autogen, elixir-format
 msgid "Comment not found"
 msgstr ""
@@ -924,12 +919,12 @@ msgstr ""
 msgid "Error while creating a discussion"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:658
+#: lib/graphql/resolvers/user.ex:687
 #, elixir-autogen, elixir-format
 msgid "Error while updating locale"
 msgstr ""
 
-#: lib/graphql/resolvers/person.ex:327
+#: lib/graphql/resolvers/person.ex:329
 #, elixir-autogen, elixir-format
 msgid "Error while uploading pictures"
 msgstr ""
@@ -944,13 +939,13 @@ msgstr ""
 msgid "Failed to update the group"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:333
-#: lib/graphql/resolvers/user.ex:501
+#: lib/graphql/resolvers/admin.ex:357
+#: lib/graphql/resolvers/user.ex:547
 #, elixir-autogen, elixir-format
 msgid "Failed to update user email"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:533
+#: lib/graphql/resolvers/user.ex:562
 #, elixir-autogen, elixir-format
 msgid "Failed to validate user email"
 msgstr ""
@@ -960,37 +955,37 @@ msgstr ""
 msgid "The anonymous actor ID is invalid"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:165
+#: lib/graphql/resolvers/resource.ex:167
 #, elixir-autogen, elixir-format
 msgid "Unknown error while updating resource"
 msgstr ""
 
-#: lib/graphql/resolvers/comment.ex:105
+#: lib/graphql/resolvers/comment.ex:111
 #, elixir-autogen, elixir-format
 msgid "You are not the comment creator"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:458
+#: lib/graphql/resolvers/user.ex:471
 #, elixir-autogen, elixir-format
 msgid "You cannot change your password."
 msgstr ""
 
-#: lib/graphql/resolvers/participant.ex:321
+#: lib/graphql/resolvers/participant.ex:328
 #, elixir-autogen, elixir-format
 msgid "Format not supported"
 msgstr ""
 
-#: lib/graphql/resolvers/participant.ex:305
+#: lib/graphql/resolvers/participant.ex:312
 #, elixir-autogen, elixir-format
 msgid "A dependency needed to export to %{format} is not installed"
 msgstr ""
 
-#: lib/graphql/resolvers/participant.ex:313
+#: lib/graphql/resolvers/participant.ex:320
 #, elixir-autogen, elixir-format
 msgid "An error occured while saving export"
 msgstr ""
 
-#: lib/web/controllers/export_controller.ex:30
+#: lib/web/controllers/export_controller.ex:32
 #, elixir-autogen, elixir-format
 msgid "Export to format %{format} is not enabled on this instance"
 msgstr ""
@@ -1000,17 +995,17 @@ msgstr ""
 msgid "Only admins can create groups"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:279
+#: lib/graphql/resolvers/event.ex:280
 #, elixir-autogen, elixir-format
 msgid "Only groups can create events"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:305
+#: lib/graphql/resolvers/event.ex:313
 #, elixir-autogen, elixir-format
 msgid "Unknown error while creating event"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:514
+#: lib/graphql/resolvers/user.ex:498
 #, elixir-autogen, elixir-format
 msgid "User cannot change email"
 msgstr ""
@@ -1025,12 +1020,12 @@ msgstr ""
 msgid "Follow not found"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:379
+#: lib/graphql/resolvers/user.ex:392
 #, elixir-autogen, elixir-format
 msgid "Profile with username %{username} not found"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:374
+#: lib/graphql/resolvers/user.ex:387
 #, elixir-autogen, elixir-format
 msgid "This profile does not belong to you"
 msgstr ""
@@ -1075,22 +1070,22 @@ msgstr ""
 msgid "Your email seems to be using an invalid format"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:382
+#: lib/graphql/resolvers/admin.ex:399
 #, elixir-autogen, elixir-format
 msgid "Can't confirm an already confirmed user"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:386
+#: lib/graphql/resolvers/admin.ex:403
 #, elixir-autogen, elixir-format
 msgid "Deconfirming users is not supported"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:358
+#: lib/graphql/resolvers/admin.ex:375
 #, elixir-autogen, elixir-format, fuzzy
 msgid "The new role must be different"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:309
+#: lib/graphql/resolvers/admin.ex:314
 #, elixir-autogen, elixir-format, fuzzy
 msgid "You need to be logged-in and an administrator to edit an user's details"
 msgstr ""
@@ -1100,28 +1095,28 @@ msgstr ""
 msgid "A profile or group with that name already exists"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:519
+#: lib/graphql/resolvers/admin.ex:542
 #, elixir-autogen, elixir-format
 msgid "Unable to find an instance to follow at this address"
 msgstr ""
 
-#: lib/mobilizon/actors/actor.ex:396
+#: lib/mobilizon/actors/actor.ex:397
 #, elixir-autogen, elixir-format
 msgid "Username must only contain alphanumeric lowercased characters and underscores."
 msgstr ""
 
 #: lib/graphql/resolvers/user.ex:303
-#: lib/graphql/resolvers/user.ex:326
+#: lib/graphql/resolvers/user.ex:333
 #, elixir-autogen, elixir-format, fuzzy
 msgid "This email doesn't seem to be valid"
 msgstr ""
 
-#: lib/graphql/resolvers/comment.ex:65
+#: lib/graphql/resolvers/comment.ex:59
 #, elixir-autogen, elixir-format
 msgid "This comment was detected as spam."
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:293
+#: lib/graphql/resolvers/event.ex:301
 #, elixir-autogen, elixir-format
 msgid "This event was detected as spam."
 msgstr ""
@@ -1142,7 +1137,7 @@ msgstr ""
 msgid "You need to be a moderator or an administrator to create a note on a report"
 msgstr ""
 
-#: lib/graphql/resolvers/person.ex:330
+#: lib/graphql/resolvers/person.ex:332
 #, elixir-autogen, elixir-format
 msgid "Your profile was detected as spam."
 msgstr ""
@@ -1152,7 +1147,7 @@ msgstr ""
 msgid "Your registration has been detected as spam and cannot be processed."
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:86
+#: lib/web/controllers/application_controller.ex:88
 #, elixir-autogen, elixir-format
 msgid "All of name, scope and redirect_uri parameters are required to create an application"
 msgstr ""
@@ -1167,171 +1162,227 @@ msgstr ""
 msgid "Application token not found"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:89
+#: lib/graphql/resolvers/application.ex:90
 #, elixir-autogen, elixir-format, fuzzy
 msgid "Error while revoking token"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:59
+#: lib/web/controllers/application_controller.ex:61
 #, elixir-autogen, elixir-format
 msgid "Impossible to create application."
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:356
+#: lib/web/controllers/application_controller.ex:358
 #, elixir-autogen, elixir-format
 msgid "Incorrect parameters sent. You need to provide at least the grant_type and client_id parameters, depending on the grant type being used."
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:329
+#: lib/web/controllers/application_controller.ex:331
 #, elixir-autogen, elixir-format
 msgid "Invalid client credentials provided"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:337
+#: lib/web/controllers/application_controller.ex:339
 #, elixir-autogen, elixir-format
 msgid "Invalid refresh token provided"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:170
-#: lib/web/controllers/application_controller.ex:401
+#: lib/web/controllers/application_controller.ex:172
+#: lib/web/controllers/application_controller.ex:403
 #, elixir-autogen, elixir-format
 msgid "No application was found with this client_id"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:37
+#: lib/graphql/resolvers/application.ex:38
 #, elixir-autogen, elixir-format
 msgid "No application with this client_id was found"
 msgstr ""
 
-#: lib/graphql/authorization.ex:80
+#: lib/graphql/authorization.ex:81
 #, elixir-autogen, elixir-format
 msgid "Not authorized to access field %{field}"
 msgstr ""
 
-#: lib/graphql/authorization.ex:70
-#: lib/graphql/authorization.ex:75
+#: lib/graphql/authorization.ex:71
+#: lib/graphql/authorization.ex:76
 #, elixir-autogen, elixir-format
 msgid "Not authorized to access object %{object}"
 msgstr ""
 
-#: lib/graphql/authorization.ex:63
+#: lib/graphql/authorization.ex:64
 #, elixir-autogen, elixir-format
 msgid "Not authorized to access this %{object_type}"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:279
+#: lib/web/controllers/application_controller.ex:281
 #, elixir-autogen, elixir-format
 msgid "Please slow down the rate of your requests"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:267
+#: lib/web/controllers/application_controller.ex:269
 #, elixir-autogen, elixir-format
 msgid "The authorization request is still pending"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:249
+#: lib/web/controllers/application_controller.ex:251
 #, elixir-autogen, elixir-format
 msgid "The client_id provided or the device_code associated is invalid"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:133
+#: lib/graphql/resolvers/application.ex:139
 #, elixir-autogen, elixir-format
 msgid "The device user code was not provided before approving the application"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:304
+#: lib/web/controllers/application_controller.ex:306
 #, elixir-autogen, elixir-format
 msgid "The given device_code has expired"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:44
+#: lib/graphql/resolvers/application.ex:45
 #, elixir-autogen, elixir-format
 msgid "The given redirect_uri is not in the list of allowed redirect URIs"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:158
+#: lib/web/controllers/application_controller.ex:160
 #, elixir-autogen, elixir-format
 msgid "The given scope is not in the list of the app declared scopes"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:109
-#: lib/graphql/resolvers/application.ex:146
+#: lib/graphql/resolvers/application.ex:112
+#: lib/graphql/resolvers/application.ex:154
 #, elixir-autogen, elixir-format
 msgid "The given user code has expired"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:112
-#: lib/graphql/resolvers/application.ex:140
+#: lib/graphql/resolvers/application.ex:118
+#: lib/graphql/resolvers/application.ex:146
 #, elixir-autogen, elixir-format
 msgid "The given user code is invalid"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:411
+#: lib/web/controllers/application_controller.ex:413
 #, elixir-autogen, elixir-format
 msgid "The provided client_id does not match the provided code"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:414
+#: lib/web/controllers/application_controller.ex:416
 #, elixir-autogen, elixir-format
 msgid "The provided client_secret is invalid"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:407
+#: lib/web/controllers/application_controller.ex:409
 #, elixir-autogen, elixir-format
 msgid "The provided code is invalid or expired"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:418
+#: lib/web/controllers/application_controller.ex:420
 #, elixir-autogen, elixir-format
 msgid "The provided scope is invalid or not included in the app declared scopes"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:45
+#: lib/web/controllers/application_controller.ex:47
 #, elixir-autogen, elixir-format
 msgid "The scope parameter is not a space separated list of valid scopes"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:292
+#: lib/web/controllers/application_controller.ex:294
 #, elixir-autogen, elixir-format
 msgid "The user rejected the requested authorization"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:404
+#: lib/web/controllers/application_controller.ex:406
 #, elixir-autogen, elixir-format
 msgid "This redirect URI is not allowed"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:381
+#: lib/web/controllers/application_controller.ex:383
 #, elixir-autogen, elixir-format, fuzzy
 msgid "Token not found"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:72
+#: lib/web/controllers/application_controller.ex:74
 #, elixir-autogen, elixir-format
 msgid "Too many requests"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:184
+#: lib/web/controllers/application_controller.ex:186
 #, elixir-autogen, elixir-format
 msgid "Unable to produce device code"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:373
+#: lib/web/controllers/application_controller.ex:375
 #, elixir-autogen, elixir-format
 msgid "Unable to revoke token"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:198
+#: lib/web/controllers/application_controller.ex:200
 #, elixir-autogen, elixir-format
 msgid "You need to pass both client_id and scope as parameters to obtain a device code"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:136
+#: lib/web/controllers/application_controller.ex:138
 #, elixir-autogen, elixir-format
 msgid "You need to provide a valid redirect_uri to autorize an application"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:126
+#: lib/web/controllers/application_controller.ex:128
 #, elixir-autogen, elixir-format
 msgid "You need to specify client_id, redirect_uri, scope and state to autorize an application"
 msgstr ""
+
+#: lib/graphql/resolvers/user.ex:306
+#, elixir-autogen, elixir-format
+msgid "Couldn't send an email. Internal error."
+msgstr ""
+
+#: lib/graphql/resolvers/participant.ex:286
+#, elixir-autogen, elixir-format
+msgid "Participation is already confirmed"
+msgstr ""
+
+#: lib/graphql/resolvers/participant.ex:283
+#, elixir-autogen, elixir-format
+msgid "Participation is confirmed but not approved yet by an organizer"
+msgstr ""
+
+#: lib/graphql/resolvers/event.ex:287
+#: lib/graphql/resolvers/event.ex:376
+#, elixir-autogen, elixir-format
+msgid "Providing external registration is not allowed"
+msgstr ""
+
+#: lib/graphql/resolvers/push_subscription.ex:48
+#, elixir-autogen, elixir-format
+msgid "The same push subscription has already been registered"
+msgstr ""
+
+#: lib/graphql/resolvers/admin.ex:536
+#, elixir-autogen, elixir-format
+msgid "This instance is pending follow approval"
+msgstr ""
+
+#: lib/graphql/schema/custom/timezone.ex:23
+#, elixir-autogen, elixir-format
+msgid "Timezone ID %{timezone} is invalid"
+msgstr ""
+
+#: lib/graphql/resolvers/admin.ex:539
+#, elixir-autogen, elixir-format, fuzzy
+msgid "You are already following this instance"
+msgstr ""
+
+#: lib/graphql/resolvers/user.ex:310
+#, elixir-autogen, elixir-format, fuzzy
+msgid "You requested again a confirmation email too soon. Please try again in a few minutes"
+msgstr ""
+
+#: lib/graphql/resolvers/user.ex:341
+#, elixir-autogen, elixir-format
+msgid "You requested again a password reset email too soon. Please try again in a few minutes"
+msgstr ""
+
+#: lib/graphql/resolvers/user.ex:368
+#, elixir-autogen, elixir-format
+msgid "The token you provided is invalid. Make sure that the URL is exactly the one provided inside the email you got."
+msgstr ""
diff --git a/priv/gettext/ru/LC_MESSAGES/activity.po b/priv/gettext/ru/LC_MESSAGES/activity.po
index 34e206e00aec9b182ae80bb75633bdf59d79516b..99ca7e3b12f455b822f800b0ca9cac8c1f21c8ff 100644
--- a/priv/gettext/ru/LC_MESSAGES/activity.po
+++ b/priv/gettext/ru/LC_MESSAGES/activity.po
@@ -469,3 +469,15 @@ msgstr "%{profile} ответил на обсуждение %{discussion}."
 #, elixir-autogen, elixir-format, fuzzy
 msgid "%{profile} approved the member %{member}."
 msgstr "%{profile} добавил участника %{member}."
+
+#: lib/service/activity/renderer/event.ex:74
+#: lib/web/templates/email/activity/_event_activity_item.html.heex:55
+#: lib/web/templates/email/activity/_event_activity_item.text.eex:31
+#, elixir-autogen, elixir-format
+msgid "%{profile} joined your event %{event}."
+msgstr ""
+
+#: lib/web/views/email_view.ex:45
+#, elixir-autogen, elixir-format
+msgid "An anonymous profile"
+msgstr ""
diff --git a/priv/gettext/ru/LC_MESSAGES/default.po b/priv/gettext/ru/LC_MESSAGES/default.po
index dc08b6f66e87eda8e4e9c0a236372e863bd910e2..bc39316f488b78bff71fc4e0a5a8b04e9f069a20 100644
--- a/priv/gettext/ru/LC_MESSAGES/default.po
+++ b/priv/gettext/ru/LC_MESSAGES/default.po
@@ -22,7 +22,7 @@ msgstr ""
 "Если вы не оставляли такой запрос, проигнорируйте данное письмо. Пароль не "
 "изменится, если не перейти по приведённой ссылке и не указать новый."
 
-#: lib/web/templates/email/report.html.heex:120
+#: lib/web/templates/email/report.html.heex:121
 #, elixir-autogen, elixir-format
 msgid "%{title} by %{creator}"
 msgstr "%{title} от %{creator}"
@@ -38,23 +38,17 @@ msgstr "Активировать мою учётную запись"
 msgid "Ask the community on Framacolibri"
 msgstr "Обратиться к сообществу на Framacolibri"
 
-#: lib/web/templates/email/report.text.eex:15
+#: lib/web/templates/email/report.text.eex:17
 #, elixir-autogen, elixir-format
 msgid "Comments"
 msgstr "Комментарии"
 
-#: lib/web/templates/email/report.html.heex:115
-#: lib/web/templates/email/report.text.eex:11
-#, elixir-autogen, elixir-format
-msgid "Event"
-msgstr "Мероприятие"
-
 #: lib/web/email/user.ex:49
 #, elixir-autogen, elixir-format
 msgid "Instructions to reset your password on %{instance}"
 msgstr "Инструкции по сбросу пароля на %{instance}"
 
-#: lib/web/templates/email/report.text.eex:21
+#: lib/web/templates/email/report.text.eex:23
 #, elixir-autogen, elixir-format
 msgid "Reason"
 msgstr "Причина"
@@ -354,12 +348,12 @@ msgctxt "terms"
 msgid "What information do we collect?"
 msgstr "Какую информацию мы собираем?"
 
-#: lib/web/email/user.ex:182
+#: lib/web/email/user.ex:188
 #, elixir-autogen, elixir-format
 msgid "Mobilizon on %{instance}: confirm your email address"
 msgstr "Mobilizon на %{instance}: подтвердите свой адрес электронной почты"
 
-#: lib/web/email/user.ex:159
+#: lib/web/email/user.ex:165
 #, elixir-autogen, elixir-format
 msgid "Mobilizon on %{instance}: email changed"
 msgstr "Mobilizon на %{instance}: адрес электронной почты изменен"
@@ -998,7 +992,7 @@ msgstr "Конец"
 msgid "Event update!"
 msgstr "Мероприятие обновлено!"
 
-#: lib/web/templates/email/report.html.heex:155
+#: lib/web/templates/email/report.html.heex:158
 #, elixir-autogen, elixir-format
 msgid "Flagged comments"
 msgstr "Помеченные комментарии"
@@ -1096,7 +1090,7 @@ msgstr "Почти готово!"
 msgid "New email confirmation"
 msgstr "Подтверждение нового адреса электронной почты"
 
-#: lib/web/templates/email/report.html.heex:191
+#: lib/web/templates/email/report.html.heex:194
 #, elixir-autogen, elixir-format
 msgid "Reasons for report"
 msgstr "Причина жалобы"
@@ -1153,12 +1147,12 @@ msgstr "К сожалению, организаторы отклонили ва
 msgid "Verify your email address"
 msgstr "Проверьте свой адрес электронной почты"
 
-#: lib/web/templates/email/report.html.heex:232
+#: lib/web/templates/email/report.html.heex:235
 #, elixir-autogen, elixir-format
 msgid "View report"
 msgstr "Смотреть отчёт"
 
-#: lib/web/templates/email/report.text.eex:24
+#: lib/web/templates/email/report.text.eex:26
 #, elixir-autogen, elixir-format
 msgid "View report:"
 msgstr "Смотреть отчёт:"
@@ -1274,14 +1268,6 @@ msgstr ""
 "Поскольку эта группа находилась на другом узле, она все равно будет работать "
 "на других узлах, кроме этого."
 
-#: lib/web/templates/email/group_suspension.html.heex:67
-#: lib/web/templates/email/group_suspension.text.eex:5
-#, elixir-autogen, elixir-format
-msgid "As this group was located on this instance, all of it's data has been irretrievably deleted."
-msgstr ""
-"Поскольку эта группа находилась на этом узле, все её содержимое было "
-"безвозвратно удалено."
-
 #: lib/web/templates/email/group_suspension.html.heex:18
 #: lib/web/templates/email/group_suspension.text.eex:1
 #, elixir-autogen, elixir-format
@@ -1296,7 +1282,7 @@ msgstr ""
 "%{group_name} (%{group_address}). Вы больше не являетесь участником этой "
 "группы."
 
-#: lib/web/email/group.ex:107
+#: lib/web/email/group.ex:108
 #, elixir-autogen, elixir-format
 msgid "The group %{group} has been suspended on %{instance}"
 msgstr "Группа %{group} заблокирована на %{instance}"
@@ -1668,20 +1654,6 @@ msgstr "Сервер Mobilizon %{instance} временно недоступен
 msgid "Public feed for %{instance}"
 msgstr "Публичная лента для %{instance}"
 
-#: lib/graphql/resolvers/user.ex:350
-#, elixir-autogen, elixir-format
-msgid "The password you have choosen is too short. Please make sure your password contains at least 6 charaters."
-msgstr ""
-"Выбранный вами пароль слишком короткий. Пожалуйста, убедитесь, что ваш "
-"пароль содержит не менее 6 символов."
-
-#: lib/graphql/resolvers/user.ex:356
-#, elixir-autogen, elixir-format
-msgid "The token you provided is invalid. Make sure that the URL is exactly the one provided inside the email you got."
-msgstr ""
-"Предоставленный вами токен недействителен. Убедитесь, что URL-адрес - именно "
-"тот, который указан в полученном вами электронном письме."
-
 #: lib/web/email/actor.ex:43
 #, elixir-autogen, elixir-format
 msgid "Your participation to %{event} has been cancelled!"
@@ -1711,63 +1683,63 @@ msgid "Your participation to %{event} on %{instance} has been cancelled!"
 msgstr "Ваше участие в %{event} на %{instance} было отменено!"
 
 #. File name template for exported list of participants. Should NOT contain spaces. Make sure the output is going to be something standardized that is acceptable as a file name on most systems.
-#: lib/service/export/participants/csv.ex:81
+#: lib/service/export/participants/csv.ex:97
 #: lib/service/export/participants/ods.ex:86
 #: lib/service/export/participants/pdf.ex:96
 #, elixir-autogen, elixir-format
 msgid "%{event}_participants"
 msgstr "%{event}_участники"
 
-#: lib/service/export/participants/common.ex:61
+#: lib/service/export/participants/common.ex:66
 #, elixir-autogen, elixir-format
 msgid "Participant message"
 msgstr "Сообщение участника"
 
-#: lib/service/export/participants/common.ex:61
+#: lib/service/export/participants/common.ex:63
 #, elixir-autogen, elixir-format
 msgid "Participant name"
 msgstr "Участие одобрено"
 
-#: lib/service/export/participants/common.ex:61
+#: lib/service/export/participants/common.ex:64
 #, elixir-autogen, elixir-format
 msgid "Participant status"
 msgstr "Статус участника"
 
-#: lib/service/export/participants/common.ex:52
+#: lib/service/export/participants/common.ex:53
 #: lib/web/templates/email/admin/_role.html.heex:3
 #: lib/web/templates/email/admin/_role.text.eex:1
 #, elixir-autogen, elixir-format
 msgid "Administrator"
 msgstr "Администратор"
 
-#: lib/service/export/participants/common.ex:55
+#: lib/service/export/participants/common.ex:56
 #, elixir-autogen, elixir-format
 msgid "Creator"
 msgstr "Автор"
 
-#: lib/service/export/participants/common.ex:49
+#: lib/service/export/participants/common.ex:50
 #: lib/web/templates/email/admin/_role.html.heex:5
 #: lib/web/templates/email/admin/_role.text.eex:1
 #, elixir-autogen, elixir-format
 msgid "Moderator"
 msgstr "Модератор"
 
-#: lib/service/export/participants/common.ex:37
+#: lib/service/export/participants/common.ex:38
 #, elixir-autogen, elixir-format
 msgid "Not approved"
 msgstr "Не одобрено"
 
-#: lib/service/export/participants/common.ex:40
+#: lib/service/export/participants/common.ex:41
 #, elixir-autogen, elixir-format
 msgid "Not confirmed"
 msgstr "Не подтверждено"
 
-#: lib/service/export/participants/common.ex:46
+#: lib/service/export/participants/common.ex:47
 #, elixir-autogen, elixir-format
 msgid "Participant"
 msgstr "Участие одобрено"
 
-#: lib/service/export/participants/common.ex:43
+#: lib/service/export/participants/common.ex:44
 #, elixir-autogen, elixir-format
 msgid "Rejected"
 msgstr "Отклоненный"
@@ -1792,7 +1764,7 @@ msgstr "Число участников"
 msgid "Participants for %{event}"
 msgstr "Участники для %{event}"
 
-#: lib/service/export/participants/common.ex:88
+#: lib/service/export/participants/common.ex:95
 #, elixir-autogen, elixir-format
 msgid "Anonymous participant"
 msgstr "Анонимный участник"
@@ -1911,7 +1883,7 @@ msgstr "Участвовать:"
 msgid "Title: %{title}"
 msgstr "Заголовок: %{title}"
 
-#: lib/web/email/group.ex:46
+#: lib/web/email/group.ex:47
 #, elixir-autogen, elixir-format
 msgid "📅 Just scheduled by %{group}: %{event}"
 msgstr "📅 Только что запланировано %{group}: %{event}"
@@ -2341,3 +2313,26 @@ msgstr ""
 #, elixir-autogen, elixir-format
 msgid "Until next time!"
 msgstr ""
+
+#: lib/web/templates/email/group_suspension.html.heex:67
+#: lib/web/templates/email/group_suspension.text.eex:5
+#, elixir-autogen, elixir-format, fuzzy
+msgid "As this group was located on this instance, all of its data has been irretrievably deleted."
+msgstr ""
+"Поскольку эта группа находилась на этом узле, все её содержимое было "
+"безвозвратно удалено."
+
+#: lib/web/templates/email/report.text.eex:11
+#, elixir-autogen, elixir-format, fuzzy
+msgid "Events"
+msgstr "Мероприятие"
+
+#: lib/web/templates/email/report.html.heex:115
+#, elixir-autogen, elixir-format, fuzzy
+msgid "Flagged events"
+msgstr "Помеченные комментарии"
+
+#: lib/service/export/participants/common.ex:65
+#, elixir-autogen, elixir-format, fuzzy
+msgid "Participant registration date"
+msgstr "Статус участника"
diff --git a/priv/gettext/ru/LC_MESSAGES/errors.po b/priv/gettext/ru/LC_MESSAGES/errors.po
index df6decbdc12e3643ffc7c3dde6a58d24f2193866..11f2fab34572d20797435c7dc4b6a0fc17cf4b54 100644
--- a/priv/gettext/ru/LC_MESSAGES/errors.po
+++ b/priv/gettext/ru/LC_MESSAGES/errors.po
@@ -117,7 +117,7 @@ msgstr "Текущий профиль не является участником
 msgid "Current profile is not an administrator of the selected group"
 msgstr "Текущий профиль не является администратором выбранной группы"
 
-#: lib/graphql/resolvers/user.ex:644
+#: lib/graphql/resolvers/user.ex:673
 #, elixir-autogen, elixir-format
 msgid "Error while saving user settings"
 msgstr "Ошибка при сохранении пользовательских настроек"
@@ -164,8 +164,8 @@ msgstr ""
 "Не найдено ни одного пользователя для подтверждения с этим адресом "
 "электронной почты"
 
-#: lib/graphql/resolvers/person.ex:337
-#: lib/graphql/resolvers/user.ex:330
+#: lib/graphql/resolvers/person.ex:339
+#: lib/graphql/resolvers/user.ex:337
 #, elixir-autogen, elixir-format
 msgid "No user with this email was found"
 msgstr "Пользователя с этим адресом электронной почты не найдено"
@@ -173,12 +173,12 @@ msgstr "Пользователя с этим адресом электронно
 #: lib/graphql/resolvers/feed_token.ex:28
 #: lib/graphql/resolvers/participant.ex:32
 #: lib/graphql/resolvers/participant.ex:210
-#: lib/graphql/resolvers/person.ex:245
-#: lib/graphql/resolvers/person.ex:376
-#: lib/graphql/resolvers/person.ex:412
-#: lib/graphql/resolvers/person.ex:419
-#: lib/graphql/resolvers/person.ex:448
-#: lib/graphql/resolvers/person.ex:463
+#: lib/graphql/resolvers/person.ex:247
+#: lib/graphql/resolvers/person.ex:378
+#: lib/graphql/resolvers/person.ex:414
+#: lib/graphql/resolvers/person.ex:421
+#: lib/graphql/resolvers/person.ex:450
+#: lib/graphql/resolvers/person.ex:465
 #, elixir-autogen, elixir-format
 msgid "Profile is not owned by authenticated user"
 msgstr "Профиль не принадлежит аутентифицированному пользователю"
@@ -188,43 +188,44 @@ msgstr "Профиль не принадлежит аутентифициров
 msgid "Registrations are not open"
 msgstr "Регистрация не открыта"
 
-#: lib/graphql/resolvers/user.ex:461
+#: lib/graphql/resolvers/user.ex:474
 #, elixir-autogen, elixir-format
 msgid "The current password is invalid"
 msgstr "Текущий пароль неверен"
 
-#: lib/graphql/resolvers/admin.ex:336
-#: lib/graphql/resolvers/user.ex:504
+#: lib/graphql/resolvers/admin.ex:334
+#: lib/graphql/resolvers/user.ex:527
 #, elixir-autogen, elixir-format
 msgid "The new email doesn't seem to be valid"
 msgstr "Новый адрес электронной почты недействителен"
 
-#: lib/graphql/resolvers/admin.ex:339
-#: lib/graphql/resolvers/user.ex:507
+#: lib/graphql/resolvers/admin.ex:323
+#: lib/graphql/resolvers/user.ex:514
 #, elixir-autogen, elixir-format
 msgid "The new email must be different"
 msgstr "Новый адрес электронной почты должен отличаться от текущего"
 
-#: lib/graphql/resolvers/user.ex:464
+#: lib/graphql/resolvers/user.ex:477
 #, elixir-autogen, elixir-format
 msgid "The new password must be different"
 msgstr "Новый пароль должен отличаться от текущего"
 
-#: lib/graphql/resolvers/user.ex:511
-#: lib/graphql/resolvers/user.ex:573
-#: lib/graphql/resolvers/user.ex:576
+#: lib/graphql/resolvers/user.ex:518
+#: lib/graphql/resolvers/user.ex:602
+#: lib/graphql/resolvers/user.ex:605
 #, elixir-autogen, elixir-format
 msgid "The password provided is invalid"
 msgstr "Введён неверный пароль"
 
-#: lib/graphql/resolvers/user.ex:468
+#: lib/graphql/resolvers/user.ex:361
+#: lib/graphql/resolvers/user.ex:481
 #, elixir-autogen, elixir-format
 msgid "The password you have chosen is too short. Please make sure your password contains at least 6 characters."
 msgstr ""
 "Введенный пароль слишком короткий. Убедитесь, что ваш пароль состоит не "
 "менее чем из 6 символов."
 
-#: lib/graphql/resolvers/user.ex:323
+#: lib/graphql/resolvers/user.ex:330
 #, elixir-autogen, elixir-format
 msgid "This user can't reset their password"
 msgstr "Этот пользователь не может сбросить свой пароль"
@@ -240,12 +241,12 @@ msgstr "Этот пользователь отключен"
 msgid "Unable to validate user"
 msgstr "Невозможно проверить пользователя"
 
-#: lib/graphql/resolvers/user.ex:554
+#: lib/graphql/resolvers/user.ex:583
 #, elixir-autogen, elixir-format
 msgid "User already disabled"
 msgstr "Пользователь уже отключен"
 
-#: lib/graphql/resolvers/user.ex:619
+#: lib/graphql/resolvers/user.ex:648
 #, elixir-autogen, elixir-format
 msgid "User requested is not logged-in"
 msgstr "Запрошенный пользователь не авторизован"
@@ -271,13 +272,13 @@ msgstr "Вы не можете присоединиться к этой груп
 msgid "You may not list groups unless moderator."
 msgstr "Только модератор может просматривать список групп."
 
-#: lib/graphql/resolvers/user.ex:519
+#: lib/graphql/resolvers/user.ex:503
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to change your email"
 msgstr ""
 "Вам необходимо войти в систему, чтобы изменить свой адрес электронной почты"
 
-#: lib/graphql/resolvers/user.ex:476
+#: lib/graphql/resolvers/user.ex:489
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to change your password"
 msgstr "Вам необходимо войти в систему, чтобы изменить свой пароль"
@@ -287,7 +288,7 @@ msgstr "Вам необходимо войти в систему, чтобы и
 msgid "You need to be logged-in to delete a group"
 msgstr "Вам необходимо войти в систему, чтобы удалить группу"
 
-#: lib/graphql/resolvers/user.ex:581
+#: lib/graphql/resolvers/user.ex:610
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to delete your account"
 msgstr "Вам необходимо войти в систему, чтобы удалить свою учетную запись"
@@ -312,12 +313,6 @@ msgstr "Вам необходимо войти в систему, чтобы о
 msgid "You need to have an existing token to get a refresh token"
 msgstr "У вас должен быть существующий токен, чтобы получить токен обновления"
 
-#: lib/graphql/resolvers/user.ex:306
-#: lib/graphql/resolvers/user.ex:333
-#, elixir-autogen, elixir-format
-msgid "You requested again a confirmation email too soon"
-msgstr "Вы слишком рано запросили новое письмо с подтверждением"
-
 #: lib/graphql/resolvers/user.ex:180
 #, elixir-autogen, elixir-format
 msgid "Your email is not on the allowlist"
@@ -370,17 +365,17 @@ msgstr "Вашему узлу требуется действующий адре
 msgid "Anonymous participation is not enabled"
 msgstr "Анонимное участие не разрешено"
 
-#: lib/graphql/resolvers/person.ex:219
+#: lib/graphql/resolvers/person.ex:221
 #, elixir-autogen, elixir-format
 msgid "Cannot remove the last administrator of a group"
 msgstr "Невозможно удалить последнего администратора группы"
 
-#: lib/graphql/resolvers/person.ex:216
+#: lib/graphql/resolvers/person.ex:218
 #, elixir-autogen, elixir-format
 msgid "Cannot remove the last identity of a user"
 msgstr "Единственный идентификатор пользователя не может быть удален"
 
-#: lib/graphql/resolvers/comment.ex:147
+#: lib/graphql/resolvers/comment.ex:153
 #, elixir-autogen, elixir-format
 msgid "Comment is already deleted"
 msgstr "Комментарий уже удалён"
@@ -408,8 +403,8 @@ msgid "Event id not found"
 msgstr "Не найден id мероприятия"
 
 #: lib/graphql/error.ex:114
-#: lib/graphql/resolvers/event.ex:355
-#: lib/graphql/resolvers/event.ex:407
+#: lib/graphql/resolvers/event.ex:382
+#: lib/graphql/resolvers/event.ex:434
 #, elixir-autogen, elixir-format
 msgid "Event not found"
 msgstr "Мероприятие не найдено"
@@ -417,7 +412,7 @@ msgstr "Мероприятие не найдено"
 #: lib/graphql/resolvers/participant.ex:87
 #: lib/graphql/resolvers/participant.ex:128
 #: lib/graphql/resolvers/participant.ex:155
-#: lib/graphql/resolvers/participant.ex:336
+#: lib/graphql/resolvers/participant.ex:343
 #, elixir-autogen, elixir-format
 msgid "Event with this ID %{id} doesn't exist"
 msgstr "Мероприятия с ID %{id} не существует"
@@ -427,7 +422,7 @@ msgstr "Мероприятия с ID %{id} не существует"
 msgid "Internal Error"
 msgstr "Внутренняя ошибка"
 
-#: lib/graphql/resolvers/discussion.ex:219
+#: lib/graphql/resolvers/discussion.ex:222
 #, elixir-autogen, elixir-format
 msgid "No discussion with ID %{id}"
 msgstr "Обсуждения с ID %{id} нет"
@@ -494,10 +489,10 @@ msgstr "Профиль уже является участником этой г
 #: lib/graphql/resolvers/post.ex:133
 #: lib/graphql/resolvers/post.ex:175
 #: lib/graphql/resolvers/post.ex:209
-#: lib/graphql/resolvers/resource.ex:90
-#: lib/graphql/resolvers/resource.ex:135
-#: lib/graphql/resolvers/resource.ex:168
-#: lib/graphql/resolvers/resource.ex:202
+#: lib/graphql/resolvers/resource.ex:92
+#: lib/graphql/resolvers/resource.ex:137
+#: lib/graphql/resolvers/resource.ex:170
+#: lib/graphql/resolvers/resource.ex:204
 #: lib/graphql/resolvers/todos.ex:58
 #: lib/graphql/resolvers/todos.ex:83
 #: lib/graphql/resolvers/todos.ex:110
@@ -509,7 +504,7 @@ msgid "Profile is not member of group"
 msgstr "Профиль не является членом группы"
 
 #: lib/graphql/resolvers/actor.ex:67
-#: lib/graphql/resolvers/person.ex:242
+#: lib/graphql/resolvers/person.ex:244
 #, elixir-autogen, elixir-format
 msgid "Profile not found"
 msgstr "Профиль не найден"
@@ -519,8 +514,8 @@ msgstr "Профиль не найден"
 msgid "Report not found"
 msgstr "Отчёт не найден"
 
-#: lib/graphql/resolvers/resource.ex:172
-#: lib/graphql/resolvers/resource.ex:199
+#: lib/graphql/resolvers/resource.ex:174
+#: lib/graphql/resolvers/resource.ex:201
 #, elixir-autogen, elixir-format
 msgid "Resource doesn't exist"
 msgstr "Ресурс не существует"
@@ -532,7 +527,7 @@ msgstr ""
 "В мероприятии уже зарегистрировано максимально разрешённое количество "
 "участников"
 
-#: lib/graphql/resolvers/participant.ex:282
+#: lib/graphql/resolvers/participant.ex:289
 #, elixir-autogen, elixir-format
 msgid "This token is invalid"
 msgstr "Этот токен недействителен"
@@ -566,7 +561,7 @@ msgstr "Токен не является допустимым UUID"
 msgid "User not found"
 msgstr "Пользователь не найден"
 
-#: lib/graphql/resolvers/person.ex:333
+#: lib/graphql/resolvers/person.ex:335
 #, elixir-autogen, elixir-format
 msgid "You already have a profile for this user"
 msgstr "У вас уже есть профиль для этого пользователя"
@@ -588,7 +583,7 @@ msgstr "Вы не состоите в этой группе"
 msgid "You are not a moderator or admin for this group"
 msgstr "Вы не модератор и не администратор этой группы"
 
-#: lib/graphql/resolvers/comment.ex:80
+#: lib/graphql/resolvers/comment.ex:74
 #, elixir-autogen, elixir-format
 msgid "You are not allowed to create a comment if not connected"
 msgstr "Вы не можете создать комментарий при отсутствии подключения"
@@ -598,7 +593,7 @@ msgstr "Вы не можете создать комментарий при от
 msgid "You are not allowed to create a feed token if not connected"
 msgstr "Вы не можете создать токен ленты при отсутствии подключения"
 
-#: lib/graphql/resolvers/comment.ex:155
+#: lib/graphql/resolvers/comment.ex:161
 #, elixir-autogen, elixir-format
 msgid "You are not allowed to delete a comment if not connected"
 msgstr "Вы не можете удалить комментарий при отсутствии подключения"
@@ -608,7 +603,7 @@ msgstr "Вы не можете удалить комментарий при от
 msgid "You are not allowed to delete a feed token if not connected"
 msgstr "Вы не можете удалить токен ленты при отсутствии подключения"
 
-#: lib/graphql/resolvers/comment.ex:114
+#: lib/graphql/resolvers/comment.ex:120
 #, elixir-autogen, elixir-format
 msgid "You are not allowed to update a comment if not connected"
 msgstr "Вы не можете обновить комментарий при отсутствии подключения"
@@ -628,12 +623,12 @@ msgstr ""
 "Вы не можете назначить себе роль с меньшими правами для этой группы, потому "
 "что вы единственный администратор"
 
-#: lib/graphql/resolvers/comment.ex:143
+#: lib/graphql/resolvers/comment.ex:149
 #, elixir-autogen, elixir-format
 msgid "You cannot delete this comment"
 msgstr "Вы не можете удалить этот комментарий"
 
-#: lib/graphql/resolvers/event.ex:403
+#: lib/graphql/resolvers/event.ex:430
 #, elixir-autogen, elixir-format
 msgid "You cannot delete this event"
 msgstr "Вы не можете удалить это мероприятие"
@@ -673,20 +668,20 @@ msgstr ""
 msgid "You need to be logged-in and a moderator to view a report"
 msgstr "Для просмотра отчёта вы должны войти в систему и иметь права модератора"
 
-#: lib/graphql/resolvers/admin.ex:252
+#: lib/graphql/resolvers/admin.ex:258
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in and an administrator to access admin settings"
 msgstr ""
 "Для доступа в админку вы должны войти в систему и иметь права администратора"
 
-#: lib/graphql/resolvers/admin.ex:236
+#: lib/graphql/resolvers/admin.ex:242
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in and an administrator to access dashboard statistics"
 msgstr ""
 "Для доступа к панели со статистикой вы должны войти в систему и иметь права "
 "администратора"
 
-#: lib/graphql/resolvers/admin.ex:278
+#: lib/graphql/resolvers/admin.ex:283
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in and an administrator to save admin settings"
 msgstr ""
@@ -698,12 +693,12 @@ msgstr ""
 msgid "You need to be logged-in to access discussions"
 msgstr "Вам необходимо войти в систему, чтобы получить доступ к обсуждениям"
 
-#: lib/graphql/resolvers/resource.ex:96
+#: lib/graphql/resolvers/resource.ex:98
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to access resources"
 msgstr "Вам необходимо войти в систему, чтобы получить доступ к ресурсам"
 
-#: lib/graphql/resolvers/event.ex:313
+#: lib/graphql/resolvers/event.ex:321
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to create events"
 msgstr ""
@@ -721,13 +716,13 @@ msgid "You need to be logged-in to create reports"
 msgstr ""
 "Вам необходимо войти в систему, чтобы иметь возможность создавать отчёты"
 
-#: lib/graphql/resolvers/resource.ex:140
+#: lib/graphql/resolvers/resource.ex:142
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to create resources"
 msgstr ""
 "Вам необходимо войти в систему, чтобы иметь возможность создавать ресурсы"
 
-#: lib/graphql/resolvers/event.ex:412
+#: lib/graphql/resolvers/event.ex:439
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to delete an event"
 msgstr ""
@@ -739,7 +734,7 @@ msgid "You need to be logged-in to delete posts"
 msgstr ""
 "Вам необходимо войти в систему, чтобы иметь возможность удалять публикации"
 
-#: lib/graphql/resolvers/resource.ex:207
+#: lib/graphql/resolvers/resource.ex:209
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to delete resources"
 msgstr "Вам необходимо войти в систему, чтобы иметь возможность удалять ресурсы"
@@ -754,7 +749,7 @@ msgstr "Вам необходимо войти в систему, чтобы п
 msgid "You need to be logged-in to leave an event"
 msgstr "Вам необходимо войти в систему, чтобы покинуть мероприятие"
 
-#: lib/graphql/resolvers/event.ex:369
+#: lib/graphql/resolvers/event.ex:396
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to update an event"
 msgstr "Вам необходимо войти в систему, чтобы обновить мероприятие"
@@ -765,20 +760,20 @@ msgid "You need to be logged-in to update posts"
 msgstr ""
 "Вам необходимо войти в систему, чтобы иметь возможность обновлять публикации"
 
-#: lib/graphql/resolvers/resource.ex:177
+#: lib/graphql/resolvers/resource.ex:179
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to update resources"
 msgstr ""
 "Вам необходимо войти в систему, чтобы иметь возможность обновлять ресурсы"
 
-#: lib/graphql/resolvers/resource.ex:236
+#: lib/graphql/resolvers/resource.ex:233
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to view a resource preview"
 msgstr ""
 "Вам необходимо войти в систему, чтобы получить доступ к предпросмотру "
 "ресурсов"
 
-#: lib/graphql/resolvers/resource.ex:132
+#: lib/graphql/resolvers/resource.ex:134
 #, elixir-autogen, elixir-format
 msgid "Parent resource doesn't belong to this group"
 msgstr "Родительский ресурс не принадлежит к этой группе"
@@ -865,12 +860,12 @@ msgstr "Файл не имеет разрешенного MIME-типа."
 msgid "Profile is not administrator for the group"
 msgstr "Профиль не является администратором группы"
 
-#: lib/graphql/resolvers/event.ex:358
+#: lib/graphql/resolvers/event.ex:385
 #, elixir-autogen, elixir-format
 msgid "You can't edit this event."
 msgstr "Вы не можете редактировать это мероприятие."
 
-#: lib/graphql/resolvers/event.ex:361
+#: lib/graphql/resolvers/event.ex:388
 #, elixir-autogen, elixir-format
 msgid "You can't attribute this event to this profile."
 msgstr "Вы не можете назначить это мероприятие этому профилю."
@@ -890,7 +885,7 @@ msgstr "Этот участник уже был отклонён."
 msgid "You don't have the right to remove this member."
 msgstr "У вас нет прав на удаление этого участника."
 
-#: lib/mobilizon/actors/actor.ex:377
+#: lib/mobilizon/actors/actor.ex:378
 #, elixir-autogen, elixir-format
 msgid "This username is already taken."
 msgstr "Это имя пользователя уже занято."
@@ -901,7 +896,7 @@ msgid "You must provide either an ID or a slug to access a discussion"
 msgstr ""
 "Вы должны предоставить либо ID, либо короткое имя для доступа к обсуждению"
 
-#: lib/graphql/resolvers/event.ex:275
+#: lib/graphql/resolvers/event.ex:276
 #, elixir-autogen, elixir-format
 msgid "Organizer profile is not owned by the user"
 msgstr "Профиль организатора не принадлежит пользователю"
@@ -913,43 +908,43 @@ msgstr "Указанный ID профиля не является аноним
 
 #: lib/graphql/resolvers/group.ex:181
 #: lib/graphql/resolvers/group.ex:223
-#: lib/graphql/resolvers/person.ex:157
-#: lib/graphql/resolvers/person.ex:191
-#: lib/graphql/resolvers/person.ex:324
+#: lib/graphql/resolvers/person.ex:159
+#: lib/graphql/resolvers/person.ex:193
+#: lib/graphql/resolvers/person.ex:326
 #, elixir-autogen, elixir-format
 msgid "The provided picture is too heavy"
 msgstr "Предоставленное изображение слишком большое"
 
-#: lib/graphql/resolvers/resource.ex:129
+#: lib/graphql/resolvers/resource.ex:131
 #, elixir-autogen, elixir-format
 msgid "Error while creating resource"
 msgstr "При создании ресурса произошла ошибка"
 
-#: lib/graphql/resolvers/user.ex:537
+#: lib/graphql/resolvers/user.ex:566
 #, elixir-autogen, elixir-format
 msgid "Invalid activation token"
 msgstr "Неверный токен активации"
 
-#: lib/graphql/resolvers/resource.ex:226
+#: lib/graphql/resolvers/resource.ex:228
 #, elixir-autogen, elixir-format
 msgid "Unable to fetch resource details from this URL."
 msgstr "Невозможно получить сведения о ресурсе по этому URL-адресу."
 
 #: lib/graphql/resolvers/event.ex:165
 #: lib/graphql/resolvers/participant.ex:253
-#: lib/graphql/resolvers/participant.ex:328
+#: lib/graphql/resolvers/participant.ex:335
 #, elixir-autogen, elixir-format
 msgid "Provided profile doesn't have moderator permissions on this event"
 msgstr "Указанный профиль модератора не имеет доступа к этому событию"
 
-#: lib/graphql/resolvers/event.ex:286
+#: lib/graphql/resolvers/event.ex:294
 #, elixir-autogen, elixir-format
 msgid "Organizer profile doesn't have permission to create an event on behalf of this group"
 msgstr ""
 "В профиле организатора нет разрешения на создание мероприятия от имени этой "
 "группы"
 
-#: lib/graphql/resolvers/event.ex:349
+#: lib/graphql/resolvers/event.ex:369
 #, elixir-autogen, elixir-format
 msgid "This profile doesn't have permission to update an event on behalf of this group"
 msgstr ""
@@ -962,7 +957,7 @@ msgstr ""
 "Ваш адрес электронной почты был отклонен при регистрации или используется "
 "запрещенная служба электронной почты"
 
-#: lib/graphql/resolvers/comment.ex:150
+#: lib/graphql/resolvers/comment.ex:156
 #, elixir-autogen, elixir-format
 msgid "Comment not found"
 msgstr "Мероприятие не найдено"
@@ -972,12 +967,12 @@ msgstr "Мероприятие не найдено"
 msgid "Error while creating a discussion"
 msgstr "При создании ресурса произошла ошибка"
 
-#: lib/graphql/resolvers/user.ex:658
+#: lib/graphql/resolvers/user.ex:687
 #, elixir-autogen, elixir-format
 msgid "Error while updating locale"
 msgstr "При обновлении отчёта произошла ошибка"
 
-#: lib/graphql/resolvers/person.ex:327
+#: lib/graphql/resolvers/person.ex:329
 #, elixir-autogen, elixir-format
 msgid "Error while uploading pictures"
 msgstr "При обновлении отчёта произошла ошибка"
@@ -992,13 +987,13 @@ msgstr "Не удалось покинуть мероприятие"
 msgid "Failed to update the group"
 msgstr "Не удалось обновить группу"
 
-#: lib/graphql/resolvers/admin.ex:333
-#: lib/graphql/resolvers/user.ex:501
+#: lib/graphql/resolvers/admin.ex:357
+#: lib/graphql/resolvers/user.ex:547
 #, elixir-autogen, elixir-format
 msgid "Failed to update user email"
 msgstr "Не удалось обновить электронную почту пользователя"
 
-#: lib/graphql/resolvers/user.ex:533
+#: lib/graphql/resolvers/user.ex:562
 #, elixir-autogen, elixir-format
 msgid "Failed to validate user email"
 msgstr "Невозможно проверить пользователя"
@@ -1008,37 +1003,37 @@ msgstr "Невозможно проверить пользователя"
 msgid "The anonymous actor ID is invalid"
 msgstr "ID анонимного актора недействителен"
 
-#: lib/graphql/resolvers/resource.ex:165
+#: lib/graphql/resolvers/resource.ex:167
 #, elixir-autogen, elixir-format
 msgid "Unknown error while updating resource"
 msgstr "Неизвестная ошибка при обновлении ресурса"
 
-#: lib/graphql/resolvers/comment.ex:105
+#: lib/graphql/resolvers/comment.ex:111
 #, elixir-autogen, elixir-format
 msgid "You are not the comment creator"
 msgstr "Вы не автор комментария"
 
-#: lib/graphql/resolvers/user.ex:458
+#: lib/graphql/resolvers/user.ex:471
 #, elixir-autogen, elixir-format
 msgid "You cannot change your password."
 msgstr "Вы не можете изменить свой пароль."
 
-#: lib/graphql/resolvers/participant.ex:321
+#: lib/graphql/resolvers/participant.ex:328
 #, elixir-autogen, elixir-format
 msgid "Format not supported"
 msgstr "Формат не поддерживается"
 
-#: lib/graphql/resolvers/participant.ex:305
+#: lib/graphql/resolvers/participant.ex:312
 #, elixir-autogen, elixir-format
 msgid "A dependency needed to export to %{format} is not installed"
 msgstr "Зависимость, необходимая для экспорта в %{format}, не установлена"
 
-#: lib/graphql/resolvers/participant.ex:313
+#: lib/graphql/resolvers/participant.ex:320
 #, elixir-autogen, elixir-format
 msgid "An error occured while saving export"
 msgstr "Произошла ошибка при сохранении экспорта"
 
-#: lib/web/controllers/export_controller.ex:30
+#: lib/web/controllers/export_controller.ex:32
 #, elixir-autogen, elixir-format
 msgid "Export to format %{format} is not enabled on this instance"
 msgstr "Экспорт в формат %{format} не включен на этом узле"
@@ -1048,17 +1043,17 @@ msgstr "Экспорт в формат %{format} не включен на это
 msgid "Only admins can create groups"
 msgstr "Только администраторы могут создавать группы"
 
-#: lib/graphql/resolvers/event.ex:279
+#: lib/graphql/resolvers/event.ex:280
 #, elixir-autogen, elixir-format
 msgid "Only groups can create events"
 msgstr "Только группы могут создавать мероприятия"
 
-#: lib/graphql/resolvers/event.ex:305
+#: lib/graphql/resolvers/event.ex:313
 #, elixir-autogen, elixir-format
 msgid "Unknown error while creating event"
 msgstr "Неизвестная ошибка при обновлении ресурса"
 
-#: lib/graphql/resolvers/user.ex:514
+#: lib/graphql/resolvers/user.ex:498
 #, elixir-autogen, elixir-format
 msgid "User cannot change email"
 msgstr "Пользователь не может изменить адрес электронной почты"
@@ -1073,12 +1068,12 @@ msgstr "Отслеживание не соответствует вашей уч
 msgid "Follow not found"
 msgstr "Отслеживание не найдено"
 
-#: lib/graphql/resolvers/user.ex:379
+#: lib/graphql/resolvers/user.ex:392
 #, elixir-autogen, elixir-format
 msgid "Profile with username %{username} not found"
 msgstr "Не найдено человека с именем пользователя %{username}"
 
-#: lib/graphql/resolvers/user.ex:374
+#: lib/graphql/resolvers/user.ex:387
 #, elixir-autogen, elixir-format
 msgid "This profile does not belong to you"
 msgstr "Этот профиль не принадлежит вам"
@@ -1123,22 +1118,22 @@ msgstr "Вы должны войти в систему, чтобы удалит
 msgid "Your email seems to be using an invalid format"
 msgstr "Ваш адрес электронной почты, , похоже, использует неправильный формат"
 
-#: lib/graphql/resolvers/admin.ex:382
+#: lib/graphql/resolvers/admin.ex:399
 #, elixir-autogen, elixir-format
 msgid "Can't confirm an already confirmed user"
 msgstr "Невозможно подтвердить уже подтвержденного пользователя"
 
-#: lib/graphql/resolvers/admin.ex:386
+#: lib/graphql/resolvers/admin.ex:403
 #, elixir-autogen, elixir-format
 msgid "Deconfirming users is not supported"
 msgstr "Отмена подтверждения пользователей не поддерживается"
 
-#: lib/graphql/resolvers/admin.ex:358
+#: lib/graphql/resolvers/admin.ex:375
 #, elixir-autogen, elixir-format
 msgid "The new role must be different"
 msgstr "Новая роль должна быть другой"
 
-#: lib/graphql/resolvers/admin.ex:309
+#: lib/graphql/resolvers/admin.ex:314
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in and an administrator to edit an user's details"
 msgstr ""
@@ -1150,28 +1145,28 @@ msgstr ""
 msgid "A profile or group with that name already exists"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:519
+#: lib/graphql/resolvers/admin.ex:542
 #, elixir-autogen, elixir-format
 msgid "Unable to find an instance to follow at this address"
 msgstr ""
 
-#: lib/mobilizon/actors/actor.ex:396
+#: lib/mobilizon/actors/actor.ex:397
 #, elixir-autogen, elixir-format
 msgid "Username must only contain alphanumeric lowercased characters and underscores."
 msgstr ""
 
 #: lib/graphql/resolvers/user.ex:303
-#: lib/graphql/resolvers/user.ex:326
+#: lib/graphql/resolvers/user.ex:333
 #, elixir-autogen, elixir-format, fuzzy
 msgid "This email doesn't seem to be valid"
 msgstr "Новый адрес электронной почты недействителен"
 
-#: lib/graphql/resolvers/comment.ex:65
+#: lib/graphql/resolvers/comment.ex:59
 #, elixir-autogen, elixir-format
 msgid "This comment was detected as spam."
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:293
+#: lib/graphql/resolvers/event.ex:301
 #, elixir-autogen, elixir-format
 msgid "This event was detected as spam."
 msgstr ""
@@ -1192,7 +1187,7 @@ msgstr ""
 msgid "You need to be a moderator or an administrator to create a note on a report"
 msgstr ""
 
-#: lib/graphql/resolvers/person.ex:330
+#: lib/graphql/resolvers/person.ex:332
 #, elixir-autogen, elixir-format
 msgid "Your profile was detected as spam."
 msgstr ""
@@ -1202,7 +1197,7 @@ msgstr ""
 msgid "Your registration has been detected as spam and cannot be processed."
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:86
+#: lib/web/controllers/application_controller.ex:88
 #, elixir-autogen, elixir-format
 msgid "All of name, scope and redirect_uri parameters are required to create an application"
 msgstr ""
@@ -1217,171 +1212,227 @@ msgstr ""
 msgid "Application token not found"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:89
+#: lib/graphql/resolvers/application.ex:90
 #, elixir-autogen, elixir-format, fuzzy
 msgid "Error while revoking token"
 msgstr "При сохранении отчёта произошла ошибка"
 
-#: lib/web/controllers/application_controller.ex:59
+#: lib/web/controllers/application_controller.ex:61
 #, elixir-autogen, elixir-format
 msgid "Impossible to create application."
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:356
+#: lib/web/controllers/application_controller.ex:358
 #, elixir-autogen, elixir-format
 msgid "Incorrect parameters sent. You need to provide at least the grant_type and client_id parameters, depending on the grant type being used."
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:329
+#: lib/web/controllers/application_controller.ex:331
 #, elixir-autogen, elixir-format
 msgid "Invalid client credentials provided"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:337
+#: lib/web/controllers/application_controller.ex:339
 #, elixir-autogen, elixir-format
 msgid "Invalid refresh token provided"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:170
-#: lib/web/controllers/application_controller.ex:401
+#: lib/web/controllers/application_controller.ex:172
+#: lib/web/controllers/application_controller.ex:403
 #, elixir-autogen, elixir-format
 msgid "No application was found with this client_id"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:37
+#: lib/graphql/resolvers/application.ex:38
 #, elixir-autogen, elixir-format
 msgid "No application with this client_id was found"
 msgstr ""
 
-#: lib/graphql/authorization.ex:80
+#: lib/graphql/authorization.ex:81
 #, elixir-autogen, elixir-format
 msgid "Not authorized to access field %{field}"
 msgstr ""
 
-#: lib/graphql/authorization.ex:70
-#: lib/graphql/authorization.ex:75
+#: lib/graphql/authorization.ex:71
+#: lib/graphql/authorization.ex:76
 #, elixir-autogen, elixir-format
 msgid "Not authorized to access object %{object}"
 msgstr ""
 
-#: lib/graphql/authorization.ex:63
+#: lib/graphql/authorization.ex:64
 #, elixir-autogen, elixir-format
 msgid "Not authorized to access this %{object_type}"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:279
+#: lib/web/controllers/application_controller.ex:281
 #, elixir-autogen, elixir-format
 msgid "Please slow down the rate of your requests"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:267
+#: lib/web/controllers/application_controller.ex:269
 #, elixir-autogen, elixir-format
 msgid "The authorization request is still pending"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:249
+#: lib/web/controllers/application_controller.ex:251
 #, elixir-autogen, elixir-format
 msgid "The client_id provided or the device_code associated is invalid"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:133
+#: lib/graphql/resolvers/application.ex:139
 #, elixir-autogen, elixir-format
 msgid "The device user code was not provided before approving the application"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:304
+#: lib/web/controllers/application_controller.ex:306
 #, elixir-autogen, elixir-format
 msgid "The given device_code has expired"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:44
+#: lib/graphql/resolvers/application.ex:45
 #, elixir-autogen, elixir-format
 msgid "The given redirect_uri is not in the list of allowed redirect URIs"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:158
+#: lib/web/controllers/application_controller.ex:160
 #, elixir-autogen, elixir-format
 msgid "The given scope is not in the list of the app declared scopes"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:109
-#: lib/graphql/resolvers/application.ex:146
+#: lib/graphql/resolvers/application.ex:112
+#: lib/graphql/resolvers/application.ex:154
 #, elixir-autogen, elixir-format
 msgid "The given user code has expired"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:112
-#: lib/graphql/resolvers/application.ex:140
+#: lib/graphql/resolvers/application.ex:118
+#: lib/graphql/resolvers/application.ex:146
 #, elixir-autogen, elixir-format
 msgid "The given user code is invalid"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:411
+#: lib/web/controllers/application_controller.ex:413
 #, elixir-autogen, elixir-format
 msgid "The provided client_id does not match the provided code"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:414
+#: lib/web/controllers/application_controller.ex:416
 #, elixir-autogen, elixir-format
 msgid "The provided client_secret is invalid"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:407
+#: lib/web/controllers/application_controller.ex:409
 #, elixir-autogen, elixir-format
 msgid "The provided code is invalid or expired"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:418
+#: lib/web/controllers/application_controller.ex:420
 #, elixir-autogen, elixir-format
 msgid "The provided scope is invalid or not included in the app declared scopes"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:45
+#: lib/web/controllers/application_controller.ex:47
 #, elixir-autogen, elixir-format
 msgid "The scope parameter is not a space separated list of valid scopes"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:292
+#: lib/web/controllers/application_controller.ex:294
 #, elixir-autogen, elixir-format
 msgid "The user rejected the requested authorization"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:404
+#: lib/web/controllers/application_controller.ex:406
 #, elixir-autogen, elixir-format
 msgid "This redirect URI is not allowed"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:381
+#: lib/web/controllers/application_controller.ex:383
 #, elixir-autogen, elixir-format, fuzzy
 msgid "Token not found"
 msgstr "Мероприятие не найдено"
 
-#: lib/web/controllers/application_controller.ex:72
+#: lib/web/controllers/application_controller.ex:74
 #, elixir-autogen, elixir-format
 msgid "Too many requests"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:184
+#: lib/web/controllers/application_controller.ex:186
 #, elixir-autogen, elixir-format
 msgid "Unable to produce device code"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:373
+#: lib/web/controllers/application_controller.ex:375
 #, elixir-autogen, elixir-format
 msgid "Unable to revoke token"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:198
+#: lib/web/controllers/application_controller.ex:200
 #, elixir-autogen, elixir-format
 msgid "You need to pass both client_id and scope as parameters to obtain a device code"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:136
+#: lib/web/controllers/application_controller.ex:138
 #, elixir-autogen, elixir-format
 msgid "You need to provide a valid redirect_uri to autorize an application"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:126
+#: lib/web/controllers/application_controller.ex:128
 #, elixir-autogen, elixir-format
 msgid "You need to specify client_id, redirect_uri, scope and state to autorize an application"
 msgstr ""
+
+#: lib/graphql/resolvers/user.ex:306
+#, elixir-autogen, elixir-format
+msgid "Couldn't send an email. Internal error."
+msgstr ""
+
+#: lib/graphql/resolvers/participant.ex:286
+#, elixir-autogen, elixir-format
+msgid "Participation is already confirmed"
+msgstr ""
+
+#: lib/graphql/resolvers/participant.ex:283
+#, elixir-autogen, elixir-format
+msgid "Participation is confirmed but not approved yet by an organizer"
+msgstr ""
+
+#: lib/graphql/resolvers/event.ex:287
+#: lib/graphql/resolvers/event.ex:376
+#, elixir-autogen, elixir-format
+msgid "Providing external registration is not allowed"
+msgstr ""
+
+#: lib/graphql/resolvers/push_subscription.ex:48
+#, elixir-autogen, elixir-format
+msgid "The same push subscription has already been registered"
+msgstr ""
+
+#: lib/graphql/resolvers/admin.ex:536
+#, elixir-autogen, elixir-format
+msgid "This instance is pending follow approval"
+msgstr ""
+
+#: lib/graphql/schema/custom/timezone.ex:23
+#, elixir-autogen, elixir-format
+msgid "Timezone ID %{timezone} is invalid"
+msgstr ""
+
+#: lib/graphql/resolvers/admin.ex:539
+#, elixir-autogen, elixir-format, fuzzy
+msgid "You are already following this instance"
+msgstr "Вы уже подписаны на эту группу"
+
+#: lib/graphql/resolvers/user.ex:310
+#, elixir-autogen, elixir-format, fuzzy
+msgid "You requested again a confirmation email too soon. Please try again in a few minutes"
+msgstr "Вы слишком рано запросили новое письмо с подтверждением"
+
+#: lib/graphql/resolvers/user.ex:341
+#, elixir-autogen, elixir-format
+msgid "You requested again a password reset email too soon. Please try again in a few minutes"
+msgstr ""
+
+#: lib/graphql/resolvers/user.ex:368
+#, elixir-autogen, elixir-format
+msgid "The token you provided is invalid. Make sure that the URL is exactly the one provided inside the email you got."
+msgstr ""
diff --git a/priv/gettext/sv/LC_MESSAGES/activity.po b/priv/gettext/sv/LC_MESSAGES/activity.po
index 73de592464fd05fdae4ef5ad3f7d6bcaaf552fde..5288cde94492a6ac2c94bfd28af2831feeed4f95 100644
--- a/priv/gettext/sv/LC_MESSAGES/activity.po
+++ b/priv/gettext/sv/LC_MESSAGES/activity.po
@@ -474,3 +474,15 @@ msgstr "%{profile} svarade på diskussionen %{discussion} i gruppen %{group}."
 #, elixir-autogen, elixir-format
 msgid "%{profile} approved the member %{member}."
 msgstr "%{profile} lade till medlemmen %{member}."
+
+#: lib/service/activity/renderer/event.ex:74
+#: lib/web/templates/email/activity/_event_activity_item.html.heex:55
+#: lib/web/templates/email/activity/_event_activity_item.text.eex:31
+#, elixir-autogen, elixir-format
+msgid "%{profile} joined your event %{event}."
+msgstr ""
+
+#: lib/web/views/email_view.ex:45
+#, elixir-autogen, elixir-format
+msgid "An anonymous profile"
+msgstr ""
diff --git a/priv/gettext/sv/LC_MESSAGES/default.po b/priv/gettext/sv/LC_MESSAGES/default.po
index 8ab7133194c0d53ec457d9bb29e4b4b69a90fd17..74608b16d5b31f08e9cb2a66be521d70bd4f331d 100644
--- a/priv/gettext/sv/LC_MESSAGES/default.po
+++ b/priv/gettext/sv/LC_MESSAGES/default.po
@@ -22,7 +22,7 @@ msgstr ""
 "lösenord kommer inte ändras förrän du har öppnat länken nedan och skapat ett "
 "nytt."
 
-#: lib/web/templates/email/report.html.heex:120
+#: lib/web/templates/email/report.html.heex:121
 #, elixir-autogen, elixir-format
 msgid "%{title} by %{creator}"
 msgstr "%{title} av %{creator}"
@@ -38,23 +38,17 @@ msgstr "Aktivera mitt konto"
 msgid "Ask the community on Framacolibri"
 msgstr "Fråga människorna på Framacolibri"
 
-#: lib/web/templates/email/report.text.eex:15
+#: lib/web/templates/email/report.text.eex:17
 #, elixir-autogen, elixir-format
 msgid "Comments"
 msgstr "Kommentarer"
 
-#: lib/web/templates/email/report.html.heex:115
-#: lib/web/templates/email/report.text.eex:11
-#, elixir-autogen, elixir-format
-msgid "Event"
-msgstr "Evenemang"
-
 #: lib/web/email/user.ex:49
 #, elixir-autogen, elixir-format
 msgid "Instructions to reset your password on %{instance}"
 msgstr "Instruktioner för att återställa ditt lösenord på %{instance}"
 
-#: lib/web/templates/email/report.text.eex:21
+#: lib/web/templates/email/report.text.eex:23
 #, elixir-autogen, elixir-format
 msgid "Reason"
 msgstr "Motivering"
@@ -344,12 +338,12 @@ msgctxt "terms"
 msgid "What information do we collect?"
 msgstr "Vilken information samlar vi in?"
 
-#: lib/web/email/user.ex:182
+#: lib/web/email/user.ex:188
 #, elixir-autogen, elixir-format
 msgid "Mobilizon on %{instance}: confirm your email address"
 msgstr "Mobilizon på %{instance}: bekräfta din e-postadress"
 
-#: lib/web/email/user.ex:159
+#: lib/web/email/user.ex:165
 #, elixir-autogen, elixir-format
 msgid "Mobilizon on %{instance}: email changed"
 msgstr "Mobilizon på %{instance}: e-postadressen har ändrats"
@@ -860,7 +854,7 @@ msgstr ""
 msgid "Event update!"
 msgstr "Evenemang uppdaterat!"
 
-#: lib/web/templates/email/report.html.heex:155
+#: lib/web/templates/email/report.html.heex:158
 #, elixir-autogen, elixir-format
 msgid "Flagged comments"
 msgstr ""
@@ -944,7 +938,7 @@ msgstr "Snart framme!"
 msgid "New email confirmation"
 msgstr ""
 
-#: lib/web/templates/email/report.html.heex:191
+#: lib/web/templates/email/report.html.heex:194
 #, elixir-autogen, elixir-format
 msgid "Reasons for report"
 msgstr ""
@@ -999,12 +993,12 @@ msgstr "Organisatörerna har tyvärr gjort avslag på ditt deltagande."
 msgid "Verify your email address"
 msgstr ""
 
-#: lib/web/templates/email/report.html.heex:232
+#: lib/web/templates/email/report.html.heex:235
 #, elixir-autogen, elixir-format
 msgid "View report"
 msgstr "Visa anmälan"
 
-#: lib/web/templates/email/report.text.eex:24
+#: lib/web/templates/email/report.text.eex:26
 #, elixir-autogen, elixir-format
 msgid "View report:"
 msgstr "Visa anmälan:"
@@ -1102,12 +1096,6 @@ msgstr ""
 msgid "As this group was located on another instance, it will continue to work for other instances than this one."
 msgstr ""
 
-#: lib/web/templates/email/group_suspension.html.heex:67
-#: lib/web/templates/email/group_suspension.text.eex:5
-#, elixir-autogen, elixir-format
-msgid "As this group was located on this instance, all of it's data has been irretrievably deleted."
-msgstr ""
-
 #: lib/web/templates/email/group_suspension.html.heex:18
 #: lib/web/templates/email/group_suspension.text.eex:1
 #, elixir-autogen, elixir-format
@@ -1119,7 +1107,7 @@ msgstr ""
 msgid "Your instance's moderation team has decided to suspend %{group_name} (%{group_address}). You are no longer a member of this group."
 msgstr ""
 
-#: lib/web/email/group.ex:107
+#: lib/web/email/group.ex:108
 #, elixir-autogen, elixir-format
 msgid "The group %{group} has been suspended on %{instance}"
 msgstr ""
@@ -1404,16 +1392,6 @@ msgstr ""
 msgid "Public feed for %{instance}"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:350
-#, elixir-autogen, elixir-format
-msgid "The password you have choosen is too short. Please make sure your password contains at least 6 charaters."
-msgstr ""
-
-#: lib/graphql/resolvers/user.ex:356
-#, elixir-autogen, elixir-format
-msgid "The token you provided is invalid. Make sure that the URL is exactly the one provided inside the email you got."
-msgstr ""
-
 #: lib/web/email/actor.ex:43
 #, elixir-autogen, elixir-format
 msgid "Your participation to %{event} has been cancelled!"
@@ -1437,63 +1415,63 @@ msgid "Your participation to %{event} on %{instance} has been cancelled!"
 msgstr "Din förfrågan om att få delta i evenemanget %{title} har godkännts"
 
 #. File name template for exported list of participants. Should NOT contain spaces. Make sure the output is going to be something standardized that is acceptable as a file name on most systems.
-#: lib/service/export/participants/csv.ex:81
+#: lib/service/export/participants/csv.ex:97
 #: lib/service/export/participants/ods.ex:86
 #: lib/service/export/participants/pdf.ex:96
 #, elixir-autogen, elixir-format
 msgid "%{event}_participants"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:61
+#: lib/service/export/participants/common.ex:66
 #, elixir-autogen, elixir-format
 msgid "Participant message"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:61
+#: lib/service/export/participants/common.ex:63
 #, elixir-autogen, elixir-format
 msgid "Participant name"
 msgstr "Ditt deltagande har godkänts"
 
-#: lib/service/export/participants/common.ex:61
+#: lib/service/export/participants/common.ex:64
 #, elixir-autogen, elixir-format
 msgid "Participant status"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:52
+#: lib/service/export/participants/common.ex:53
 #: lib/web/templates/email/admin/_role.html.heex:3
 #: lib/web/templates/email/admin/_role.text.eex:1
 #, elixir-autogen, elixir-format
 msgid "Administrator"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:55
+#: lib/service/export/participants/common.ex:56
 #, elixir-autogen, elixir-format
 msgid "Creator"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:49
+#: lib/service/export/participants/common.ex:50
 #: lib/web/templates/email/admin/_role.html.heex:5
 #: lib/web/templates/email/admin/_role.text.eex:1
 #, elixir-autogen, elixir-format
 msgid "Moderator"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:37
+#: lib/service/export/participants/common.ex:38
 #, elixir-autogen, elixir-format
 msgid "Not approved"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:40
+#: lib/service/export/participants/common.ex:41
 #, elixir-autogen, elixir-format
 msgid "Not confirmed"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:46
+#: lib/service/export/participants/common.ex:47
 #, elixir-autogen, elixir-format
 msgid "Participant"
 msgstr "Ditt deltagande har godkänts"
 
-#: lib/service/export/participants/common.ex:43
+#: lib/service/export/participants/common.ex:44
 #, elixir-autogen, elixir-format
 msgid "Rejected"
 msgstr ""
@@ -1518,7 +1496,7 @@ msgstr ""
 msgid "Participants for %{event}"
 msgstr "Ditt deltagande har godkänts"
 
-#: lib/service/export/participants/common.ex:88
+#: lib/service/export/participants/common.ex:95
 #, elixir-autogen, elixir-format
 msgid "Anonymous participant"
 msgstr ""
@@ -1637,7 +1615,7 @@ msgstr "Ditt deltagande har godkänts"
 msgid "Title: %{title}"
 msgstr ""
 
-#: lib/web/email/group.ex:46
+#: lib/web/email/group.ex:47
 #, elixir-autogen, elixir-format
 msgid "📅 Just scheduled by %{group}: %{event}"
 msgstr ""
@@ -2050,3 +2028,24 @@ msgstr ""
 #, elixir-autogen, elixir-format
 msgid "Until next time!"
 msgstr ""
+
+#: lib/web/templates/email/group_suspension.html.heex:67
+#: lib/web/templates/email/group_suspension.text.eex:5
+#, elixir-autogen, elixir-format, fuzzy
+msgid "As this group was located on this instance, all of its data has been irretrievably deleted."
+msgstr ""
+
+#: lib/web/templates/email/report.text.eex:11
+#, elixir-autogen, elixir-format, fuzzy
+msgid "Events"
+msgstr "Evenemang"
+
+#: lib/web/templates/email/report.html.heex:115
+#, elixir-autogen, elixir-format, fuzzy
+msgid "Flagged events"
+msgstr ""
+
+#: lib/service/export/participants/common.ex:65
+#, elixir-autogen, elixir-format, fuzzy
+msgid "Participant registration date"
+msgstr ""
diff --git a/priv/gettext/sv/LC_MESSAGES/errors.po b/priv/gettext/sv/LC_MESSAGES/errors.po
index 88fde70190eb783fef27651f82fbfeba639d08ee..58d5451815a3f44dd237ba47d2d788982a13d822 100644
--- a/priv/gettext/sv/LC_MESSAGES/errors.po
+++ b/priv/gettext/sv/LC_MESSAGES/errors.po
@@ -110,7 +110,7 @@ msgstr "Den nuvarande profilen är inte med i den här gruppen"
 msgid "Current profile is not an administrator of the selected group"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:644
+#: lib/graphql/resolvers/user.ex:673
 #, elixir-autogen, elixir-format
 msgid "Error while saving user settings"
 msgstr "Ett fel uppstod när användarinställningarna skulle sparas"
@@ -153,8 +153,8 @@ msgstr ""
 msgid "No user to validate with this email was found"
 msgstr ""
 
-#: lib/graphql/resolvers/person.ex:337
-#: lib/graphql/resolvers/user.ex:330
+#: lib/graphql/resolvers/person.ex:339
+#: lib/graphql/resolvers/user.ex:337
 #, elixir-autogen, elixir-format
 msgid "No user with this email was found"
 msgstr ""
@@ -162,12 +162,12 @@ msgstr ""
 #: lib/graphql/resolvers/feed_token.ex:28
 #: lib/graphql/resolvers/participant.ex:32
 #: lib/graphql/resolvers/participant.ex:210
-#: lib/graphql/resolvers/person.ex:245
-#: lib/graphql/resolvers/person.ex:376
-#: lib/graphql/resolvers/person.ex:412
-#: lib/graphql/resolvers/person.ex:419
-#: lib/graphql/resolvers/person.ex:448
-#: lib/graphql/resolvers/person.ex:463
+#: lib/graphql/resolvers/person.ex:247
+#: lib/graphql/resolvers/person.ex:378
+#: lib/graphql/resolvers/person.ex:414
+#: lib/graphql/resolvers/person.ex:421
+#: lib/graphql/resolvers/person.ex:450
+#: lib/graphql/resolvers/person.ex:465
 #, elixir-autogen, elixir-format
 msgid "Profile is not owned by authenticated user"
 msgstr ""
@@ -177,43 +177,44 @@ msgstr ""
 msgid "Registrations are not open"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:461
+#: lib/graphql/resolvers/user.ex:474
 #, elixir-autogen, elixir-format
 msgid "The current password is invalid"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:336
-#: lib/graphql/resolvers/user.ex:504
+#: lib/graphql/resolvers/admin.ex:334
+#: lib/graphql/resolvers/user.ex:527
 #, elixir-autogen, elixir-format
 msgid "The new email doesn't seem to be valid"
 msgstr "Den nya mejladressen verkar vara felaktig"
 
-#: lib/graphql/resolvers/admin.ex:339
-#: lib/graphql/resolvers/user.ex:507
+#: lib/graphql/resolvers/admin.ex:323
+#: lib/graphql/resolvers/user.ex:514
 #, elixir-autogen, elixir-format
 msgid "The new email must be different"
 msgstr "Den nya mejladressen får inte vara samma som den tidigare"
 
-#: lib/graphql/resolvers/user.ex:464
+#: lib/graphql/resolvers/user.ex:477
 #, elixir-autogen, elixir-format
 msgid "The new password must be different"
 msgstr "Det nya lösenordet får inte vara samma som det tidigare"
 
-#: lib/graphql/resolvers/user.ex:511
-#: lib/graphql/resolvers/user.ex:573
-#: lib/graphql/resolvers/user.ex:576
+#: lib/graphql/resolvers/user.ex:518
+#: lib/graphql/resolvers/user.ex:602
+#: lib/graphql/resolvers/user.ex:605
 #, elixir-autogen, elixir-format
 msgid "The password provided is invalid"
 msgstr "Det angivna lösenordet är felaktigt"
 
-#: lib/graphql/resolvers/user.ex:468
+#: lib/graphql/resolvers/user.ex:361
+#: lib/graphql/resolvers/user.ex:481
 #, elixir-autogen, elixir-format
 msgid "The password you have chosen is too short. Please make sure your password contains at least 6 characters."
 msgstr ""
 "Lösenordet du har angett är för kort. Se till att lösenordet är minst 6 "
 "tecken långt."
 
-#: lib/graphql/resolvers/user.ex:323
+#: lib/graphql/resolvers/user.ex:330
 #, elixir-autogen, elixir-format
 msgid "This user can't reset their password"
 msgstr "Den här användaren kan inte återställa sitt lösenord"
@@ -229,12 +230,12 @@ msgstr "Den här användaren har inaktiverats"
 msgid "Unable to validate user"
 msgstr "Kan inte validera användare"
 
-#: lib/graphql/resolvers/user.ex:554
+#: lib/graphql/resolvers/user.ex:583
 #, elixir-autogen, elixir-format
 msgid "User already disabled"
 msgstr "Användaren redan inaktiverad"
 
-#: lib/graphql/resolvers/user.ex:619
+#: lib/graphql/resolvers/user.ex:648
 #, elixir-autogen, elixir-format
 msgid "User requested is not logged-in"
 msgstr "Den efterfrågade användaren är inte inloggad"
@@ -261,12 +262,12 @@ msgstr "Du kan inte gå med i den här gruppen"
 msgid "You may not list groups unless moderator."
 msgstr "Du kan inte lista grupper om du inte är moderator"
 
-#: lib/graphql/resolvers/user.ex:519
+#: lib/graphql/resolvers/user.ex:503
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to change your email"
 msgstr "Du behöver vara inloggad för att ändra din mejladress"
 
-#: lib/graphql/resolvers/user.ex:476
+#: lib/graphql/resolvers/user.ex:489
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to change your password"
 msgstr "Du behöver vara inloggad för att ändra ditt lösenord"
@@ -276,7 +277,7 @@ msgstr "Du behöver vara inloggad för att ändra ditt lösenord"
 msgid "You need to be logged-in to delete a group"
 msgstr "Du behöver vara inloggad för att ta bort en grupp"
 
-#: lib/graphql/resolvers/user.ex:581
+#: lib/graphql/resolvers/user.ex:610
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to delete your account"
 msgstr "Du behöver vara inloggad för att ta bort ditt konto"
@@ -301,13 +302,6 @@ msgstr "Du behöver vara inloggad för att uppdatera en grupp"
 msgid "You need to have an existing token to get a refresh token"
 msgstr "Du behöver ha en existerande token för att få en refresh token"
 
-#: lib/graphql/resolvers/user.ex:306
-#: lib/graphql/resolvers/user.ex:333
-#, elixir-autogen, elixir-format, fuzzy
-msgid "You requested again a confirmation email too soon"
-msgstr ""
-"Du ansökte om en ny mejlbekräftelse för snart inpå din tidigare förfrågan"
-
 #: lib/graphql/resolvers/user.ex:180
 #, elixir-autogen, elixir-format, fuzzy
 msgid "Your email is not on the allowlist"
@@ -361,17 +355,17 @@ msgstr "Din instans kräver en giltig mejladress"
 msgid "Anonymous participation is not enabled"
 msgstr "Anonymt deltagande är inte påslaget"
 
-#: lib/graphql/resolvers/person.ex:219
+#: lib/graphql/resolvers/person.ex:221
 #, elixir-autogen, elixir-format
 msgid "Cannot remove the last administrator of a group"
 msgstr "Kan inte ta bort en grupps enda administratör"
 
-#: lib/graphql/resolvers/person.ex:216
+#: lib/graphql/resolvers/person.ex:218
 #, elixir-autogen, elixir-format, fuzzy
 msgid "Cannot remove the last identity of a user"
 msgstr "Kan inte ta bort en användares sista identitet"
 
-#: lib/graphql/resolvers/comment.ex:147
+#: lib/graphql/resolvers/comment.ex:153
 #, elixir-autogen, elixir-format
 msgid "Comment is already deleted"
 msgstr "Kommentaren är redan borttagen"
@@ -399,8 +393,8 @@ msgid "Event id not found"
 msgstr ""
 
 #: lib/graphql/error.ex:114
-#: lib/graphql/resolvers/event.ex:355
-#: lib/graphql/resolvers/event.ex:407
+#: lib/graphql/resolvers/event.ex:382
+#: lib/graphql/resolvers/event.ex:434
 #, elixir-autogen, elixir-format
 msgid "Event not found"
 msgstr ""
@@ -408,7 +402,7 @@ msgstr ""
 #: lib/graphql/resolvers/participant.ex:87
 #: lib/graphql/resolvers/participant.ex:128
 #: lib/graphql/resolvers/participant.ex:155
-#: lib/graphql/resolvers/participant.ex:336
+#: lib/graphql/resolvers/participant.ex:343
 #, elixir-autogen, elixir-format
 msgid "Event with this ID %{id} doesn't exist"
 msgstr ""
@@ -418,7 +412,7 @@ msgstr ""
 msgid "Internal Error"
 msgstr ""
 
-#: lib/graphql/resolvers/discussion.ex:219
+#: lib/graphql/resolvers/discussion.ex:222
 #, elixir-autogen, elixir-format
 msgid "No discussion with ID %{id}"
 msgstr ""
@@ -485,10 +479,10 @@ msgstr ""
 #: lib/graphql/resolvers/post.ex:133
 #: lib/graphql/resolvers/post.ex:175
 #: lib/graphql/resolvers/post.ex:209
-#: lib/graphql/resolvers/resource.ex:90
-#: lib/graphql/resolvers/resource.ex:135
-#: lib/graphql/resolvers/resource.ex:168
-#: lib/graphql/resolvers/resource.ex:202
+#: lib/graphql/resolvers/resource.ex:92
+#: lib/graphql/resolvers/resource.ex:137
+#: lib/graphql/resolvers/resource.ex:170
+#: lib/graphql/resolvers/resource.ex:204
 #: lib/graphql/resolvers/todos.ex:58
 #: lib/graphql/resolvers/todos.ex:83
 #: lib/graphql/resolvers/todos.ex:110
@@ -500,7 +494,7 @@ msgid "Profile is not member of group"
 msgstr ""
 
 #: lib/graphql/resolvers/actor.ex:67
-#: lib/graphql/resolvers/person.ex:242
+#: lib/graphql/resolvers/person.ex:244
 #, elixir-autogen, elixir-format
 msgid "Profile not found"
 msgstr ""
@@ -510,8 +504,8 @@ msgstr ""
 msgid "Report not found"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:172
-#: lib/graphql/resolvers/resource.ex:199
+#: lib/graphql/resolvers/resource.ex:174
+#: lib/graphql/resolvers/resource.ex:201
 #, elixir-autogen, elixir-format
 msgid "Resource doesn't exist"
 msgstr ""
@@ -521,7 +515,7 @@ msgstr ""
 msgid "The event has already reached its maximum capacity"
 msgstr ""
 
-#: lib/graphql/resolvers/participant.ex:282
+#: lib/graphql/resolvers/participant.ex:289
 #, elixir-autogen, elixir-format
 msgid "This token is invalid"
 msgstr ""
@@ -555,7 +549,7 @@ msgstr ""
 msgid "User not found"
 msgstr ""
 
-#: lib/graphql/resolvers/person.ex:333
+#: lib/graphql/resolvers/person.ex:335
 #, elixir-autogen, elixir-format
 msgid "You already have a profile for this user"
 msgstr ""
@@ -577,7 +571,7 @@ msgstr ""
 msgid "You are not a moderator or admin for this group"
 msgstr ""
 
-#: lib/graphql/resolvers/comment.ex:80
+#: lib/graphql/resolvers/comment.ex:74
 #, elixir-autogen, elixir-format
 msgid "You are not allowed to create a comment if not connected"
 msgstr ""
@@ -587,7 +581,7 @@ msgstr ""
 msgid "You are not allowed to create a feed token if not connected"
 msgstr ""
 
-#: lib/graphql/resolvers/comment.ex:155
+#: lib/graphql/resolvers/comment.ex:161
 #, elixir-autogen, elixir-format
 msgid "You are not allowed to delete a comment if not connected"
 msgstr ""
@@ -597,7 +591,7 @@ msgstr ""
 msgid "You are not allowed to delete a feed token if not connected"
 msgstr ""
 
-#: lib/graphql/resolvers/comment.ex:114
+#: lib/graphql/resolvers/comment.ex:120
 #, elixir-autogen, elixir-format
 msgid "You are not allowed to update a comment if not connected"
 msgstr ""
@@ -613,12 +607,12 @@ msgstr ""
 msgid "You can't set yourself to a lower member role for this group because you are the only administrator"
 msgstr ""
 
-#: lib/graphql/resolvers/comment.ex:143
+#: lib/graphql/resolvers/comment.ex:149
 #, elixir-autogen, elixir-format
 msgid "You cannot delete this comment"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:403
+#: lib/graphql/resolvers/event.ex:430
 #, elixir-autogen, elixir-format
 msgid "You cannot delete this event"
 msgstr ""
@@ -653,17 +647,17 @@ msgstr ""
 msgid "You need to be logged-in and a moderator to view a report"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:252
+#: lib/graphql/resolvers/admin.ex:258
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in and an administrator to access admin settings"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:236
+#: lib/graphql/resolvers/admin.ex:242
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in and an administrator to access dashboard statistics"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:278
+#: lib/graphql/resolvers/admin.ex:283
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in and an administrator to save admin settings"
 msgstr ""
@@ -673,12 +667,12 @@ msgstr ""
 msgid "You need to be logged-in to access discussions"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:96
+#: lib/graphql/resolvers/resource.ex:98
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to access resources"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:313
+#: lib/graphql/resolvers/event.ex:321
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to create events"
 msgstr ""
@@ -693,12 +687,12 @@ msgstr ""
 msgid "You need to be logged-in to create reports"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:140
+#: lib/graphql/resolvers/resource.ex:142
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to create resources"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:412
+#: lib/graphql/resolvers/event.ex:439
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to delete an event"
 msgstr ""
@@ -708,7 +702,7 @@ msgstr ""
 msgid "You need to be logged-in to delete posts"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:207
+#: lib/graphql/resolvers/resource.ex:209
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to delete resources"
 msgstr ""
@@ -723,7 +717,7 @@ msgstr ""
 msgid "You need to be logged-in to leave an event"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:369
+#: lib/graphql/resolvers/event.ex:396
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to update an event"
 msgstr ""
@@ -733,17 +727,17 @@ msgstr ""
 msgid "You need to be logged-in to update posts"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:177
+#: lib/graphql/resolvers/resource.ex:179
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to update resources"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:236
+#: lib/graphql/resolvers/resource.ex:233
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to view a resource preview"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:132
+#: lib/graphql/resolvers/resource.ex:134
 #, elixir-autogen, elixir-format
 msgid "Parent resource doesn't belong to this group"
 msgstr ""
@@ -829,12 +823,12 @@ msgstr ""
 msgid "Profile is not administrator for the group"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:358
+#: lib/graphql/resolvers/event.ex:385
 #, elixir-autogen, elixir-format
 msgid "You can't edit this event."
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:361
+#: lib/graphql/resolvers/event.ex:388
 #, elixir-autogen, elixir-format
 msgid "You can't attribute this event to this profile."
 msgstr ""
@@ -854,7 +848,7 @@ msgstr ""
 msgid "You don't have the right to remove this member."
 msgstr ""
 
-#: lib/mobilizon/actors/actor.ex:377
+#: lib/mobilizon/actors/actor.ex:378
 #, elixir-autogen, elixir-format
 msgid "This username is already taken."
 msgstr ""
@@ -864,7 +858,7 @@ msgstr ""
 msgid "You must provide either an ID or a slug to access a discussion"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:275
+#: lib/graphql/resolvers/event.ex:276
 #, elixir-autogen, elixir-format
 msgid "Organizer profile is not owned by the user"
 msgstr ""
@@ -876,41 +870,41 @@ msgstr ""
 
 #: lib/graphql/resolvers/group.ex:181
 #: lib/graphql/resolvers/group.ex:223
-#: lib/graphql/resolvers/person.ex:157
-#: lib/graphql/resolvers/person.ex:191
-#: lib/graphql/resolvers/person.ex:324
+#: lib/graphql/resolvers/person.ex:159
+#: lib/graphql/resolvers/person.ex:193
+#: lib/graphql/resolvers/person.ex:326
 #, elixir-autogen, elixir-format
 msgid "The provided picture is too heavy"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:129
+#: lib/graphql/resolvers/resource.ex:131
 #, elixir-autogen, elixir-format
 msgid "Error while creating resource"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:537
+#: lib/graphql/resolvers/user.ex:566
 #, elixir-autogen, elixir-format
 msgid "Invalid activation token"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:226
+#: lib/graphql/resolvers/resource.ex:228
 #, elixir-autogen, elixir-format
 msgid "Unable to fetch resource details from this URL."
 msgstr ""
 
 #: lib/graphql/resolvers/event.ex:165
 #: lib/graphql/resolvers/participant.ex:253
-#: lib/graphql/resolvers/participant.ex:328
+#: lib/graphql/resolvers/participant.ex:335
 #, elixir-autogen, elixir-format
 msgid "Provided profile doesn't have moderator permissions on this event"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:286
+#: lib/graphql/resolvers/event.ex:294
 #, elixir-autogen, elixir-format
 msgid "Organizer profile doesn't have permission to create an event on behalf of this group"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:349
+#: lib/graphql/resolvers/event.ex:369
 #, elixir-autogen, elixir-format
 msgid "This profile doesn't have permission to update an event on behalf of this group"
 msgstr ""
@@ -920,7 +914,7 @@ msgstr ""
 msgid "Your e-mail has been denied registration or uses a disallowed e-mail provider"
 msgstr ""
 
-#: lib/graphql/resolvers/comment.ex:150
+#: lib/graphql/resolvers/comment.ex:156
 #, elixir-autogen, elixir-format
 msgid "Comment not found"
 msgstr ""
@@ -930,12 +924,12 @@ msgstr ""
 msgid "Error while creating a discussion"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:658
+#: lib/graphql/resolvers/user.ex:687
 #, elixir-autogen, elixir-format
 msgid "Error while updating locale"
 msgstr ""
 
-#: lib/graphql/resolvers/person.ex:327
+#: lib/graphql/resolvers/person.ex:329
 #, elixir-autogen, elixir-format
 msgid "Error while uploading pictures"
 msgstr ""
@@ -950,13 +944,13 @@ msgstr ""
 msgid "Failed to update the group"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:333
-#: lib/graphql/resolvers/user.ex:501
+#: lib/graphql/resolvers/admin.ex:357
+#: lib/graphql/resolvers/user.ex:547
 #, elixir-autogen, elixir-format
 msgid "Failed to update user email"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:533
+#: lib/graphql/resolvers/user.ex:562
 #, elixir-autogen, elixir-format
 msgid "Failed to validate user email"
 msgstr ""
@@ -966,37 +960,37 @@ msgstr ""
 msgid "The anonymous actor ID is invalid"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:165
+#: lib/graphql/resolvers/resource.ex:167
 #, elixir-autogen, elixir-format
 msgid "Unknown error while updating resource"
 msgstr ""
 
-#: lib/graphql/resolvers/comment.ex:105
+#: lib/graphql/resolvers/comment.ex:111
 #, elixir-autogen, elixir-format
 msgid "You are not the comment creator"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:458
+#: lib/graphql/resolvers/user.ex:471
 #, elixir-autogen, elixir-format
 msgid "You cannot change your password."
 msgstr ""
 
-#: lib/graphql/resolvers/participant.ex:321
+#: lib/graphql/resolvers/participant.ex:328
 #, elixir-autogen, elixir-format
 msgid "Format not supported"
 msgstr ""
 
-#: lib/graphql/resolvers/participant.ex:305
+#: lib/graphql/resolvers/participant.ex:312
 #, elixir-autogen, elixir-format
 msgid "A dependency needed to export to %{format} is not installed"
 msgstr ""
 
-#: lib/graphql/resolvers/participant.ex:313
+#: lib/graphql/resolvers/participant.ex:320
 #, elixir-autogen, elixir-format
 msgid "An error occured while saving export"
 msgstr ""
 
-#: lib/web/controllers/export_controller.ex:30
+#: lib/web/controllers/export_controller.ex:32
 #, elixir-autogen, elixir-format
 msgid "Export to format %{format} is not enabled on this instance"
 msgstr ""
@@ -1006,17 +1000,17 @@ msgstr ""
 msgid "Only admins can create groups"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:279
+#: lib/graphql/resolvers/event.ex:280
 #, elixir-autogen, elixir-format
 msgid "Only groups can create events"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:305
+#: lib/graphql/resolvers/event.ex:313
 #, elixir-autogen, elixir-format
 msgid "Unknown error while creating event"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:514
+#: lib/graphql/resolvers/user.ex:498
 #, elixir-autogen, elixir-format
 msgid "User cannot change email"
 msgstr ""
@@ -1031,12 +1025,12 @@ msgstr ""
 msgid "Follow not found"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:379
+#: lib/graphql/resolvers/user.ex:392
 #, elixir-autogen, elixir-format
 msgid "Profile with username %{username} not found"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:374
+#: lib/graphql/resolvers/user.ex:387
 #, elixir-autogen, elixir-format
 msgid "This profile does not belong to you"
 msgstr ""
@@ -1081,22 +1075,22 @@ msgstr ""
 msgid "Your email seems to be using an invalid format"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:382
+#: lib/graphql/resolvers/admin.ex:399
 #, elixir-autogen, elixir-format
 msgid "Can't confirm an already confirmed user"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:386
+#: lib/graphql/resolvers/admin.ex:403
 #, elixir-autogen, elixir-format
 msgid "Deconfirming users is not supported"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:358
+#: lib/graphql/resolvers/admin.ex:375
 #, elixir-autogen, elixir-format, fuzzy
 msgid "The new role must be different"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:309
+#: lib/graphql/resolvers/admin.ex:314
 #, elixir-autogen, elixir-format, fuzzy
 msgid "You need to be logged-in and an administrator to edit an user's details"
 msgstr ""
@@ -1106,28 +1100,28 @@ msgstr ""
 msgid "A profile or group with that name already exists"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:519
+#: lib/graphql/resolvers/admin.ex:542
 #, elixir-autogen, elixir-format
 msgid "Unable to find an instance to follow at this address"
 msgstr ""
 
-#: lib/mobilizon/actors/actor.ex:396
+#: lib/mobilizon/actors/actor.ex:397
 #, elixir-autogen, elixir-format
 msgid "Username must only contain alphanumeric lowercased characters and underscores."
 msgstr ""
 
 #: lib/graphql/resolvers/user.ex:303
-#: lib/graphql/resolvers/user.ex:326
+#: lib/graphql/resolvers/user.ex:333
 #, elixir-autogen, elixir-format, fuzzy
 msgid "This email doesn't seem to be valid"
 msgstr "Den nya mejladressen verkar vara felaktig"
 
-#: lib/graphql/resolvers/comment.ex:65
+#: lib/graphql/resolvers/comment.ex:59
 #, elixir-autogen, elixir-format
 msgid "This comment was detected as spam."
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:293
+#: lib/graphql/resolvers/event.ex:301
 #, elixir-autogen, elixir-format
 msgid "This event was detected as spam."
 msgstr ""
@@ -1148,7 +1142,7 @@ msgstr ""
 msgid "You need to be a moderator or an administrator to create a note on a report"
 msgstr ""
 
-#: lib/graphql/resolvers/person.ex:330
+#: lib/graphql/resolvers/person.ex:332
 #, elixir-autogen, elixir-format
 msgid "Your profile was detected as spam."
 msgstr ""
@@ -1158,7 +1152,7 @@ msgstr ""
 msgid "Your registration has been detected as spam and cannot be processed."
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:86
+#: lib/web/controllers/application_controller.ex:88
 #, elixir-autogen, elixir-format
 msgid "All of name, scope and redirect_uri parameters are required to create an application"
 msgstr ""
@@ -1173,171 +1167,228 @@ msgstr ""
 msgid "Application token not found"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:89
+#: lib/graphql/resolvers/application.ex:90
 #, elixir-autogen, elixir-format, fuzzy
 msgid "Error while revoking token"
 msgstr "Fel vid sparande av rapport"
 
-#: lib/web/controllers/application_controller.ex:59
+#: lib/web/controllers/application_controller.ex:61
 #, elixir-autogen, elixir-format
 msgid "Impossible to create application."
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:356
+#: lib/web/controllers/application_controller.ex:358
 #, elixir-autogen, elixir-format
 msgid "Incorrect parameters sent. You need to provide at least the grant_type and client_id parameters, depending on the grant type being used."
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:329
+#: lib/web/controllers/application_controller.ex:331
 #, elixir-autogen, elixir-format
 msgid "Invalid client credentials provided"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:337
+#: lib/web/controllers/application_controller.ex:339
 #, elixir-autogen, elixir-format
 msgid "Invalid refresh token provided"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:170
-#: lib/web/controllers/application_controller.ex:401
+#: lib/web/controllers/application_controller.ex:172
+#: lib/web/controllers/application_controller.ex:403
 #, elixir-autogen, elixir-format
 msgid "No application was found with this client_id"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:37
+#: lib/graphql/resolvers/application.ex:38
 #, elixir-autogen, elixir-format
 msgid "No application with this client_id was found"
 msgstr ""
 
-#: lib/graphql/authorization.ex:80
+#: lib/graphql/authorization.ex:81
 #, elixir-autogen, elixir-format
 msgid "Not authorized to access field %{field}"
 msgstr ""
 
-#: lib/graphql/authorization.ex:70
-#: lib/graphql/authorization.ex:75
+#: lib/graphql/authorization.ex:71
+#: lib/graphql/authorization.ex:76
 #, elixir-autogen, elixir-format
 msgid "Not authorized to access object %{object}"
 msgstr ""
 
-#: lib/graphql/authorization.ex:63
+#: lib/graphql/authorization.ex:64
 #, elixir-autogen, elixir-format
 msgid "Not authorized to access this %{object_type}"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:279
+#: lib/web/controllers/application_controller.ex:281
 #, elixir-autogen, elixir-format
 msgid "Please slow down the rate of your requests"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:267
+#: lib/web/controllers/application_controller.ex:269
 #, elixir-autogen, elixir-format
 msgid "The authorization request is still pending"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:249
+#: lib/web/controllers/application_controller.ex:251
 #, elixir-autogen, elixir-format
 msgid "The client_id provided or the device_code associated is invalid"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:133
+#: lib/graphql/resolvers/application.ex:139
 #, elixir-autogen, elixir-format
 msgid "The device user code was not provided before approving the application"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:304
+#: lib/web/controllers/application_controller.ex:306
 #, elixir-autogen, elixir-format
 msgid "The given device_code has expired"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:44
+#: lib/graphql/resolvers/application.ex:45
 #, elixir-autogen, elixir-format
 msgid "The given redirect_uri is not in the list of allowed redirect URIs"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:158
+#: lib/web/controllers/application_controller.ex:160
 #, elixir-autogen, elixir-format
 msgid "The given scope is not in the list of the app declared scopes"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:109
-#: lib/graphql/resolvers/application.ex:146
+#: lib/graphql/resolvers/application.ex:112
+#: lib/graphql/resolvers/application.ex:154
 #, elixir-autogen, elixir-format
 msgid "The given user code has expired"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:112
-#: lib/graphql/resolvers/application.ex:140
+#: lib/graphql/resolvers/application.ex:118
+#: lib/graphql/resolvers/application.ex:146
 #, elixir-autogen, elixir-format
 msgid "The given user code is invalid"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:411
+#: lib/web/controllers/application_controller.ex:413
 #, elixir-autogen, elixir-format
 msgid "The provided client_id does not match the provided code"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:414
+#: lib/web/controllers/application_controller.ex:416
 #, elixir-autogen, elixir-format
 msgid "The provided client_secret is invalid"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:407
+#: lib/web/controllers/application_controller.ex:409
 #, elixir-autogen, elixir-format
 msgid "The provided code is invalid or expired"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:418
+#: lib/web/controllers/application_controller.ex:420
 #, elixir-autogen, elixir-format
 msgid "The provided scope is invalid or not included in the app declared scopes"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:45
+#: lib/web/controllers/application_controller.ex:47
 #, elixir-autogen, elixir-format
 msgid "The scope parameter is not a space separated list of valid scopes"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:292
+#: lib/web/controllers/application_controller.ex:294
 #, elixir-autogen, elixir-format
 msgid "The user rejected the requested authorization"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:404
+#: lib/web/controllers/application_controller.ex:406
 #, elixir-autogen, elixir-format
 msgid "This redirect URI is not allowed"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:381
+#: lib/web/controllers/application_controller.ex:383
 #, elixir-autogen, elixir-format, fuzzy
 msgid "Token not found"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:72
+#: lib/web/controllers/application_controller.ex:74
 #, elixir-autogen, elixir-format
 msgid "Too many requests"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:184
+#: lib/web/controllers/application_controller.ex:186
 #, elixir-autogen, elixir-format
 msgid "Unable to produce device code"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:373
+#: lib/web/controllers/application_controller.ex:375
 #, elixir-autogen, elixir-format
 msgid "Unable to revoke token"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:198
+#: lib/web/controllers/application_controller.ex:200
 #, elixir-autogen, elixir-format
 msgid "You need to pass both client_id and scope as parameters to obtain a device code"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:136
+#: lib/web/controllers/application_controller.ex:138
 #, elixir-autogen, elixir-format
 msgid "You need to provide a valid redirect_uri to autorize an application"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:126
+#: lib/web/controllers/application_controller.ex:128
 #, elixir-autogen, elixir-format
 msgid "You need to specify client_id, redirect_uri, scope and state to autorize an application"
 msgstr ""
+
+#: lib/graphql/resolvers/user.ex:306
+#, elixir-autogen, elixir-format
+msgid "Couldn't send an email. Internal error."
+msgstr ""
+
+#: lib/graphql/resolvers/participant.ex:286
+#, elixir-autogen, elixir-format
+msgid "Participation is already confirmed"
+msgstr ""
+
+#: lib/graphql/resolvers/participant.ex:283
+#, elixir-autogen, elixir-format
+msgid "Participation is confirmed but not approved yet by an organizer"
+msgstr ""
+
+#: lib/graphql/resolvers/event.ex:287
+#: lib/graphql/resolvers/event.ex:376
+#, elixir-autogen, elixir-format
+msgid "Providing external registration is not allowed"
+msgstr ""
+
+#: lib/graphql/resolvers/push_subscription.ex:48
+#, elixir-autogen, elixir-format
+msgid "The same push subscription has already been registered"
+msgstr ""
+
+#: lib/graphql/resolvers/admin.ex:536
+#, elixir-autogen, elixir-format
+msgid "This instance is pending follow approval"
+msgstr ""
+
+#: lib/graphql/schema/custom/timezone.ex:23
+#, elixir-autogen, elixir-format
+msgid "Timezone ID %{timezone} is invalid"
+msgstr ""
+
+#: lib/graphql/resolvers/admin.ex:539
+#, elixir-autogen, elixir-format, fuzzy
+msgid "You are already following this instance"
+msgstr ""
+
+#: lib/graphql/resolvers/user.ex:310
+#, elixir-autogen, elixir-format, fuzzy
+msgid "You requested again a confirmation email too soon. Please try again in a few minutes"
+msgstr ""
+"Du ansökte om en ny mejlbekräftelse för snart inpå din tidigare förfrågan"
+
+#: lib/graphql/resolvers/user.ex:341
+#, elixir-autogen, elixir-format
+msgid "You requested again a password reset email too soon. Please try again in a few minutes"
+msgstr ""
+
+#: lib/graphql/resolvers/user.ex:368
+#, elixir-autogen, elixir-format
+msgid "The token you provided is invalid. Make sure that the URL is exactly the one provided inside the email you got."
+msgstr ""
diff --git a/priv/gettext/zh_Hant/LC_MESSAGES/activity.po b/priv/gettext/zh_Hant/LC_MESSAGES/activity.po
index ba126f11e8f0b1f27ab47756f376a2c6fb65ceaa..552e26822003d08b874b28a6d1a55668dd14f080 100644
--- a/priv/gettext/zh_Hant/LC_MESSAGES/activity.po
+++ b/priv/gettext/zh_Hant/LC_MESSAGES/activity.po
@@ -7,6 +7,7 @@ msgstr ""
 "Last-Translator: Automatically generated\n"
 "Language-Team: none\n"
 "Language: zh_Hant\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -464,3 +465,15 @@ msgstr ""
 #, elixir-autogen, elixir-format
 msgid "%{profile} approved the member %{member}."
 msgstr ""
+
+#: lib/service/activity/renderer/event.ex:74
+#: lib/web/templates/email/activity/_event_activity_item.html.heex:55
+#: lib/web/templates/email/activity/_event_activity_item.text.eex:31
+#, elixir-autogen, elixir-format
+msgid "%{profile} joined your event %{event}."
+msgstr ""
+
+#: lib/web/views/email_view.ex:45
+#, elixir-autogen, elixir-format
+msgid "An anonymous profile"
+msgstr ""
diff --git a/priv/gettext/zh_Hant/LC_MESSAGES/default.po b/priv/gettext/zh_Hant/LC_MESSAGES/default.po
index c79a673d0ada1466f1f88bb81906699cd29548da..854444e434e9c6f09e8db561154ed4ebe49e8e34 100644
--- a/priv/gettext/zh_Hant/LC_MESSAGES/default.po
+++ b/priv/gettext/zh_Hant/LC_MESSAGES/default.po
@@ -9,14 +9,14 @@
 msgid ""
 msgstr ""
 "Language: zh_Hant\n"
-"Plural-Forms: nplurals=1\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
 
 #: lib/web/templates/email/password_reset.html.heex:66
 #, elixir-autogen, elixir-format
 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 ""
 
-#: lib/web/templates/email/report.html.heex:120
+#: lib/web/templates/email/report.html.heex:121
 #, elixir-autogen, elixir-format
 msgid "%{title} by %{creator}"
 msgstr ""
@@ -32,23 +32,17 @@ msgstr ""
 msgid "Ask the community on Framacolibri"
 msgstr ""
 
-#: lib/web/templates/email/report.text.eex:15
+#: lib/web/templates/email/report.text.eex:17
 #, elixir-autogen, elixir-format
 msgid "Comments"
 msgstr ""
 
-#: lib/web/templates/email/report.html.heex:115
-#: lib/web/templates/email/report.text.eex:11
-#, elixir-autogen, elixir-format
-msgid "Event"
-msgstr ""
-
 #: lib/web/email/user.ex:49
 #, elixir-autogen, elixir-format
 msgid "Instructions to reset your password on %{instance}"
 msgstr ""
 
-#: lib/web/templates/email/report.text.eex:21
+#: lib/web/templates/email/report.text.eex:23
 #, elixir-autogen, elixir-format
 msgid "Reason"
 msgstr ""
@@ -308,12 +302,12 @@ msgctxt "terms"
 msgid "What information do we collect?"
 msgstr ""
 
-#: lib/web/email/user.ex:182
+#: lib/web/email/user.ex:188
 #, elixir-autogen, elixir-format
 msgid "Mobilizon on %{instance}: confirm your email address"
 msgstr ""
 
-#: lib/web/email/user.ex:159
+#: lib/web/email/user.ex:165
 #, elixir-autogen, elixir-format
 msgid "Mobilizon on %{instance}: email changed"
 msgstr ""
@@ -798,7 +792,7 @@ msgstr ""
 msgid "Event update!"
 msgstr ""
 
-#: lib/web/templates/email/report.html.heex:155
+#: lib/web/templates/email/report.html.heex:158
 #, elixir-autogen, elixir-format
 msgid "Flagged comments"
 msgstr ""
@@ -879,7 +873,7 @@ msgstr ""
 msgid "New email confirmation"
 msgstr ""
 
-#: lib/web/templates/email/report.html.heex:191
+#: lib/web/templates/email/report.html.heex:194
 #, elixir-autogen, elixir-format
 msgid "Reasons for report"
 msgstr ""
@@ -934,12 +928,12 @@ msgstr ""
 msgid "Verify your email address"
 msgstr ""
 
-#: lib/web/templates/email/report.html.heex:232
+#: lib/web/templates/email/report.html.heex:235
 #, elixir-autogen, elixir-format
 msgid "View report"
 msgstr ""
 
-#: lib/web/templates/email/report.text.eex:24
+#: lib/web/templates/email/report.text.eex:26
 #, elixir-autogen, elixir-format
 msgid "View report:"
 msgstr ""
@@ -1037,12 +1031,6 @@ msgstr ""
 msgid "As this group was located on another instance, it will continue to work for other instances than this one."
 msgstr ""
 
-#: lib/web/templates/email/group_suspension.html.heex:67
-#: lib/web/templates/email/group_suspension.text.eex:5
-#, elixir-autogen, elixir-format
-msgid "As this group was located on this instance, all of it's data has been irretrievably deleted."
-msgstr ""
-
 #: lib/web/templates/email/group_suspension.html.heex:18
 #: lib/web/templates/email/group_suspension.text.eex:1
 #, elixir-autogen, elixir-format
@@ -1054,7 +1042,7 @@ msgstr ""
 msgid "Your instance's moderation team has decided to suspend %{group_name} (%{group_address}). You are no longer a member of this group."
 msgstr ""
 
-#: lib/web/email/group.ex:107
+#: lib/web/email/group.ex:108
 #, elixir-autogen, elixir-format
 msgid "The group %{group} has been suspended on %{instance}"
 msgstr ""
@@ -1336,16 +1324,6 @@ msgstr ""
 msgid "Public feed for %{instance}"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:350
-#, elixir-autogen, elixir-format
-msgid "The password you have choosen is too short. Please make sure your password contains at least 6 charaters."
-msgstr ""
-
-#: lib/graphql/resolvers/user.ex:356
-#, elixir-autogen, elixir-format
-msgid "The token you provided is invalid. Make sure that the URL is exactly the one provided inside the email you got."
-msgstr ""
-
 #: lib/web/email/actor.ex:43
 #, elixir-autogen, elixir-format
 msgid "Your participation to %{event} has been cancelled!"
@@ -1369,63 +1347,63 @@ msgid "Your participation to %{event} on %{instance} has been cancelled!"
 msgstr ""
 
 #. File name template for exported list of participants. Should NOT contain spaces. Make sure the output is going to be something standardized that is acceptable as a file name on most systems.
-#: lib/service/export/participants/csv.ex:81
+#: lib/service/export/participants/csv.ex:97
 #: lib/service/export/participants/ods.ex:86
 #: lib/service/export/participants/pdf.ex:96
 #, elixir-autogen, elixir-format
 msgid "%{event}_participants"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:61
+#: lib/service/export/participants/common.ex:66
 #, elixir-autogen, elixir-format
 msgid "Participant message"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:61
+#: lib/service/export/participants/common.ex:63
 #, elixir-autogen, elixir-format
 msgid "Participant name"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:61
+#: lib/service/export/participants/common.ex:64
 #, elixir-autogen, elixir-format
 msgid "Participant status"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:52
+#: lib/service/export/participants/common.ex:53
 #: lib/web/templates/email/admin/_role.html.heex:3
 #: lib/web/templates/email/admin/_role.text.eex:1
 #, elixir-autogen, elixir-format
 msgid "Administrator"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:55
+#: lib/service/export/participants/common.ex:56
 #, elixir-autogen, elixir-format
 msgid "Creator"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:49
+#: lib/service/export/participants/common.ex:50
 #: lib/web/templates/email/admin/_role.html.heex:5
 #: lib/web/templates/email/admin/_role.text.eex:1
 #, elixir-autogen, elixir-format
 msgid "Moderator"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:37
+#: lib/service/export/participants/common.ex:38
 #, elixir-autogen, elixir-format
 msgid "Not approved"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:40
+#: lib/service/export/participants/common.ex:41
 #, elixir-autogen, elixir-format
 msgid "Not confirmed"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:46
+#: lib/service/export/participants/common.ex:47
 #, elixir-autogen, elixir-format
 msgid "Participant"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:43
+#: lib/service/export/participants/common.ex:44
 #, elixir-autogen, elixir-format
 msgid "Rejected"
 msgstr ""
@@ -1450,7 +1428,7 @@ msgstr ""
 msgid "Participants for %{event}"
 msgstr ""
 
-#: lib/service/export/participants/common.ex:88
+#: lib/service/export/participants/common.ex:95
 #, elixir-autogen, elixir-format
 msgid "Anonymous participant"
 msgstr ""
@@ -1569,7 +1547,7 @@ msgstr ""
 msgid "Title: %{title}"
 msgstr ""
 
-#: lib/web/email/group.ex:46
+#: lib/web/email/group.ex:47
 #, elixir-autogen, elixir-format
 msgid "📅 Just scheduled by %{group}: %{event}"
 msgstr ""
@@ -1981,3 +1959,24 @@ msgstr ""
 #, elixir-autogen, elixir-format
 msgid "Until next time!"
 msgstr ""
+
+#: lib/web/templates/email/group_suspension.html.heex:67
+#: lib/web/templates/email/group_suspension.text.eex:5
+#, elixir-autogen, elixir-format, fuzzy
+msgid "As this group was located on this instance, all of its data has been irretrievably deleted."
+msgstr ""
+
+#: lib/web/templates/email/report.text.eex:11
+#, elixir-autogen, elixir-format, fuzzy
+msgid "Events"
+msgstr ""
+
+#: lib/web/templates/email/report.html.heex:115
+#, elixir-autogen, elixir-format, fuzzy
+msgid "Flagged events"
+msgstr ""
+
+#: lib/service/export/participants/common.ex:65
+#, elixir-autogen, elixir-format, fuzzy
+msgid "Participant registration date"
+msgstr ""
diff --git a/priv/gettext/zh_Hant/LC_MESSAGES/errors.po b/priv/gettext/zh_Hant/LC_MESSAGES/errors.po
index 0c91a69bbdca2731a0f29ff2805b5166331413f2..f3acf2b784ef3362115f1b930292e3220d5bccc8 100644
--- a/priv/gettext/zh_Hant/LC_MESSAGES/errors.po
+++ b/priv/gettext/zh_Hant/LC_MESSAGES/errors.po
@@ -9,7 +9,7 @@
 msgid ""
 msgstr ""
 "Language: zh_Hant\n"
-"Plural-Forms: nplurals=1\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
 
 #: lib/mobilizon/discussions/discussion.ex:69
 #, elixir-autogen
@@ -97,7 +97,7 @@ msgstr ""
 msgid "Current profile is not an administrator of the selected group"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:644
+#: lib/graphql/resolvers/user.ex:673
 #, elixir-autogen, elixir-format
 msgid "Error while saving user settings"
 msgstr ""
@@ -140,8 +140,8 @@ msgstr ""
 msgid "No user to validate with this email was found"
 msgstr ""
 
-#: lib/graphql/resolvers/person.ex:337
-#: lib/graphql/resolvers/user.ex:330
+#: lib/graphql/resolvers/person.ex:339
+#: lib/graphql/resolvers/user.ex:337
 #, elixir-autogen, elixir-format
 msgid "No user with this email was found"
 msgstr ""
@@ -149,12 +149,12 @@ msgstr ""
 #: lib/graphql/resolvers/feed_token.ex:28
 #: lib/graphql/resolvers/participant.ex:32
 #: lib/graphql/resolvers/participant.ex:210
-#: lib/graphql/resolvers/person.ex:245
-#: lib/graphql/resolvers/person.ex:376
-#: lib/graphql/resolvers/person.ex:412
-#: lib/graphql/resolvers/person.ex:419
-#: lib/graphql/resolvers/person.ex:448
-#: lib/graphql/resolvers/person.ex:463
+#: lib/graphql/resolvers/person.ex:247
+#: lib/graphql/resolvers/person.ex:378
+#: lib/graphql/resolvers/person.ex:414
+#: lib/graphql/resolvers/person.ex:421
+#: lib/graphql/resolvers/person.ex:450
+#: lib/graphql/resolvers/person.ex:465
 #, elixir-autogen, elixir-format
 msgid "Profile is not owned by authenticated user"
 msgstr ""
@@ -164,41 +164,42 @@ msgstr ""
 msgid "Registrations are not open"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:461
+#: lib/graphql/resolvers/user.ex:474
 #, elixir-autogen, elixir-format
 msgid "The current password is invalid"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:336
-#: lib/graphql/resolvers/user.ex:504
+#: lib/graphql/resolvers/admin.ex:334
+#: lib/graphql/resolvers/user.ex:527
 #, elixir-autogen, elixir-format
 msgid "The new email doesn't seem to be valid"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:339
-#: lib/graphql/resolvers/user.ex:507
+#: lib/graphql/resolvers/admin.ex:323
+#: lib/graphql/resolvers/user.ex:514
 #, elixir-autogen, elixir-format
 msgid "The new email must be different"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:464
+#: lib/graphql/resolvers/user.ex:477
 #, elixir-autogen, elixir-format
 msgid "The new password must be different"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:511
-#: lib/graphql/resolvers/user.ex:573
-#: lib/graphql/resolvers/user.ex:576
+#: lib/graphql/resolvers/user.ex:518
+#: lib/graphql/resolvers/user.ex:602
+#: lib/graphql/resolvers/user.ex:605
 #, elixir-autogen, elixir-format
 msgid "The password provided is invalid"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:468
+#: lib/graphql/resolvers/user.ex:361
+#: lib/graphql/resolvers/user.ex:481
 #, elixir-autogen, elixir-format
 msgid "The password you have chosen is too short. Please make sure your password contains at least 6 characters."
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:323
+#: lib/graphql/resolvers/user.ex:330
 #, elixir-autogen, elixir-format
 msgid "This user can't reset their password"
 msgstr ""
@@ -214,12 +215,12 @@ msgstr ""
 msgid "Unable to validate user"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:554
+#: lib/graphql/resolvers/user.ex:583
 #, elixir-autogen, elixir-format
 msgid "User already disabled"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:619
+#: lib/graphql/resolvers/user.ex:648
 #, elixir-autogen, elixir-format
 msgid "User requested is not logged-in"
 msgstr ""
@@ -244,12 +245,12 @@ msgstr ""
 msgid "You may not list groups unless moderator."
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:519
+#: lib/graphql/resolvers/user.ex:503
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to change your email"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:476
+#: lib/graphql/resolvers/user.ex:489
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to change your password"
 msgstr ""
@@ -259,7 +260,7 @@ msgstr ""
 msgid "You need to be logged-in to delete a group"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:581
+#: lib/graphql/resolvers/user.ex:610
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to delete your account"
 msgstr ""
@@ -284,12 +285,6 @@ msgstr ""
 msgid "You need to have an existing token to get a refresh token"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:306
-#: lib/graphql/resolvers/user.ex:333
-#, elixir-autogen, elixir-format
-msgid "You requested again a confirmation email too soon"
-msgstr ""
-
 #: lib/graphql/resolvers/user.ex:180
 #, elixir-autogen, elixir-format
 msgid "Your email is not on the allowlist"
@@ -342,17 +337,17 @@ msgstr ""
 msgid "Anonymous participation is not enabled"
 msgstr ""
 
-#: lib/graphql/resolvers/person.ex:219
+#: lib/graphql/resolvers/person.ex:221
 #, elixir-autogen, elixir-format
 msgid "Cannot remove the last administrator of a group"
 msgstr ""
 
-#: lib/graphql/resolvers/person.ex:216
+#: lib/graphql/resolvers/person.ex:218
 #, elixir-autogen, elixir-format
 msgid "Cannot remove the last identity of a user"
 msgstr ""
 
-#: lib/graphql/resolvers/comment.ex:147
+#: lib/graphql/resolvers/comment.ex:153
 #, elixir-autogen, elixir-format
 msgid "Comment is already deleted"
 msgstr ""
@@ -380,8 +375,8 @@ msgid "Event id not found"
 msgstr ""
 
 #: lib/graphql/error.ex:114
-#: lib/graphql/resolvers/event.ex:355
-#: lib/graphql/resolvers/event.ex:407
+#: lib/graphql/resolvers/event.ex:382
+#: lib/graphql/resolvers/event.ex:434
 #, elixir-autogen, elixir-format
 msgid "Event not found"
 msgstr ""
@@ -389,7 +384,7 @@ msgstr ""
 #: lib/graphql/resolvers/participant.ex:87
 #: lib/graphql/resolvers/participant.ex:128
 #: lib/graphql/resolvers/participant.ex:155
-#: lib/graphql/resolvers/participant.ex:336
+#: lib/graphql/resolvers/participant.ex:343
 #, elixir-autogen, elixir-format
 msgid "Event with this ID %{id} doesn't exist"
 msgstr ""
@@ -399,7 +394,7 @@ msgstr ""
 msgid "Internal Error"
 msgstr ""
 
-#: lib/graphql/resolvers/discussion.ex:219
+#: lib/graphql/resolvers/discussion.ex:222
 #, elixir-autogen, elixir-format
 msgid "No discussion with ID %{id}"
 msgstr ""
@@ -466,10 +461,10 @@ msgstr ""
 #: lib/graphql/resolvers/post.ex:133
 #: lib/graphql/resolvers/post.ex:175
 #: lib/graphql/resolvers/post.ex:209
-#: lib/graphql/resolvers/resource.ex:90
-#: lib/graphql/resolvers/resource.ex:135
-#: lib/graphql/resolvers/resource.ex:168
-#: lib/graphql/resolvers/resource.ex:202
+#: lib/graphql/resolvers/resource.ex:92
+#: lib/graphql/resolvers/resource.ex:137
+#: lib/graphql/resolvers/resource.ex:170
+#: lib/graphql/resolvers/resource.ex:204
 #: lib/graphql/resolvers/todos.ex:58
 #: lib/graphql/resolvers/todos.ex:83
 #: lib/graphql/resolvers/todos.ex:110
@@ -481,7 +476,7 @@ msgid "Profile is not member of group"
 msgstr ""
 
 #: lib/graphql/resolvers/actor.ex:67
-#: lib/graphql/resolvers/person.ex:242
+#: lib/graphql/resolvers/person.ex:244
 #, elixir-autogen, elixir-format
 msgid "Profile not found"
 msgstr ""
@@ -491,8 +486,8 @@ msgstr ""
 msgid "Report not found"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:172
-#: lib/graphql/resolvers/resource.ex:199
+#: lib/graphql/resolvers/resource.ex:174
+#: lib/graphql/resolvers/resource.ex:201
 #, elixir-autogen, elixir-format
 msgid "Resource doesn't exist"
 msgstr ""
@@ -502,7 +497,7 @@ msgstr ""
 msgid "The event has already reached its maximum capacity"
 msgstr ""
 
-#: lib/graphql/resolvers/participant.ex:282
+#: lib/graphql/resolvers/participant.ex:289
 #, elixir-autogen, elixir-format
 msgid "This token is invalid"
 msgstr ""
@@ -536,7 +531,7 @@ msgstr ""
 msgid "User not found"
 msgstr ""
 
-#: lib/graphql/resolvers/person.ex:333
+#: lib/graphql/resolvers/person.ex:335
 #, elixir-autogen, elixir-format
 msgid "You already have a profile for this user"
 msgstr ""
@@ -558,7 +553,7 @@ msgstr ""
 msgid "You are not a moderator or admin for this group"
 msgstr ""
 
-#: lib/graphql/resolvers/comment.ex:80
+#: lib/graphql/resolvers/comment.ex:74
 #, elixir-autogen, elixir-format
 msgid "You are not allowed to create a comment if not connected"
 msgstr ""
@@ -568,7 +563,7 @@ msgstr ""
 msgid "You are not allowed to create a feed token if not connected"
 msgstr ""
 
-#: lib/graphql/resolvers/comment.ex:155
+#: lib/graphql/resolvers/comment.ex:161
 #, elixir-autogen, elixir-format
 msgid "You are not allowed to delete a comment if not connected"
 msgstr ""
@@ -578,7 +573,7 @@ msgstr ""
 msgid "You are not allowed to delete a feed token if not connected"
 msgstr ""
 
-#: lib/graphql/resolvers/comment.ex:114
+#: lib/graphql/resolvers/comment.ex:120
 #, elixir-autogen, elixir-format
 msgid "You are not allowed to update a comment if not connected"
 msgstr ""
@@ -594,12 +589,12 @@ msgstr ""
 msgid "You can't set yourself to a lower member role for this group because you are the only administrator"
 msgstr ""
 
-#: lib/graphql/resolvers/comment.ex:143
+#: lib/graphql/resolvers/comment.ex:149
 #, elixir-autogen, elixir-format
 msgid "You cannot delete this comment"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:403
+#: lib/graphql/resolvers/event.ex:430
 #, elixir-autogen, elixir-format
 msgid "You cannot delete this event"
 msgstr ""
@@ -634,17 +629,17 @@ msgstr ""
 msgid "You need to be logged-in and a moderator to view a report"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:252
+#: lib/graphql/resolvers/admin.ex:258
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in and an administrator to access admin settings"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:236
+#: lib/graphql/resolvers/admin.ex:242
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in and an administrator to access dashboard statistics"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:278
+#: lib/graphql/resolvers/admin.ex:283
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in and an administrator to save admin settings"
 msgstr ""
@@ -654,12 +649,12 @@ msgstr ""
 msgid "You need to be logged-in to access discussions"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:96
+#: lib/graphql/resolvers/resource.ex:98
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to access resources"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:313
+#: lib/graphql/resolvers/event.ex:321
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to create events"
 msgstr ""
@@ -674,12 +669,12 @@ msgstr ""
 msgid "You need to be logged-in to create reports"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:140
+#: lib/graphql/resolvers/resource.ex:142
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to create resources"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:412
+#: lib/graphql/resolvers/event.ex:439
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to delete an event"
 msgstr ""
@@ -689,7 +684,7 @@ msgstr ""
 msgid "You need to be logged-in to delete posts"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:207
+#: lib/graphql/resolvers/resource.ex:209
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to delete resources"
 msgstr ""
@@ -704,7 +699,7 @@ msgstr ""
 msgid "You need to be logged-in to leave an event"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:369
+#: lib/graphql/resolvers/event.ex:396
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to update an event"
 msgstr ""
@@ -714,17 +709,17 @@ msgstr ""
 msgid "You need to be logged-in to update posts"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:177
+#: lib/graphql/resolvers/resource.ex:179
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to update resources"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:236
+#: lib/graphql/resolvers/resource.ex:233
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in to view a resource preview"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:132
+#: lib/graphql/resolvers/resource.ex:134
 #, elixir-autogen, elixir-format
 msgid "Parent resource doesn't belong to this group"
 msgstr ""
@@ -810,12 +805,12 @@ msgstr ""
 msgid "Profile is not administrator for the group"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:358
+#: lib/graphql/resolvers/event.ex:385
 #, elixir-autogen, elixir-format
 msgid "You can't edit this event."
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:361
+#: lib/graphql/resolvers/event.ex:388
 #, elixir-autogen, elixir-format
 msgid "You can't attribute this event to this profile."
 msgstr ""
@@ -835,7 +830,7 @@ msgstr ""
 msgid "You don't have the right to remove this member."
 msgstr ""
 
-#: lib/mobilizon/actors/actor.ex:377
+#: lib/mobilizon/actors/actor.ex:378
 #, elixir-autogen, elixir-format
 msgid "This username is already taken."
 msgstr ""
@@ -845,7 +840,7 @@ msgstr ""
 msgid "You must provide either an ID or a slug to access a discussion"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:275
+#: lib/graphql/resolvers/event.ex:276
 #, elixir-autogen, elixir-format
 msgid "Organizer profile is not owned by the user"
 msgstr ""
@@ -857,41 +852,41 @@ msgstr ""
 
 #: lib/graphql/resolvers/group.ex:181
 #: lib/graphql/resolvers/group.ex:223
-#: lib/graphql/resolvers/person.ex:157
-#: lib/graphql/resolvers/person.ex:191
-#: lib/graphql/resolvers/person.ex:324
+#: lib/graphql/resolvers/person.ex:159
+#: lib/graphql/resolvers/person.ex:193
+#: lib/graphql/resolvers/person.ex:326
 #, elixir-autogen, elixir-format
 msgid "The provided picture is too heavy"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:129
+#: lib/graphql/resolvers/resource.ex:131
 #, elixir-autogen, elixir-format
 msgid "Error while creating resource"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:537
+#: lib/graphql/resolvers/user.ex:566
 #, elixir-autogen, elixir-format
 msgid "Invalid activation token"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:226
+#: lib/graphql/resolvers/resource.ex:228
 #, elixir-autogen, elixir-format
 msgid "Unable to fetch resource details from this URL."
 msgstr ""
 
 #: lib/graphql/resolvers/event.ex:165
 #: lib/graphql/resolvers/participant.ex:253
-#: lib/graphql/resolvers/participant.ex:328
+#: lib/graphql/resolvers/participant.ex:335
 #, elixir-autogen, elixir-format
 msgid "Provided profile doesn't have moderator permissions on this event"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:286
+#: lib/graphql/resolvers/event.ex:294
 #, elixir-autogen, elixir-format
 msgid "Organizer profile doesn't have permission to create an event on behalf of this group"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:349
+#: lib/graphql/resolvers/event.ex:369
 #, elixir-autogen, elixir-format
 msgid "This profile doesn't have permission to update an event on behalf of this group"
 msgstr ""
@@ -901,7 +896,7 @@ msgstr ""
 msgid "Your e-mail has been denied registration or uses a disallowed e-mail provider"
 msgstr ""
 
-#: lib/graphql/resolvers/comment.ex:150
+#: lib/graphql/resolvers/comment.ex:156
 #, elixir-autogen, elixir-format
 msgid "Comment not found"
 msgstr ""
@@ -911,12 +906,12 @@ msgstr ""
 msgid "Error while creating a discussion"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:658
+#: lib/graphql/resolvers/user.ex:687
 #, elixir-autogen, elixir-format
 msgid "Error while updating locale"
 msgstr ""
 
-#: lib/graphql/resolvers/person.ex:327
+#: lib/graphql/resolvers/person.ex:329
 #, elixir-autogen, elixir-format
 msgid "Error while uploading pictures"
 msgstr ""
@@ -931,13 +926,13 @@ msgstr ""
 msgid "Failed to update the group"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:333
-#: lib/graphql/resolvers/user.ex:501
+#: lib/graphql/resolvers/admin.ex:357
+#: lib/graphql/resolvers/user.ex:547
 #, elixir-autogen, elixir-format
 msgid "Failed to update user email"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:533
+#: lib/graphql/resolvers/user.ex:562
 #, elixir-autogen, elixir-format
 msgid "Failed to validate user email"
 msgstr ""
@@ -947,37 +942,37 @@ msgstr ""
 msgid "The anonymous actor ID is invalid"
 msgstr ""
 
-#: lib/graphql/resolvers/resource.ex:165
+#: lib/graphql/resolvers/resource.ex:167
 #, elixir-autogen, elixir-format
 msgid "Unknown error while updating resource"
 msgstr ""
 
-#: lib/graphql/resolvers/comment.ex:105
+#: lib/graphql/resolvers/comment.ex:111
 #, elixir-autogen, elixir-format
 msgid "You are not the comment creator"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:458
+#: lib/graphql/resolvers/user.ex:471
 #, elixir-autogen, elixir-format
 msgid "You cannot change your password."
 msgstr ""
 
-#: lib/graphql/resolvers/participant.ex:321
+#: lib/graphql/resolvers/participant.ex:328
 #, elixir-autogen, elixir-format
 msgid "Format not supported"
 msgstr ""
 
-#: lib/graphql/resolvers/participant.ex:305
+#: lib/graphql/resolvers/participant.ex:312
 #, elixir-autogen, elixir-format
 msgid "A dependency needed to export to %{format} is not installed"
 msgstr ""
 
-#: lib/graphql/resolvers/participant.ex:313
+#: lib/graphql/resolvers/participant.ex:320
 #, elixir-autogen, elixir-format
 msgid "An error occured while saving export"
 msgstr ""
 
-#: lib/web/controllers/export_controller.ex:30
+#: lib/web/controllers/export_controller.ex:32
 #, elixir-autogen, elixir-format
 msgid "Export to format %{format} is not enabled on this instance"
 msgstr ""
@@ -987,17 +982,17 @@ msgstr ""
 msgid "Only admins can create groups"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:279
+#: lib/graphql/resolvers/event.ex:280
 #, elixir-autogen, elixir-format
 msgid "Only groups can create events"
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:305
+#: lib/graphql/resolvers/event.ex:313
 #, elixir-autogen, elixir-format
 msgid "Unknown error while creating event"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:514
+#: lib/graphql/resolvers/user.ex:498
 #, elixir-autogen, elixir-format
 msgid "User cannot change email"
 msgstr ""
@@ -1012,12 +1007,12 @@ msgstr ""
 msgid "Follow not found"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:379
+#: lib/graphql/resolvers/user.ex:392
 #, elixir-autogen, elixir-format
 msgid "Profile with username %{username} not found"
 msgstr ""
 
-#: lib/graphql/resolvers/user.ex:374
+#: lib/graphql/resolvers/user.ex:387
 #, elixir-autogen, elixir-format
 msgid "This profile does not belong to you"
 msgstr ""
@@ -1062,22 +1057,22 @@ msgstr ""
 msgid "Your email seems to be using an invalid format"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:382
+#: lib/graphql/resolvers/admin.ex:399
 #, elixir-autogen, elixir-format
 msgid "Can't confirm an already confirmed user"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:386
+#: lib/graphql/resolvers/admin.ex:403
 #, elixir-autogen, elixir-format
 msgid "Deconfirming users is not supported"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:358
+#: lib/graphql/resolvers/admin.ex:375
 #, elixir-autogen, elixir-format
 msgid "The new role must be different"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:309
+#: lib/graphql/resolvers/admin.ex:314
 #, elixir-autogen, elixir-format
 msgid "You need to be logged-in and an administrator to edit an user's details"
 msgstr ""
@@ -1087,28 +1082,28 @@ msgstr ""
 msgid "A profile or group with that name already exists"
 msgstr ""
 
-#: lib/graphql/resolvers/admin.ex:519
+#: lib/graphql/resolvers/admin.ex:542
 #, elixir-autogen, elixir-format
 msgid "Unable to find an instance to follow at this address"
 msgstr ""
 
-#: lib/mobilizon/actors/actor.ex:396
+#: lib/mobilizon/actors/actor.ex:397
 #, elixir-autogen, elixir-format
 msgid "Username must only contain alphanumeric lowercased characters and underscores."
 msgstr ""
 
 #: lib/graphql/resolvers/user.ex:303
-#: lib/graphql/resolvers/user.ex:326
+#: lib/graphql/resolvers/user.ex:333
 #, elixir-autogen, elixir-format
 msgid "This email doesn't seem to be valid"
 msgstr ""
 
-#: lib/graphql/resolvers/comment.ex:65
+#: lib/graphql/resolvers/comment.ex:59
 #, elixir-autogen, elixir-format
 msgid "This comment was detected as spam."
 msgstr ""
 
-#: lib/graphql/resolvers/event.ex:293
+#: lib/graphql/resolvers/event.ex:301
 #, elixir-autogen, elixir-format
 msgid "This event was detected as spam."
 msgstr ""
@@ -1129,7 +1124,7 @@ msgstr ""
 msgid "You need to be a moderator or an administrator to create a note on a report"
 msgstr ""
 
-#: lib/graphql/resolvers/person.ex:330
+#: lib/graphql/resolvers/person.ex:332
 #, elixir-autogen, elixir-format
 msgid "Your profile was detected as spam."
 msgstr ""
@@ -1139,7 +1134,7 @@ msgstr ""
 msgid "Your registration has been detected as spam and cannot be processed."
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:86
+#: lib/web/controllers/application_controller.ex:88
 #, elixir-autogen, elixir-format
 msgid "All of name, scope and redirect_uri parameters are required to create an application"
 msgstr ""
@@ -1154,171 +1149,227 @@ msgstr ""
 msgid "Application token not found"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:89
+#: lib/graphql/resolvers/application.ex:90
 #, elixir-autogen, elixir-format, fuzzy
 msgid "Error while revoking token"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:59
+#: lib/web/controllers/application_controller.ex:61
 #, elixir-autogen, elixir-format
 msgid "Impossible to create application."
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:356
+#: lib/web/controllers/application_controller.ex:358
 #, elixir-autogen, elixir-format
 msgid "Incorrect parameters sent. You need to provide at least the grant_type and client_id parameters, depending on the grant type being used."
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:329
+#: lib/web/controllers/application_controller.ex:331
 #, elixir-autogen, elixir-format
 msgid "Invalid client credentials provided"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:337
+#: lib/web/controllers/application_controller.ex:339
 #, elixir-autogen, elixir-format
 msgid "Invalid refresh token provided"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:170
-#: lib/web/controllers/application_controller.ex:401
+#: lib/web/controllers/application_controller.ex:172
+#: lib/web/controllers/application_controller.ex:403
 #, elixir-autogen, elixir-format
 msgid "No application was found with this client_id"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:37
+#: lib/graphql/resolvers/application.ex:38
 #, elixir-autogen, elixir-format
 msgid "No application with this client_id was found"
 msgstr ""
 
-#: lib/graphql/authorization.ex:80
+#: lib/graphql/authorization.ex:81
 #, elixir-autogen, elixir-format
 msgid "Not authorized to access field %{field}"
 msgstr ""
 
-#: lib/graphql/authorization.ex:70
-#: lib/graphql/authorization.ex:75
+#: lib/graphql/authorization.ex:71
+#: lib/graphql/authorization.ex:76
 #, elixir-autogen, elixir-format
 msgid "Not authorized to access object %{object}"
 msgstr ""
 
-#: lib/graphql/authorization.ex:63
+#: lib/graphql/authorization.ex:64
 #, elixir-autogen, elixir-format
 msgid "Not authorized to access this %{object_type}"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:279
+#: lib/web/controllers/application_controller.ex:281
 #, elixir-autogen, elixir-format
 msgid "Please slow down the rate of your requests"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:267
+#: lib/web/controllers/application_controller.ex:269
 #, elixir-autogen, elixir-format
 msgid "The authorization request is still pending"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:249
+#: lib/web/controllers/application_controller.ex:251
 #, elixir-autogen, elixir-format
 msgid "The client_id provided or the device_code associated is invalid"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:133
+#: lib/graphql/resolvers/application.ex:139
 #, elixir-autogen, elixir-format
 msgid "The device user code was not provided before approving the application"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:304
+#: lib/web/controllers/application_controller.ex:306
 #, elixir-autogen, elixir-format
 msgid "The given device_code has expired"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:44
+#: lib/graphql/resolvers/application.ex:45
 #, elixir-autogen, elixir-format
 msgid "The given redirect_uri is not in the list of allowed redirect URIs"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:158
+#: lib/web/controllers/application_controller.ex:160
 #, elixir-autogen, elixir-format
 msgid "The given scope is not in the list of the app declared scopes"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:109
-#: lib/graphql/resolvers/application.ex:146
+#: lib/graphql/resolvers/application.ex:112
+#: lib/graphql/resolvers/application.ex:154
 #, elixir-autogen, elixir-format
 msgid "The given user code has expired"
 msgstr ""
 
-#: lib/graphql/resolvers/application.ex:112
-#: lib/graphql/resolvers/application.ex:140
+#: lib/graphql/resolvers/application.ex:118
+#: lib/graphql/resolvers/application.ex:146
 #, elixir-autogen, elixir-format
 msgid "The given user code is invalid"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:411
+#: lib/web/controllers/application_controller.ex:413
 #, elixir-autogen, elixir-format
 msgid "The provided client_id does not match the provided code"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:414
+#: lib/web/controllers/application_controller.ex:416
 #, elixir-autogen, elixir-format
 msgid "The provided client_secret is invalid"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:407
+#: lib/web/controllers/application_controller.ex:409
 #, elixir-autogen, elixir-format
 msgid "The provided code is invalid or expired"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:418
+#: lib/web/controllers/application_controller.ex:420
 #, elixir-autogen, elixir-format
 msgid "The provided scope is invalid or not included in the app declared scopes"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:45
+#: lib/web/controllers/application_controller.ex:47
 #, elixir-autogen, elixir-format
 msgid "The scope parameter is not a space separated list of valid scopes"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:292
+#: lib/web/controllers/application_controller.ex:294
 #, elixir-autogen, elixir-format
 msgid "The user rejected the requested authorization"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:404
+#: lib/web/controllers/application_controller.ex:406
 #, elixir-autogen, elixir-format
 msgid "This redirect URI is not allowed"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:381
+#: lib/web/controllers/application_controller.ex:383
 #, elixir-autogen, elixir-format, fuzzy
 msgid "Token not found"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:72
+#: lib/web/controllers/application_controller.ex:74
 #, elixir-autogen, elixir-format
 msgid "Too many requests"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:184
+#: lib/web/controllers/application_controller.ex:186
 #, elixir-autogen, elixir-format
 msgid "Unable to produce device code"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:373
+#: lib/web/controllers/application_controller.ex:375
 #, elixir-autogen, elixir-format
 msgid "Unable to revoke token"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:198
+#: lib/web/controllers/application_controller.ex:200
 #, elixir-autogen, elixir-format
 msgid "You need to pass both client_id and scope as parameters to obtain a device code"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:136
+#: lib/web/controllers/application_controller.ex:138
 #, elixir-autogen, elixir-format
 msgid "You need to provide a valid redirect_uri to autorize an application"
 msgstr ""
 
-#: lib/web/controllers/application_controller.ex:126
+#: lib/web/controllers/application_controller.ex:128
 #, elixir-autogen, elixir-format
 msgid "You need to specify client_id, redirect_uri, scope and state to autorize an application"
 msgstr ""
+
+#: lib/graphql/resolvers/user.ex:306
+#, elixir-autogen, elixir-format
+msgid "Couldn't send an email. Internal error."
+msgstr ""
+
+#: lib/graphql/resolvers/participant.ex:286
+#, elixir-autogen, elixir-format
+msgid "Participation is already confirmed"
+msgstr ""
+
+#: lib/graphql/resolvers/participant.ex:283
+#, elixir-autogen, elixir-format
+msgid "Participation is confirmed but not approved yet by an organizer"
+msgstr ""
+
+#: lib/graphql/resolvers/event.ex:287
+#: lib/graphql/resolvers/event.ex:376
+#, elixir-autogen, elixir-format
+msgid "Providing external registration is not allowed"
+msgstr ""
+
+#: lib/graphql/resolvers/push_subscription.ex:48
+#, elixir-autogen, elixir-format
+msgid "The same push subscription has already been registered"
+msgstr ""
+
+#: lib/graphql/resolvers/admin.ex:536
+#, elixir-autogen, elixir-format
+msgid "This instance is pending follow approval"
+msgstr ""
+
+#: lib/graphql/schema/custom/timezone.ex:23
+#, elixir-autogen, elixir-format
+msgid "Timezone ID %{timezone} is invalid"
+msgstr ""
+
+#: lib/graphql/resolvers/admin.ex:539
+#, elixir-autogen, elixir-format, fuzzy
+msgid "You are already following this instance"
+msgstr ""
+
+#: lib/graphql/resolvers/user.ex:310
+#, elixir-autogen, elixir-format, fuzzy
+msgid "You requested again a confirmation email too soon. Please try again in a few minutes"
+msgstr ""
+
+#: lib/graphql/resolvers/user.ex:341
+#, elixir-autogen, elixir-format
+msgid "You requested again a password reset email too soon. Please try again in a few minutes"
+msgstr ""
+
+#: lib/graphql/resolvers/user.ex:368
+#, elixir-autogen, elixir-format
+msgid "The token you provided is invalid. Make sure that the URL is exactly the one provided inside the email you got."
+msgstr ""