diff --git a/js/src/i18n/fi.json b/js/src/i18n/fi.json
index 28f0dd673..941151c8f 100644
--- a/js/src/i18n/fi.json
+++ b/js/src/i18n/fi.json
@@ -12,6 +12,7 @@
   "@{group}": "@{group}",
   "@{username}": "@{username}",
   "@{username} ({role})": "@{username} ({role)}",
+  "@{username}'s follow request was rejected": "Käyttäjän @{username} seuraamispyyntö hylättiin",
   "A cookie is a small file containing information that is sent to your computer when you visit a website. When you visit the site again, the cookie allows that site to recognize your browser. Cookies may store user preferences and other information. You can configure your browser to refuse all cookies. However, this may result in some website features or services partially working. Local storage works the same way but allows you to store more data.": "Evästeellä tarkoitetaan sellaista tietoa, jonka palvelun tarjoajan palvelin lähettää käyttäjän selainohjelmalle pyytäen selainta tallentamaan tiedon käyttäjän päätelaitteelle ja jota kyseinen palvelun tarjoajan palvelin voi myöhemmin pyytää takaisin. Kyse on käytännössä pienestä tietomäärästä, tyypillisesti lyhyestä tekstistä. Voit asettaa selaimen kieltäytymään kaikista evästeistä, mutta tämä saattaa rikkoa joitakin toiminnallisuuksia.",
   "A cookie is a small file containing informations that is sent to your computer when you visit a website. When you visit the site again, the cookie allows that site to recognize your browser. Cookies may store user preferences and other information. You can configure your browser to refuse all cookies. However, this may result in some website features or services partially working. Local storage works the same way but allows to store more data.": "Evästeet ovat pieniä tiedostoja, joita verkkosivut lähettävät käyttäjän tietokoneelle käyttäjän vieraillessa verkkosivuilla. Kun käyttäjä vierailee sivulla uudelleen, sivusto tunnistaa käyttäjän selaimen evästeen avulla. Evästeisiin voidaan tallentaa käyttäjän valintoja ja muuta tietoa. Selaimen voi asettaa hylkäämään kaikki evästeet. Tällöin kuitenkin osa verkkosivun toiminnoista tai palveluista voi lakata toimimasta. Paikallisesti tallennettavat tiedot toimivat samalla tavoin, mutta niihin voidaan tallentaa suurempia tietomääriä.",
   "A federated software": "Federoitu ohjelmisto",
@@ -60,10 +61,11 @@
   "Administrator": "Ylläpitäjä",
   "All good, let's continue!": "Kaikki kunnossa, eteenpäin!",
   "All group members and other eventual server admins will still be able to view this information.": "Ryhmän kaikki jäsenet ja palvelimen mahdolliset muut ylläpitäjät voivat edelleen nähdä tämän tiedon.",
-  "All the places have already been taken": "Kaikki paikat on varattu|Vielä yksi paikka vapaana|Vielä {places} paikkaa vapaana",
+  "All the places have already been taken": "Kaikki paikat on jo varattu",
   "Allow all comments": "Salli kaikki kommentit",
   "Allow all comments from users with accounts": "Salli kommentit kirjautuneilta käyttäjiltä",
   "Allow registrations": "Salli rekisteröityminen",
+  "An error has occured. Sorry about that. You may try to reload the page.": "Tapahtui virhe. Yritä ladata sivu uudelleen.",
   "An error has occurred.": "Tapahtui virhe.",
   "An ethical alternative": "Eettinen vaihtoehto",
   "An instance is an installed version of the Mobilizon software running on a server. An instance can be run by anyone using the {mobilizon_software} or other federated apps, aka the “fediverse”. This instance's name is {instance_name}. Mobilizon is a federated network of multiple instances (just like email servers), users registered on different instances may communicate even though they didn't register on the same instance.": "Palvelin tarkoittaa palvelintietokoneelle asennettua Mobilizon-ohjelmaa. Palvelinta voi käyttää kuka tahansa, jolla on käytössään {mobilizon_software} tai jokin muu federoituva sovellus, eli se on osa niin kutsuttua fediversumia. Tämän palvelimen nimi on {instance_name}. Mobilizon on useiden palvelinten muodostama federoituva verkosto (sähköpostipalvelinten tavaan), eli eri palvelimille rekisteröityneet käyttäjät voivat olla yhteydessä toisiinsa vaikka eivät olisi rekisteröityneet samalle palvelimelle.",
@@ -285,7 +287,9 @@
   "Find an instance": "Etsi palvelinta",
   "Find another instance": "Etsi toinen instanssi",
   "Followed by {count} persons": "{count} henkilöä seuraa",
+  "Follower": "Seuraaja",
   "Followers": "Seuraajat",
+  "Followers will receive new public events and posts.": "Seuraajat saavat tiedon uusista julkisista tapahtumista ja julkaisuista.",
   "Followings": "Seurattavat",
   "For instance: London": "Esimerkiksi: Lahti",
   "For instance: London, Taekwondo, Architecture…": "Esimerkiksi: Tampere, taekwondo, arkkitehtuuri, …",
@@ -305,6 +309,7 @@
   "Go to the event page": "Siirry tapahtumasivulle",
   "Going as {name}": "Osallistu nimellä {name}",
   "Group": "Ryhmä",
+  "Group Followers": "Ryhmän seuraajat",
   "Group List": "Ryhmäluettelo",
   "Group Members": "Ryhmän jäsenet",
   "Group address": "Ryhmän osoite",
@@ -417,6 +422,7 @@
   "Manage my notifications": "Hallinnoi ilmoituksia",
   "Manage my settings": "Hallinnoi asetuksia",
   "Manage participations": "Hallinnoi osallistumisia",
+  "Manually approve new followers": "Hyväksy uudet seuraajat käsin",
   "Manually invite new members": "Kutsu uusia jäseniä",
   "Mark as resolved": "Merkitse ratkaistuksi",
   "Member": "Jäsen",
@@ -469,6 +475,7 @@
   "No discussions yet": "Ei keskusteluja vielä",
   "No end date": "Ei päättymispäivää",
   "No events found": "Tapahtumia ei löytynyt",
+  "No follower matches the filters": "Ei suodatinta vastaavia seuraajia",
   "No group found": "Ryhmää ei löytynyt",
   "No groups found": "Ryhmiä ei löytynyt",
   "No instance follows your instance yet.": "Mikään palvelin ei vielä seuraa tätä palvelinta.",
@@ -480,6 +487,7 @@
   "No message": "Ei viestiä",
   "No moderation logs yet": "Moderointilokia ei vielä ole",
   "No notification settings yet": "Ei vielä ilmoitusasetuksia",
+  "No one is participating|One person participating|{going} people participating": "Ei osallistujia|Yksi osallistuja|{going} osallistujaa",
   "No ongoing todos": "Ei keskeneräisiä tehtäviä",
   "No open reports yet": "Avoimia raportteja ei vielä ole",
   "No participant matches the filters": "Ei suodattimia vastaavia osallistujia",
@@ -838,6 +846,7 @@
   "Welcome back!": "Tervetuloa takaisin!",
   "Welcome on your administration panel": "Tervetuloa hallintapaneeliin",
   "Welcome to Mobilizon, {username}!": "Tervetuloa Mobilizoniin, {username}!",
+  "What can I do to help?": "Kuinka voin auttaa?",
   "When a moderator from the group creates an event and attributes it to the group, it will show up here.": "Tässä näkyy tapahtumat, jotka moderaattori on luonut ja liittänyt tähän ryhmään.",
   "Who can view this event and participate": "Kuka voi nähdä tapahtuman ja osallistua siihen",
   "Who can view this post": "Kuka voi nähdä tämän julkaisun",
diff --git a/priv/gettext/fi/LC_MESSAGES/activity.po b/priv/gettext/fi/LC_MESSAGES/activity.po
index ffe1634f7..3432d4a82 100644
--- a/priv/gettext/fi/LC_MESSAGES/activity.po
+++ b/priv/gettext/fi/LC_MESSAGES/activity.po
@@ -8,256 +8,265 @@
 ## to merge POT files into PO files.
 msgid ""
 msgstr ""
+"PO-Revision-Date: 2021-06-12 00:15+0000\n"
+"Last-Translator: Taru Luojola <taru.luojola@posteo.net>\n"
+"Language-Team: Finnish <https://weblate.framasoft.org/projects/mobilizon/"
+"activity/fi/>\n"
 "Language: fi\n"
-"Plural-Forms: nplurals=2\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Generator: Weblate 4.6.2\n"
+"Content-Transfer-Encoding: 8bit\n"
 
-#, elixir-format
 #: lib/service/activity/renderer/member.ex:38
 #: lib/web/templates/email/activity/_member_activity_item.html.eex:19 lib/web/templates/email/activity/_member_activity_item.text.eex:12
-msgid "%{member} accepted the invitation to join the group."
-msgstr ""
-
 #, elixir-format
+msgid "%{member} accepted the invitation to join the group."
+msgstr "%{member} hyväksyi kutsun liittyä ryhmään."
+
 #: lib/service/activity/renderer/member.ex:42
 #: lib/web/templates/email/activity/_member_activity_item.html.eex:26 lib/web/templates/email/activity/_member_activity_item.text.eex:17
-msgid "%{member} rejected the invitation to join the group."
-msgstr ""
-
 #, elixir-format
+msgid "%{member} rejected the invitation to join the group."
+msgstr "%{member} hylkäsi kutsun liittyä ryhmään."
+
 #: lib/service/activity/renderer/member.ex:30
 #: lib/web/templates/email/activity/_member_activity_item.html.eex:4 lib/web/templates/email/activity/_member_activity_item.text.eex:1
-msgid "%{member} requested to join the group."
-msgstr ""
-
 #, elixir-format
+msgid "%{member} requested to join the group."
+msgstr "%{member} haluaa liittyä ryhmään."
+
 #: lib/service/activity/renderer/member.ex:34
 #: lib/web/templates/email/activity/_member_activity_item.html.eex:11 lib/web/templates/email/activity/_member_activity_item.text.eex:6
-msgid "%{member} was invited by %{profile}."
-msgstr ""
-
 #, elixir-format
+msgid "%{member} was invited by %{profile}."
+msgstr "%{profile} kutsui jäsenen %{member}."
+
 #: lib/service/activity/renderer/member.ex:50
 #: lib/web/templates/email/activity/_member_activity_item.html.eex:40 lib/web/templates/email/activity/_member_activity_item.text.eex:27
-msgid "%{profile} added the member %{member}."
-msgstr ""
-
 #, elixir-format
+msgid "%{profile} added the member %{member}."
+msgstr "%{profile} lisäsi jäsenen %{member}."
+
 #: lib/service/activity/renderer/comment.ex:72
 #: lib/service/activity/renderer/discussion.ex:53 lib/service/activity/renderer/post.ex:53
 #: lib/web/templates/email/activity/_comment_activity_item.html.eex:49 lib/web/templates/email/activity/_comment_activity_item.text.eex:19
 #: lib/web/templates/email/activity/_discussion_activity_item.html.eex:46 lib/web/templates/email/activity/_discussion_activity_item.text.eex:19
-msgid "%{profile} archived the discussion %{discussion}."
-msgstr ""
-
 #, elixir-format
+msgid "%{profile} archived the discussion %{discussion}."
+msgstr "%{profile} arkistoi keskustelun %{discussion}."
+
 #: lib/service/activity/renderer/discussion.ex:23
 #: lib/service/activity/renderer/post.ex:23 lib/web/templates/email/activity/_comment_activity_item.html.eex:4
 #: lib/web/templates/email/activity/_comment_activity_item.text.eex:1 lib/web/templates/email/activity/_discussion_activity_item.html.eex:4
 #: lib/web/templates/email/activity/_discussion_activity_item.text.eex:1
-msgid "%{profile} created the discussion %{discussion}."
-msgstr ""
-
 #, elixir-format
+msgid "%{profile} created the discussion %{discussion}."
+msgstr "%{profile} loi keskustelun %{discussion}."
+
 #: lib/service/activity/renderer/resource.ex:24
 #: lib/web/templates/email/activity/_resource_activity_item.html.eex:5 lib/web/templates/email/activity/_resource_activity_item.text.eex:2
-msgid "%{profile} created the folder %{resource}."
-msgstr ""
-
 #, elixir-format
+msgid "%{profile} created the folder %{resource}."
+msgstr "%{profile} loi kansion %{resource}."
+
 #: lib/web/templates/email/activity/_group_activity_item.html.eex:4
 #: lib/web/templates/email/activity/_group_activity_item.text.eex:1
-msgid "%{profile} created the group %{group}."
-msgstr ""
-
 #, elixir-format
+msgid "%{profile} created the group %{group}."
+msgstr "%{profile} loi ryhmän %{group}."
+
 #: lib/service/activity/renderer/resource.ex:33
 #: lib/web/templates/email/activity/_resource_activity_item.html.eex:20 lib/web/templates/email/activity/_resource_activity_item.text.eex:8
-msgid "%{profile} created the resource %{resource}."
-msgstr ""
-
 #, elixir-format
+msgid "%{profile} created the resource %{resource}."
+msgstr "%{profile} loi resurssin %{resource}."
+
 #: lib/service/activity/renderer/comment.ex:82
 #: lib/service/activity/renderer/discussion.ex:63 lib/service/activity/renderer/post.ex:63
 #: lib/web/templates/email/activity/_comment_activity_item.html.eex:64 lib/web/templates/email/activity/_comment_activity_item.text.eex:25
 #: lib/web/templates/email/activity/_discussion_activity_item.html.eex:60 lib/web/templates/email/activity/_discussion_activity_item.text.eex:25
-msgid "%{profile} deleted the discussion %{discussion}."
-msgstr ""
-
 #, elixir-format
+msgid "%{profile} deleted the discussion %{discussion}."
+msgstr "%{profile} poisti keskustelun %{discussion}."
+
 #: lib/service/activity/renderer/resource.ex:97
 #: lib/web/templates/email/activity/_resource_activity_item.html.eex:103 lib/web/templates/email/activity/_resource_activity_item.text.eex:40
-msgid "%{profile} deleted the folder %{resource}."
-msgstr ""
-
 #, elixir-format
+msgid "%{profile} deleted the folder %{resource}."
+msgstr "%{profile} poisti kansion %{resource}."
+
 #: lib/service/activity/renderer/resource.ex:106
 #: lib/web/templates/email/activity/_resource_activity_item.html.eex:111 lib/web/templates/email/activity/_resource_activity_item.text.eex:45
-msgid "%{profile} deleted the resource %{resource}."
-msgstr ""
-
 #, elixir-format
+msgid "%{profile} deleted the resource %{resource}."
+msgstr "%{profile} poisti resurssin %{resource}."
+
 #: lib/service/activity/renderer/member.ex:58
 #: lib/web/templates/email/activity/_member_activity_item.html.eex:56 lib/web/templates/email/activity/_member_activity_item.text.eex:39
-msgid "%{profile} excluded member %{member}."
-msgstr ""
-
 #, elixir-format
+msgid "%{profile} excluded member %{member}."
+msgstr "%{profile} hylkäsi jäsenen %{member}."
+
 #: lib/service/activity/renderer/resource.ex:76
 #: lib/web/templates/email/activity/_resource_activity_item.html.eex:71 lib/web/templates/email/activity/_resource_activity_item.text.eex:28
-msgid "%{profile} moved the folder %{resource}."
-msgstr ""
-
 #, elixir-format
+msgid "%{profile} moved the folder %{resource}."
+msgstr "%{profile} siirsi kansion %{resource}."
+
 #: lib/service/activity/renderer/resource.ex:85
 #: lib/web/templates/email/activity/_resource_activity_item.html.eex:86 lib/web/templates/email/activity/_resource_activity_item.text.eex:34
-msgid "%{profile} moved the resource %{resource}."
-msgstr ""
-
 #, elixir-format
+msgid "%{profile} moved the resource %{resource}."
+msgstr "%{profile} siirsi resurssin %{resource}."
+
 #: lib/service/activity/renderer/member.ex:62
 #: lib/web/templates/email/activity/_member_activity_item.html.eex:64 lib/web/templates/email/activity/_member_activity_item.text.eex:45
-msgid "%{profile} quit the group."
-msgstr ""
-
 #, elixir-format
+msgid "%{profile} quit the group."
+msgstr "%{profile} poistui ryhmästä."
+
 #: lib/service/activity/renderer/comment.ex:62
 #: lib/service/activity/renderer/discussion.ex:43 lib/service/activity/renderer/post.ex:43
 #: lib/web/templates/email/activity/_comment_activity_item.html.eex:34 lib/web/templates/email/activity/_comment_activity_item.text.eex:13
 #: lib/web/templates/email/activity/_discussion_activity_item.html.eex:32 lib/web/templates/email/activity/_discussion_activity_item.text.eex:13
-msgid "%{profile} renamed the discussion %{discussion}."
-msgstr ""
-
 #, elixir-format
+msgid "%{profile} renamed the discussion %{discussion}."
+msgstr "%{profile} muutti keskustelun %{discussion} nimer."
+
 #: lib/service/activity/renderer/resource.ex:45
 #: lib/web/templates/email/activity/_resource_activity_item.html.eex:37 lib/web/templates/email/activity/_resource_activity_item.text.eex:14
-msgid "%{profile} renamed the folder from %{old_resource_title} to %{resource}."
-msgstr ""
-
 #, elixir-format
+msgid "%{profile} renamed the folder from %{old_resource_title} to %{resource}."
+msgstr "%{profile} muutti kansion %{old_resource_title} nimeksi %{resource}."
+
 #: lib/service/activity/renderer/resource.ex:59
 #: lib/web/templates/email/activity/_resource_activity_item.html.eex:53 lib/web/templates/email/activity/_resource_activity_item.text.eex:21
-msgid "%{profile} renamed the resource from %{old_resource_title} to %{resource}."
-msgstr ""
-
 #, elixir-format
+msgid "%{profile} renamed the resource from %{old_resource_title} to %{resource}."
+msgstr "%{profile} muutti resurssin %{old_resource_title} nimeksi %{resource}."
+
 #: lib/service/activity/renderer/discussion.ex:33
 #: lib/service/activity/renderer/post.ex:33 lib/web/templates/email/activity/_comment_activity_item.html.eex:19
 #: lib/web/templates/email/activity/_comment_activity_item.text.eex:7 lib/web/templates/email/activity/_discussion_activity_item.html.eex:18
 #: lib/web/templates/email/activity/_discussion_activity_item.text.eex:7
-msgid "%{profile} replied to the discussion %{discussion}."
-msgstr ""
-
 #, elixir-format
+msgid "%{profile} replied to the discussion %{discussion}."
+msgstr "%{profile} vastasi keskusteluun %{discussion}."
+
 #: lib/web/templates/email/activity/_group_activity_item.html.eex:19
 #: lib/web/templates/email/activity/_group_activity_item.text.eex:7
-msgid "%{profile} updated the group %{group}."
-msgstr ""
-
 #, elixir-format
+msgid "%{profile} updated the group %{group}."
+msgstr "%{profile} päivitti ryhmää %{group}."
+
 #: lib/service/activity/renderer/member.ex:54
 #: lib/web/templates/email/activity/_member_activity_item.html.eex:48 lib/web/templates/email/activity/_member_activity_item.text.eex:33
-msgid "%{profile} updated the member %{member}."
-msgstr ""
-
 #, elixir-format
+msgid "%{profile} updated the member %{member}."
+msgstr "%{profile} päivitti jäsentä %{member}."
+
 #: lib/service/activity/renderer/event.ex:23
 #: lib/web/templates/email/activity/_event_activity_item.html.eex:4 lib/web/templates/email/activity/_event_activity_item.text.eex:1
-msgid "The event %{event} was created by %{profile}."
-msgstr ""
-
 #, elixir-format
+msgid "The event %{event} was created by %{profile}."
+msgstr "%{profile} loi tapahtuman %{event}."
+
 #: lib/service/activity/renderer/event.ex:43
 #: lib/web/templates/email/activity/_event_activity_item.html.eex:34 lib/web/templates/email/activity/_event_activity_item.text.eex:13
-msgid "The event %{event} was deleted by %{profile}."
-msgstr ""
-
 #, elixir-format
+msgid "The event %{event} was deleted by %{profile}."
+msgstr "%{profile} poisti tapahtuman %{event}."
+
 #: lib/service/activity/renderer/event.ex:33
 #: lib/web/templates/email/activity/_event_activity_item.html.eex:19 lib/web/templates/email/activity/_event_activity_item.text.eex:7
-msgid "The event %{event} was updated by %{profile}."
-msgstr ""
-
 #, elixir-format
+msgid "The event %{event} was updated by %{profile}."
+msgstr "%{profile} päivitti tapahtumaa %{event}."
+
 #: lib/service/activity/renderer/group.ex:23
 #: lib/web/templates/email/activity/_post_activity_item.html.eex:4 lib/web/templates/email/activity/_post_activity_item.text.eex:1
-msgid "The post %{post} was created by %{profile}."
-msgstr ""
-
 #, elixir-format
+msgid "The post %{post} was created by %{profile}."
+msgstr "%{profile} loi julkaisun %{post}."
+
 #: lib/service/activity/renderer/group.ex:43
 #: lib/web/templates/email/activity/_post_activity_item.html.eex:34 lib/web/templates/email/activity/_post_activity_item.text.eex:13
-msgid "The post %{post} was deleted by %{profile}."
-msgstr ""
-
 #, elixir-format
+msgid "The post %{post} was deleted by %{profile}."
+msgstr "%{profile} poisti julkaisun %{post}."
+
 #: lib/service/activity/renderer/group.ex:33
 #: lib/web/templates/email/activity/_post_activity_item.html.eex:19 lib/web/templates/email/activity/_post_activity_item.text.eex:7
-msgid "The post %{post} was updated by %{profile}."
-msgstr ""
-
 #, elixir-format
+msgid "The post %{post} was updated by %{profile}."
+msgstr "%{profile} päivitti julkaisun %{post}."
+
 #: lib/service/activity/renderer/member.ex:46
 #: lib/web/templates/email/activity/_member_activity_item.html.eex:33 lib/web/templates/email/activity/_member_activity_item.text.eex:22
-msgid "%{member} joined the group."
-msgstr ""
-
 #, elixir-format
+msgid "%{member} joined the group."
+msgstr "%{member} liittyi ryhmään."
+
 #: lib/service/activity/renderer/event.ex:63
 #: lib/web/templates/email/activity/_event_activity_item.html.eex:58 lib/web/templates/email/activity/_event_activity_item.text.eex:25
-msgid "%{profile} posted a comment on the event %{event}."
-msgstr ""
-
 #, elixir-format
+msgid "%{profile} posted a comment on the event %{event}."
+msgstr "%{profile} kommentoi tapahtumaa %{event}."
+
 #: lib/service/activity/renderer/event.ex:54
 #: lib/web/templates/email/activity/_event_activity_item.html.eex:43 lib/web/templates/email/activity/_event_activity_item.text.eex:19
-msgid "%{profile} replied to a comment on the event %{event}."
-msgstr ""
-
 #, elixir-format
+msgid "%{profile} replied to a comment on the event %{event}."
+msgstr "%{profile} vastasi tapahtuman %{event} kommenttiin."
+
 #: lib/web/templates/email/email_direct_activity.html.eex:144
 #: lib/web/templates/email/email_direct_activity.text.eex:23
+#, elixir-format
 msgid "Don't want to receive activity notifications? You may change frequency or disable them in your settings."
 msgstr ""
+"Jos et halua vastaanottaa toimenpideilmoituksia, voit muuttaa "
+"ilmoitustiheyttä tai poistaa ilmoitukset käytöstä asetuksista."
 
-#, elixir-format
 #: lib/web/templates/email/email_direct_activity.html.eex:124
 #: lib/web/templates/email/email_direct_activity.text.eex:19
+#, elixir-format
 msgid "View one more activity"
 msgid_plural "View %{count} more activities"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "Näytä seuraava toimenpide"
+msgstr[1] "Näytä %{count} seuraavaa toimenpidettä"
 
-#, elixir-format
 #: lib/web/templates/email/email_direct_activity.html.eex:38
 #: lib/web/templates/email/email_direct_activity.text.eex:4
+#, elixir-format
 msgid "There has been an activity!"
 msgid_plural "There has been some activity!"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "Toimenpide!"
+msgstr[1] "Toimenpiteitä!"
 
-#, elixir-format
 #: lib/service/activity/renderer/renderer.ex:38
+#, elixir-format
 msgid "Activity on %{instance}"
-msgstr ""
+msgstr "Toimenpide palvelimella %{instance}"
 
-#, elixir-format, fuzzy
 #: lib/service/activity/renderer/comment.ex:38
 #: lib/web/templates/email/activity/_comment_activity_item.html.eex:88 lib/web/templates/email/activity/_comment_activity_item.text.eex:37
-msgid "%{profile} has posted an announcement under event %{event}."
-msgstr ""
-
 #, elixir-format
-#: lib/web/templates/email/activity/_comment_activity_item.text.eex:31
-msgid "%{profile} mentionned you in a comment under %{event}."
-msgstr ""
+msgid "%{profile} has posted an announcement under event %{event}."
+msgstr "%{profile} on julkaissut ilmoituksen tapahtumassa %{event}."
+
+#: lib/web/templates/email/activity/_comment_activity_item.text.eex:31
+#, elixir-format
+msgid "%{profile} mentionned you in a comment under %{event}."
+msgstr "%{profile} mainitsi sinut tapahtuman %{event} kommentissa."
 
-#, elixir-format, fuzzy
 #: lib/service/activity/renderer/comment.ex:24
 #: lib/web/templates/email/activity/_comment_activity_item.html.eex:73
+#, elixir-format
 msgid "%{profile} mentionned you in a comment under event %{event}."
-msgstr ""
+msgstr "%{profile} mainitsi sinut tapahtuman %{event} kommentissa."
 
-#, elixir-format, fuzzy
 #: lib/service/activity/renderer/comment.ex:52
+#, elixir-format
 msgid "%{profile} mentionned you in the discussion %{discussion}."
-msgstr ""
+msgstr "%{profile} mainitsi sinut keskustelussa %{discussion}."
diff --git a/priv/gettext/fi/LC_MESSAGES/default.po b/priv/gettext/fi/LC_MESSAGES/default.po
index 79c31ef7a..647aab124 100644
--- a/priv/gettext/fi/LC_MESSAGES/default.po
+++ b/priv/gettext/fi/LC_MESSAGES/default.po
@@ -3,7 +3,7 @@ msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2019-12-17 12:51+0000\n"
-"PO-Revision-Date: 2021-01-20 16:18+0000\n"
+"PO-Revision-Date: 2021-06-12 00:15+0000\n"
 "Last-Translator: Taru Luojola <taru.luojola@posteo.net>\n"
 "Language-Team: Finnish <https://weblate.framasoft.org/projects/mobilizon/"
 "backend/fi/>\n"
@@ -12,265 +12,265 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 4.4\n"
+"X-Generator: Weblate 4.6.2\n"
 
-#, elixir-format
 #: lib/web/templates/email/password_reset.html.eex:48
+#, 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 ""
 "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."
 
-#, elixir-format
 #: lib/web/templates/email/report.html.eex:74
+#, elixir-format
 msgid "%{title} by %{creator}"
 msgstr "%{title} luojalta %{creator}"
 
-#, elixir-format
 #: lib/web/templates/email/registration_confirmation.html.eex:58
+#, elixir-format
 msgid "Activate my account"
 msgstr "Aktivoi tilini"
 
-#, elixir-format
 #: lib/web/templates/email/email.html.eex:118
 #: lib/web/templates/email/email.text.eex:9
+#, elixir-format
 msgid "Ask the community on Framacolibri"
 msgstr "Kysy yhteisöltä Framacolibrissa"
 
-#, elixir-format
 #: lib/web/templates/email/report.text.eex:15
+#, elixir-format
 msgid "Comments"
 msgstr "Kommentit"
 
-#, elixir-format
 #: lib/web/templates/email/report.html.eex:72
 #: lib/web/templates/email/report.text.eex:11
+#, elixir-format
 msgid "Event"
 msgstr "Tapahtuma"
 
-#, elixir-format
 #: lib/web/email/user.ex:48
+#, elixir-format
 msgid "Instructions to reset your password on %{instance}"
 msgstr "Ohjeet salasanan palauttamiseen palvelimella %{instance}"
 
-#, elixir-format
 #: lib/web/templates/email/report.text.eex:21
+#, elixir-format
 msgid "Reason"
 msgstr "Syy"
 
-#, elixir-format
 #: lib/web/templates/email/password_reset.html.eex:61
+#, elixir-format
 msgid "Reset Password"
 msgstr "Palauta salasana"
 
-#, elixir-format
 #: lib/web/templates/email/password_reset.html.eex:41
+#, elixir-format
 msgid "Resetting your password is easy. Just press the button below and follow the instructions. We'll have you up and running in no time."
 msgstr ""
 "Salasana on helppo palauttaa. Paina alla olevaa painiketta ja noudata "
 "ohjeita. Pääset tuota pikaa jatkamaan käyttöä."
 
-#, elixir-format
 #: lib/web/email/user.ex:28
+#, elixir-format
 msgid "Instructions to confirm your Mobilizon account on %{instance}"
 msgstr "Ohjeet Mobilizon-tilin vahvistamiseen palvelimella %{instance}"
 
-#, elixir-format
 #: lib/web/email/admin.ex:24
+#, elixir-format
 msgid "New report on Mobilizon instance %{instance}"
 msgstr "Uusi raportti Mobilizon-palvelimella %{instance}"
 
-#, elixir-format
 #: lib/web/templates/email/before_event_notification.html.eex:51
 #: lib/web/templates/email/before_event_notification.text.eex:4
+#, elixir-format
 msgid "Go to event page"
 msgstr "Siirry tapahtuman sivulle"
 
-#, elixir-format
 #: lib/web/templates/email/report.text.eex:1
+#, elixir-format
 msgid "New report from %{reporter} on %{instance}"
 msgstr "Uusi raportti käyttäjältä %{reporter} palvelimella %{instance}"
 
-#, elixir-format
 #: lib/web/templates/email/event_participation_approved.text.eex:1
+#, elixir-format
 msgid "Participation approved"
 msgstr "Osallistuminen hyväksytty"
 
-#, elixir-format
 #: lib/web/templates/email/password_reset.html.eex:13
 #: lib/web/templates/email/password_reset.text.eex:1
+#, elixir-format
 msgid "Password reset"
 msgstr "Salasanan palautus"
 
-#, elixir-format
 #: lib/web/templates/email/password_reset.text.eex:7
+#, elixir-format
 msgid "Resetting your password is easy. Just click the link below and follow the instructions. We'll have you up and running in no time."
 msgstr ""
 "Salasana on helppo palauttaa. Paina alla olevaa linkkiä ja noudata ohjeita. "
 "Pääset tuota pikaa jatkamaan käyttöä."
 
-#, elixir-format
 #: lib/web/templates/email/registration_confirmation.text.eex:5
+#, elixir-format
 msgid "You created an account on %{host} with this email address. You are one click away from activating it. If this wasn't you, please ignore this email."
 msgstr ""
 "Loit palvelimelle %{host} tilin tällä sähköpostiosoitteella. Aktivoi se "
 "yhdellä napsautuksella. Jos et luonut tiliä itse, voit jättää tämän viestin "
 "huomiotta."
 
-#, elixir-format
 #: lib/web/email/participation.ex:112
+#, elixir-format
 msgid "Your participation to event %{title} has been approved"
 msgstr "Osallistumisesi tapahtumaan %{title} on hyväksytty"
 
-#, elixir-format
 #: lib/web/email/participation.ex:70
+#, elixir-format
 msgid "Your participation to event %{title} has been rejected"
 msgstr "Osallistumisesi tapahtumaan %{title) on hylätty"
 
-#, elixir-format
 #: lib/web/email/event.ex:37
+#, elixir-format
 msgid "Event %{title} has been updated"
 msgstr "Tapahtumaa %{title} on päivitetty"
 
-#, elixir-format
 #: lib/web/templates/email/event_updated.text.eex:15
+#, elixir-format
 msgid "New title: %{title}"
 msgstr "Uusi otsikko: %{title}"
 
-#, elixir-format
 #: lib/web/templates/email/password_reset.text.eex:5
+#, elixir-format
 msgid "You requested a new password for your account on %{instance}."
 msgstr "Pyysit uutta salasanaa tilillesi palvelimella %{instance}."
 
-#, elixir-format
 #: lib/web/templates/email/email.html.eex:86
+#, elixir-format
 msgid "Warning"
 msgstr "Varoitus"
 
-#, elixir-format
 #: lib/web/email/participation.ex:135
+#, elixir-format
 msgid "Confirm your participation to event %{title}"
 msgstr "Vahvista osallistumisesi tapahtumaan %{title}"
 
-#, elixir-format
 #: lib/web/templates/api/privacy.html.eex:75
+#, elixir-format
 msgctxt "terms"
 msgid "An internal ID for your current selected identity"
 msgstr "Valittuna olevan identiteettisi sisäinen tunniste"
 
-#, elixir-format
 #: lib/web/templates/api/privacy.html.eex:74
+#, elixir-format
 msgctxt "terms"
 msgid "An internal user ID"
 msgstr "Sisäinen käyttäjätunniste"
 
-#, elixir-format
 #: lib/web/templates/api/privacy.html.eex:37
+#, elixir-format
 msgctxt "terms"
 msgid "Any of the information we collect from you may be used in the following ways:"
 msgstr "Kaikkia sinulta kerättäviä tietoja voidaan käyttää seuraavin tavoin:"
 
-#, elixir-format
 #: lib/web/templates/api/privacy.html.eex:9
+#, elixir-format
 msgctxt "terms"
 msgid "Basic account information"
 msgstr "Tilin perustiedot"
 
-#, elixir-format
 #: lib/web/templates/api/privacy.html.eex:25
+#, elixir-format
 msgctxt "terms"
 msgid "Do not share any dangerous information over Mobilizon."
 msgstr "Älä jaa vaarallisia tietoja Mobilizonin kautta."
 
-#, elixir-format
 #: lib/web/templates/api/privacy.html.eex:90
+#, elixir-format
 msgctxt "terms"
 msgid "Do we disclose any information to outside parties?"
 msgstr "Luovutetaanko tietoja ulkopuolisille?"
 
-#, elixir-format
 #: lib/web/templates/api/privacy.html.eex:68
+#, elixir-format
 msgctxt "terms"
 msgid "Do we use cookies?"
 msgstr "Käytetäänkö evästeitä?"
 
-#, elixir-format
 #: lib/web/templates/api/privacy.html.eex:51
+#, elixir-format
 msgctxt "terms"
 msgid "How do we protect your information?"
 msgstr "Kuinka tietojasi suojataan?"
 
-#, elixir-format
 #: lib/web/templates/api/privacy.html.eex:29
+#, elixir-format
 msgctxt "terms"
 msgid "IPs and other metadata"
 msgstr "IP-osoitteet ja muu metadata"
 
-#, elixir-format
 #: lib/web/templates/api/privacy.html.eex:17
+#, elixir-format
 msgctxt "terms"
 msgid "Published events and comments"
 msgstr "Julkaistut tapahtumat ja kommentit"
 
-#, elixir-format
 #: lib/web/templates/api/privacy.html.eex:64
+#, elixir-format
 msgctxt "terms"
 msgid "Retain the IP addresses associated with registered users no more than 12 months."
 msgstr ""
 "Säilyttämään rekisteröityjen käyttäjien IP-osoitteita enintään 12 kuukautta."
 
-#, elixir-format
 #: lib/web/templates/api/privacy.html.eex:76
+#, elixir-format
 msgctxt "terms"
 msgid "Tokens to authenticate you"
 msgstr "Tunnistautumismerkkisi"
 
-#, elixir-format
 #: lib/web/templates/api/privacy.html.eex:31
+#, elixir-format
 msgctxt "terms"
 msgid "We also may retain server logs which include the IP address of every request to our server."
 msgstr ""
 "Myös palvelinlokeja, jotka sisältävät jokaisen palvelimelle tehdyn pyynnön "
 "IP-osoitteen, saatetaan säilyttää."
 
-#, elixir-format
 #: lib/web/templates/api/privacy.html.eex:70
+#, elixir-format
 msgctxt "terms"
 msgid "We store the following information on your device when you connect:"
 msgstr "Kun muodostat yhteyden, laitteellesi tallennetaan seuraavat tiedot:"
 
-#, elixir-format
 #: lib/web/templates/api/privacy.html.eex:58
+#, elixir-format
 msgctxt "terms"
 msgid "We will make a good faith effort to:"
 msgstr "Pyrimme parhaamme mukaan seuraavaan:"
 
-#, elixir-format
 #: lib/web/templates/api/privacy.html.eex:35
+#, elixir-format
 msgctxt "terms"
 msgid "What do we use your information for?"
 msgstr "Mihin käytämme tietojasi?"
 
-#, elixir-format
 #: lib/web/templates/api/privacy.html.eex:57
+#, elixir-format
 msgctxt "terms"
 msgid "What is our data retention policy?"
 msgstr "Millainen tietojensäilytyskäytäntö meillä on?"
 
-#, elixir-format
 #: lib/web/templates/api/privacy.html.eex:67
+#, elixir-format
 msgctxt "terms"
 msgid "You may irreversibly delete your account at any time."
 msgstr "Voit milloin tahansa poistaa tilisi pysyvästi."
 
-#, elixir-format
 #: lib/web/templates/api/privacy.html.eex:115
+#, elixir-format
 msgctxt "terms"
 msgid "Changes to our Privacy Policy"
 msgstr "Muutokset tietosuojakäytäntöön"
 
-#, elixir-format
 #: lib/web/templates/api/privacy.html.eex:106
+#, elixir-format
 msgctxt "terms"
 msgid "If this server is in the EU or the EEA: Our site, products and services are all directed to people who are at least 16 years old. If you are under the age of 16, per the requirements of the GDPR (<a href=\"https://en.wikipedia.org/wiki/General_Data_Protection_Regulation\">General Data Protection Regulation</a>) do not use this site."
 msgstr ""
@@ -280,8 +280,8 @@ msgstr ""
 "wiki/Yleinen_tietosuoja-asetus\">yleinen tietosuoja-asetus</a>) mukaisesti "
 "et voi käyttää tätä sivustoa."
 
-#, elixir-format
 #: lib/web/templates/api/privacy.html.eex:109
+#, elixir-format
 msgctxt "terms"
 msgid "If this server is in the USA: Our site, products and services are all directed to people who are at least 13 years old. If you are under the age of 13, per the requirements of COPPA (<a href=\"https://en.wikipedia.org/wiki/Children%27s_Online_Privacy_Protection_Act\">Children's Online Privacy Protection Act</a>) do not use this site."
 msgstr ""
@@ -291,30 +291,30 @@ msgstr ""
 "27s_Online_Privacy_Protection_Act\">Children's Online Privacy Protection "
 "Act</a>) mukaisesti et voi käyttää tätä sivustoa."
 
-#, elixir-format
 #: lib/web/templates/api/privacy.html.eex:117
+#, elixir-format
 msgctxt "terms"
 msgid "If we decide to change our privacy policy, we will post those changes on this page."
 msgstr ""
 "Jos päätämme muuttaa tietosuojakäytäntöämme, muutoksesta kerrotaan tällä "
 "sivulla."
 
-#, elixir-format
 #: lib/web/templates/api/privacy.html.eex:112
+#, elixir-format
 msgctxt "terms"
 msgid "Law requirements can be different if this server is in another jurisdiction."
 msgstr ""
 "Lakisääteiset vaatimukset saattavat poiketa tästä, jos palvelin sijaitsee "
 "muulla lainkäyttöalueella."
 
-#, elixir-format
 #: lib/web/templates/api/privacy.html.eex:103
+#, elixir-format
 msgctxt "terms"
 msgid "Site usage by children"
 msgstr "Lapset sivuston käyttäjinä"
 
-#, elixir-format
 #: lib/web/templates/api/privacy.html.eex:47
+#, elixir-format
 msgctxt "terms"
 msgid "The email address you provide may be used to send you information, updates and notifications about other people\n    interacting with your content or sending you messages and to respond to inquiries, and/or other requests or\n    questions."
 msgstr ""
@@ -324,8 +324,8 @@ msgstr ""
 "kyselyihisi, tai muihin pyyntöihin tai kysymyksiin\n"
 "    liittyen."
 
-#, elixir-format
 #: lib/web/templates/api/privacy.html.eex:45
+#, elixir-format
 msgctxt "terms"
 msgid "To aid moderation of the community, for example comparing your IP address with other known ones to determine ban\n    evasion or other violations."
 msgstr ""
@@ -333,8 +333,8 @@ msgstr ""
 "muihin tiedossa oleviin osoitteisiin\n"
 "    porttikieltojen kiertämisen tai muiden rikkomusten havaitsemiseksi."
 
-#, elixir-format
 #: lib/web/templates/api/privacy.html.eex:43
+#, elixir-format
 msgctxt "terms"
 msgid "To provide the core functionality of Mobilizon. Depending on this instance's policy you may only be able to\n    interact with other people's content and post your own content if you are logged in."
 msgstr ""
@@ -343,89 +343,89 @@ msgstr ""
 "    vaikuttaminen ja oman sisällön julkaiseminen saattaa olla mahdollista "
 "vain sisäänkirjautuneena."
 
-#, elixir-format
 #: lib/web/templates/api/privacy.html.eex:6
+#, elixir-format
 msgctxt "terms"
 msgid "What information do we collect?"
 msgstr "Mitä tietoja kerätään?"
 
-#, elixir-format
 #: lib/web/email/user.ex:176
+#, elixir-format
 msgid "Mobilizon on %{instance}: confirm your email address"
 msgstr "Mobilizon palvelimella %{instance}: vahvista sähköpostiosoitteesi"
 
-#, elixir-format
 #: lib/web/email/user.ex:152
+#, elixir-format
 msgid "Mobilizon on %{instance}: email changed"
 msgstr "Mobilizon palvelimella %{instance}: sähköpostiosoite vaihdettu"
 
-#, elixir-format
 #: lib/web/email/notification.ex:47
+#, elixir-format
 msgid "One event planned today"
 msgid_plural "%{nb_events} events planned today"
 msgstr[0] "Yksi suunniteltu tapahtuma tänään"
 msgstr[1] "%{nb_events} suunniteltua tapahtumaa tänään"
 
-#, elixir-format
 #: lib/web/templates/email/on_day_notification.html.eex:38
 #: lib/web/templates/email/on_day_notification.text.eex:4
+#, elixir-format
 msgid "You have one event today:"
 msgid_plural "You have %{total} events today:"
 msgstr[0] "Sinulla on tänään yksi tapahtuma:"
 msgstr[1] "Sinulla on tänään %{total} tapahtumaa:"
 
-#, elixir-format
 #: lib/web/templates/email/group_invite.text.eex:3
+#, elixir-format
 msgid "%{inviter} just invited you to join their group %{group}"
 msgstr "%{inviter} kutsui sinut ryhmään %{group}"
 
-#, elixir-format
 #: lib/web/templates/email/group_invite.html.eex:13
 #: lib/web/templates/email/group_invite.text.eex:1
+#, elixir-format
 msgid "Come along!"
 msgstr "Tule mukaan!"
 
-#, elixir-format
 #: lib/web/email/notification.ex:24
+#, elixir-format
 msgid "Don't forget to go to %{title}"
 msgstr "Muista %{title}"
 
-#, elixir-format
 #: lib/web/templates/email/before_event_notification.html.eex:38
 #: lib/web/templates/email/before_event_notification.text.eex:3
+#, elixir-format
 msgid "Get ready for %{title}"
 msgstr "%{title} tulee, oletko valmis?"
 
-#, elixir-format
 #: lib/web/templates/email/group_invite.html.eex:59
+#, elixir-format
 msgid "See my groups"
 msgstr "Näytä omat ryhmät"
 
-#, elixir-format
 #: lib/web/templates/email/group_invite.html.eex:45
 #: lib/web/templates/email/group_invite.text.eex:5
+#, elixir-format
 msgid "To accept this invitation, head over to your groups."
 msgstr "Hyväksy kutsu siirtymällä omiin ryhmiisi."
 
-#, elixir-format
 #: lib/web/templates/email/before_event_notification.text.eex:5
+#, elixir-format
 msgid "View the event on: %{link}"
 msgstr "Katso päivitetty tapahtuma: %{linkki}"
 
-#, elixir-format
 #: lib/web/email/group.ex:33
+#, elixir-format
 msgid "You have been invited by %{inviter} to join group %{group}"
 msgstr "%{inviter} kutsui sinut ryhmään %{group}"
 
-#, elixir-format
 #: lib/web/email/notification.ex:71
+#, elixir-format
 msgid "One event planned this week"
 msgid_plural "%{nb_events} events planned this week"
 msgstr[0] "Yksi suunniteltu tapahtuma tällä viikolla"
 msgstr[1] "%{nb_events} suunniteltua tapahtumaa tällä viikolla"
 
-#, elixir-format
 #: lib/web/email/notification.ex:93
+#, 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] "Yksi osallistujapyyntö tapahtumaan %{title} odottaa käsittelyä"
@@ -433,21 +433,21 @@ msgstr[1] ""
 "%{number_participation_requests} osallistujapyyntöä tapahtumaan %{title} "
 "odottaa käsittelyä"
 
-#, elixir-format
 #: lib/web/templates/email/notification_each_week.html.eex:38
 #: 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] "Sinulla on tällä viikolla yksi tapahtuma:"
 msgstr[1] "Sinulla on tällä viikolla %{total} tapahtumaa:"
 
-#, elixir-format
 #: lib/service/metadata/utils.ex:52
+#, elixir-format
 msgid "The event organizer didn't add any description."
 msgstr "Tapahtuman järjestäjä ei ole lisännyt kuvausta."
 
-#, elixir-format
 #: lib/web/templates/api/privacy.html.eex:54
+#, elixir-format
 msgctxt "terms"
 msgid "We implement a variety of security measures to maintain the safety of your personal information when you enter, submit, or access your personal information. Among other things, your browser session, as well as the traffic between your applications and the API, are secured with SSL/TLS, and your password is hashed using a strong one-way algorithm."
 msgstr ""
@@ -456,8 +456,8 @@ msgstr ""
 "sovellusten ja sovellusrajapinnan välinen tietoliikenne ovat SSL/TLS-"
 "suojattuja, ja salasanasi salataan vahvalla yksisuuntaisella algoritmilla."
 
-#, elixir-format
 #: lib/web/templates/api/privacy.html.eex:94
+#, elixir-format
 msgctxt "terms"
 msgid "No. We do not sell, trade, or otherwise transfer to outside parties your personally identifiable information. This does not include trusted third parties who assist us in operating our site, conducting our business, or servicing you, so long as those parties agree to keep this information confidential. We may also release your information when we believe release is appropriate to comply with the law, enforce our site policies, or protect ours or others rights, property, or safety."
 msgstr ""
@@ -469,20 +469,20 @@ msgstr ""
 "välttämätöntä lain tai sivustomme noudattamisen tahi meidän tai muiden "
 "oikeuksien, omaisuuden tai turvallisuuden suojelemisen kannalta."
 
-#, elixir-format
 #: lib/web/templates/api/terms.html.eex:23
+#, elixir-format
 msgctxt "terms"
 msgid "Accepting these Terms"
 msgstr "Ehtojen hyväksyminen"
 
-#, elixir-format
 #: lib/web/templates/api/terms.html.eex:27
+#, elixir-format
 msgctxt "terms"
 msgid "Changes to these Terms"
 msgstr "Ehtojen muutokset"
 
-#, elixir-format
 #: lib/web/templates/api/terms.html.eex:85
+#, elixir-format
 msgctxt "terms"
 msgid "A lot of the content on the Service is from you and others, and we don't review, verify or authenticate it, and it may include inaccuracies or false information. We make no representations, warranties, or guarantees relating to the quality, suitability, truth, accuracy or completeness of any content contained in the Service. You acknowledge sole responsibility for and assume all risk arising from your use of or reliance on any content."
 msgstr ""
@@ -493,16 +493,16 @@ msgstr ""
 "Olet yksin vastuussa sisällön käyttämisestä, siihen luottamisesta ja siihen "
 "liittyvistä riskeistä."
 
-#, elixir-format
 #: lib/web/templates/api/terms.html.eex:60
+#, elixir-format
 msgctxt "terms"
 msgid "Also, you agree that you will not do any of the following in connection with the Service or other users:"
 msgstr ""
 "Lisäksi sitoudut olemaan tekemättä palvelun tai muiden käyttäjien osalta "
 "mitään seuraavista:"
 
-#, elixir-format
 #: lib/web/templates/api/terms.html.eex:65
+#, elixir-format
 msgctxt "terms"
 msgid "Circumvent or attempt to circumvent any filtering, security measures, rate limits or other features designed to protect the Service, users of the Service, or third parties."
 msgstr ""
@@ -510,22 +510,22 @@ msgstr ""
 "suodatus- ja turvallisuuskeinojen, käyttömäärärajoitusten tai muiden "
 "vastaavien ominaisuuksien kiertäminen tai kiertämisen yritys"
 
-#, elixir-format
 #: lib/web/templates/api/terms.html.eex:64
+#, elixir-format
 msgctxt "terms"
 msgid "Collect any personal information about other users, or intimidate, threaten, stalk or otherwise harass other users of the Service;"
 msgstr ""
 "palvelun muiden käyttäjien henkilötietojen kerääminen tai heidän "
 "ahdisteleminen, uhkaaminen, seuraaminen tai häiritseminen muilla tavoin"
 
-#, elixir-format
 #: lib/web/templates/api/terms.html.eex:55
+#, elixir-format
 msgctxt "terms"
 msgid "Content that is illegal or unlawful, that would otherwise create liability;"
 msgstr "laittoman sisällön oikeudellisiin seuraamuksiin johtava lähettäminen"
 
-#, elixir-format
 #: lib/web/templates/api/terms.html.eex:56
+#, elixir-format
 msgctxt "terms"
 msgid "Content that may infringe or violate any patent, trademark, trade secret, copyright, right of privacy, right of publicity or other intellectual or other right of any party;"
 msgstr ""
@@ -533,48 +533,48 @@ msgstr ""
 "yksityisyydensuojaa, julkisuusoikeutta tai muuta immateriaali- tai muuta "
 "oikeutta loukkaavan sisällön lähettäminen"
 
-#, elixir-format
 #: lib/web/templates/api/terms.html.eex:42
+#, elixir-format
 msgctxt "terms"
 msgid "Creating Accounts"
 msgstr "Tilien luominen"
 
-#, elixir-format
 #: lib/web/templates/api/terms.html.eex:89
+#, elixir-format
 msgctxt "terms"
 msgid "Entire Agreement"
 msgstr "Koko sopimusteksti"
 
-#, elixir-format
 #: lib/web/templates/api/terms.html.eex:92
+#, elixir-format
 msgctxt "terms"
 msgid "Feedback"
 msgstr "Palaute"
 
-#, elixir-format
 #: lib/web/templates/api/terms.html.eex:83
+#, elixir-format
 msgctxt "terms"
 msgid "Hyperlinks and Third Party Content"
 msgstr "Linkit ja kolmansien osapuolten sisältö"
 
-#, elixir-format
 #: lib/web/templates/api/terms.html.eex:88
+#, elixir-format
 msgctxt "terms"
 msgid "If you breach any of these Terms, we have the right to suspend or disable your access to or use of the Service."
 msgstr ""
 "Jos toimit näiden ehtojen vastaisesti, voimme poistaa tai keskeyttää "
 "käyttöoikeutesi palveluun."
 
-#, elixir-format
 #: lib/web/templates/api/terms.html.eex:63
+#, elixir-format
 msgctxt "terms"
 msgid "Impersonate or post on behalf of any person or entity or otherwise misrepresent your affiliation with a person or entity;"
 msgstr ""
 "luvaton toisen henkilön tai tahon nimissä esiintyminen tai julkaiseminen tai "
 "muunlainen valheellisen yhteyden ilmaiseminen"
 
-#, elixir-format
 #: lib/web/templates/api/terms.html.eex:48
+#, elixir-format
 msgctxt "terms"
 msgid "Our Service allows you and other users to post, link and otherwise make available content. You are responsible for the content that you make available to the Service, including its legality, reliability, and appropriateness."
 msgstr ""
@@ -583,26 +583,26 @@ msgstr ""
 "saataville saattamastasi sisällöstä sekä sen laillisuudesta, "
 "luotettavuudesta ja sopivaisuudesta."
 
-#, elixir-format
 #: lib/web/templates/api/terms.html.eex:39
+#, elixir-format
 msgctxt "terms"
 msgid "Privacy Policy"
 msgstr "Tietosuojakäytäntö"
 
-#, elixir-format
 #: lib/web/templates/api/terms.html.eex:95
+#, elixir-format
 msgctxt "terms"
 msgid "Questions & Contact Information"
 msgstr "Kysymykset ja yhteystiedot"
 
-#, elixir-format
 #: lib/web/templates/api/terms.html.eex:87
+#, elixir-format
 msgctxt "terms"
 msgid "Termination"
 msgstr "Lopettaminen"
 
-#, elixir-format
 #: lib/web/templates/api/terms.html.eex:62
+#, elixir-format
 msgctxt "terms"
 msgid "Use the Service in any manner that could interfere with, disrupt, negatively affect or inhibit other users from fully enjoying the Service or that could damage, disable, overburden or impair the functioning of the Service;"
 msgstr ""
@@ -610,14 +610,14 @@ msgstr ""
 "käyttäjiä heidän käyttäessään palvelua, tai joka voi vahingoittaa, estää, "
 "ylikuormittaa tai rajoittaa palvelun toimivuutta"
 
-#, elixir-format
 #: lib/web/templates/api/terms.html.eex:47
+#, elixir-format
 msgctxt "terms"
 msgid "Your Content & Conduct"
 msgstr "Oma sisältö ja käytös"
 
-#, elixir-format
 #: lib/web/templates/api/terms.html.eex:84
+#, elixir-format
 msgctxt "terms"
 msgid "<b>%{instance_name}</b> makes no claim or representation regarding, and accepts no responsibility for third party websites accessible by hyperlink from the Service or websites linking to the Service. When you leave the Service, you should be aware that these Terms and our policies no longer govern. The inclusion of any link does not imply endorsement by <b>%{instance_name}</b> of the site. Use of any such linked website is at the user's own risk."
 msgstr ""
@@ -629,8 +629,8 @@ msgstr ""
 "sivuston. Linkitettyjen verkkosivujen käyttö tapahtuu käyttäjän omalla "
 "vastuulla."
 
-#, elixir-format
 #: lib/web/templates/api/terms.html.eex:68
+#, elixir-format
 msgctxt "terms"
 msgid "Finally, your use of the Service is also subject to acceptance of <a href=\"/rules\">the instance's own specific rules</a> regarding the code of conduct and moderation rules. Breaking those rules may also result in your account being disabled or suspended."
 msgstr ""
@@ -639,16 +639,16 @@ msgstr ""
 "hyväksymistä. Sääntöjen rikkomisesta voi seurata tilisi tilapäinen tai "
 "pysyvä käytöstäpoisto."
 
-#, elixir-format
 #: lib/web/templates/api/terms.html.eex:81
+#, elixir-format
 msgctxt "terms"
 msgid "For full details about the Mobilizon software <a href=\"https://joinmobilizon.org\">see here</a>."
 msgstr ""
 "Katso <a href=\"https://joinmobilizon.org\">täältä</a> tarkempia Mobilizon-"
 "ohjelmaa koskevia tietoja."
 
-#, elixir-format
 #: lib/web/templates/api/terms.html.eex:18
+#, elixir-format
 msgctxt "terms"
 msgid "Here are the important things you need to know about accessing and using the <b>%{instance_name}</b> (<a href=\"https://%{instance_url}\">%{instance_url}</a>) website and service (collectively, \"Service\"). These are our terms of service (\"Terms\"). Please read them carefully."
 msgstr ""
@@ -657,8 +657,8 @@ msgstr ""
 "palvelua (yhteisesti ”palvelu”). Ne ovat käyttöehtomme (”ehdot”). Lue ne "
 "huolellisesti."
 
-#, elixir-format
 #: lib/web/templates/api/terms.html.eex:33
+#, elixir-format
 msgctxt "terms"
 msgid "If we make major changes, we will notify our users in a clear and prominent manner. Minor changes may only be highlighted in the footer of our website. It is your responsibility to check the website regularly for changes to these Terms."
 msgstr ""
@@ -667,8 +667,8 @@ msgstr ""
 "huomautuksella verkkosivun alaosassa. Verkkosivun ehdoissa tapahtuvien "
 "muutosten säännöllinen tarkistaminen on omalla vastuullasi."
 
-#, elixir-format
 #: lib/web/templates/api/terms.html.eex:53
+#, elixir-format
 msgctxt "terms"
 msgid "In order to make <b>%{instance_name}</b> a great place for all of us, please do not post, link and otherwise make available on or through the Service any of the following:"
 msgstr ""
@@ -676,16 +676,16 @@ msgstr ""
 "julkaise, linkitä tai muulla tavoin saata palvelussa tai sen välityksellä "
 "saataville mitään seuraavista:"
 
-#, elixir-format
 #: lib/web/templates/api/terms.html.eex:57
+#, elixir-format
 msgctxt "terms"
 msgid "Private information of any third party (e.g., addresses, phone numbers, email addresses, Social Security numbers and credit card numbers); and"
 msgstr ""
 "kolmannen osapuolen yksityisiä tietoja (esim. osoitteita, puhelinnumeroita, "
 "sähköpostiosoitteita, henkilötunnuksia ja maksukorttien numeroita)"
 
-#, elixir-format
 #: lib/web/templates/api/terms.html.eex:52
+#, elixir-format
 msgctxt "terms"
 msgid "Since Mobilizon is a distributed network, it is possible, depending on the visibility rules set to your content, that your content has been distributed to other Mobilizon instances. When you delete your content, we will request those other instances to also delete the content. Our responsibility on the content being deleted from those other instances ends here. If for some reason, some other instance does not delete the content, we cannot be held responsible."
 msgstr ""
@@ -696,8 +696,8 @@ msgstr ""
 "sisällön poistamisesta päättyy siihen. Jos jokin toinen palvelin ei syystä "
 "tai toisesta poista sisältöä, emme ole siitä vastuussa."
 
-#, elixir-format
 #: lib/web/templates/api/terms.html.eex:90
+#, elixir-format
 msgctxt "terms"
 msgid "These Terms constitute the entire agreement between you and <b>%{instance_name}</b> regarding the use of the Service, superseding any prior agreements between you and <b>%{instance_name}</b> relating to your use of the Service."
 msgstr ""
@@ -706,8 +706,8 @@ msgstr ""
 "aiemmat sinun ja palvelimen <b>%{instance_name}</b> väliset palvelun käyttöä "
 "koskevat sopimukset."
 
-#, elixir-format
 #: lib/web/templates/api/terms.html.eex:80
+#, elixir-format
 msgctxt "terms"
 msgid "This Service runs on a Mobilizon instance. This source code is licensed under an <a href=\"https://tldrlegal.com/license/gnu-affero-general-public-license-v3-(agpl-3.0)\">AGPLv3 license</a> which means you are allowed to and even encouraged to take the source code, modify it and use it."
 msgstr ""
@@ -717,16 +717,16 @@ msgstr ""
 "tarkoittaa, että lähdekoodin lataaminen, muokkaaminen ja käyttö on paitsi "
 "sallittua myös kannustettavaa."
 
-#, elixir-format
 #: lib/web/templates/api/terms.html.eex:58
+#, elixir-format
 msgctxt "terms"
 msgid "Viruses, corrupted data or other harmful, disruptive or destructive files or code."
 msgstr ""
 "Virukset, vioittuneet tiedot tai muut haitalliset, häiritsevät tai tuhoa "
 "aiheuttavat tiedostot tai koodikatkelmat."
 
-#, elixir-format
 #: lib/web/templates/api/terms.html.eex:51
+#, elixir-format
 msgctxt "terms"
 msgid "You can remove the content that you posted by deleting it. Once you delete your content, it will not appear on the Service, but copies of your deleted content may remain in our system or backups for some period of time. Web server access logs might also be stored for some time in the system."
 msgstr ""
@@ -735,30 +735,30 @@ msgstr ""
 "järjestelmässämme tai varmuuskopioissamme. Niin ikään www-palvelimen "
 "käyttölokeja säilytetään järjestelmässä jonkin aikaa."
 
-#, elixir-format
 #: lib/web/templates/api/terms.html.eex:96
+#, elixir-format
 msgctxt "terms"
 msgid "Questions or comments about the Service may be directed to us at %{contact}"
 msgstr ""
 "Meille voi lähettää palvelua koskevia kysymyksiä ja kommentteja osoitteeseen "
 "%{contact}"
 
-#, elixir-format
 #: lib/web/templates/api/terms.html.eex:79
+#, elixir-format
 msgctxt "terms"
 msgid "Source code"
 msgstr "Lähdekoodi"
 
-#, elixir-format
 #: lib/web/templates/api/terms.html.eex:93
+#, elixir-format
 msgctxt "terms"
 msgid "We love feedback. Please let us know what you think of the Service, these Terms and, in general, <b>%{instance_name}</b>."
 msgstr ""
 "Pidämme palautteesta. Kerro meille, mitä mieltä olet palvelusta, näistä "
 "ehdoista ja yleisesti palvelimesta <b>%{instance_name}</b>."
 
-#, elixir-format
 #: lib/web/templates/api/terms.html.eex:74
+#, elixir-format
 msgctxt "terms"
 msgid "Instance administrators (and community moderators, given the relevant access) are responsible for monitoring and acting on flagged content and other user reports, and have the right and responsibility to remove or edit content that is not aligned to this Instance set of rules, or to suspend, block or ban (temporarily or permanently) any account, community, or instance for breaking these terms, or for other behaviours that they deem inappropriate, threatening, offensive, or harmful."
 msgstr ""
@@ -771,15 +771,15 @@ msgstr ""
 "toimivat muulla tavoin asiattomasti, uhkaavasti, hyökkäävästi tai "
 "vahingollisesti."
 
-#, elixir-format
 #: lib/web/templates/api/terms.html.eex:6
+#, elixir-format
 msgctxt "terms"
 msgid "<b>%{instance_name}</b> will not use or transmit or resell your personal data"
 msgstr ""
 "<b>%{instance_name}</b> ei käytä, lähetä edelleen tai myy henkilötietojasi"
 
-#, elixir-format
 #: lib/web/templates/api/terms.html.eex:44
+#, elixir-format
 msgctxt "terms"
 msgid "If you discover or suspect any Service security breaches, please let us know as soon as possible. For security holes in the Mobilizon software itself, please contact <a href=\"https://framagit.org/framasoft/mobilizon/\">its contributors</a> directly."
 msgstr ""
@@ -788,16 +788,16 @@ msgstr ""
 "aukkojen osalta ota yhteyttä suoraan <a href=\"https://framagit.org/"
 "framasoft/mobilizon/\">ohjelman tekijöihin</a>."
 
-#, elixir-format
 #: lib/web/templates/api/terms.html.eex:77
+#, elixir-format
 msgctxt "terms"
 msgid "Instance administrators should ensure that every community hosted on the instance is properly moderated according to the defined rules."
 msgstr ""
 "Palvelimen ylläpitäjien tulee varmistaa, että kaikkia palvelimella toimivia "
 "yhteisöjä moderoidaan sääntöjen mukaisesti."
 
-#, elixir-format
 #: lib/web/templates/api/terms.html.eex:98
+#, elixir-format
 msgctxt "terms"
 msgid "Originally adapted from the <a href=\"https://joindiaspora.com/terms\">Diaspora*</a> and <a href=\"https://github.com/appdotnet/terms-of-service\">App.net</a> privacy policies, also licensed under <a href=\"https://creativecommons.org/licenses/by-sa/4.0/\">CC BY-SA</a>."
 msgstr ""
@@ -806,8 +806,8 @@ msgstr ""
 "a> tietosuojakäytännöistä, lisäksi lisensoitu <a href=\"https"
 "://creativecommons.org/licenses/by-sa/4.0/\">CC BY-SA -lisenssillä</a>."
 
-#, elixir-format
 #: lib/web/templates/api/privacy.html.eex:119
+#, elixir-format
 msgctxt "terms"
 msgid "Originally adapted from the <a href=\"https://mastodon.social/terms\">Mastodon</a> and <a href=\"https://github.com/discourse/discourse\">Discourse</a> privacy policies, also licensed under <a href=\"https://creativecommons.org/licenses/by-sa/4.0/\">CC BY-SA</a>."
 msgstr ""
@@ -816,114 +816,114 @@ msgstr ""
 "tietosuojakäytännöistä, lisäksi lisensoitu <a href=\"https://creativecommons."
 "org/licenses/by-sa/4.0/\">CC BY-SA -lisenssillä</a>."
 
-#, elixir-format
 #: lib/web/templates/api/terms.html.eex:3
+#, elixir-format
 msgctxt "terms"
 msgid "Short version"
 msgstr "Lyhyt versio"
 
-#, elixir-format
 #: lib/web/templates/api/terms.html.eex:9
+#, elixir-format
 msgctxt "terms"
 msgid "The service is provided without warranties and these terms may change in the future"
 msgstr ""
 "Palvelu tarjotaan ilman minkäänlaista takuuta, ja nämä ehdot voivat "
 "myöhemmin muuttua"
 
-#, elixir-format
 #: lib/web/templates/api/privacy.html.eex:118
+#, elixir-format
 msgctxt "terms"
 msgid "This document is licensed under <a href=\"https://creativecommons.org/licenses/by-sa/4.0/\">CC BY-SA</a>. It was last updated June 18, 2020."
 msgstr ""
 "Tämän asiakirjan lisenssinä on <a href=\"https://creativecommons.org/"
 "licenses/by-sa/4.0/\">CC BY-SA</a>. Se päivitettiin viimeksi 18.6.2020."
 
-#, elixir-format
 #: lib/web/templates/api/terms.html.eex:97
+#, elixir-format
 msgctxt "terms"
 msgid "This document is licensed under <a href=\"https://creativecommons.org/licenses/by-sa/4.0/\">CC BY-SA</a>. It was last updated June 22, 2020."
 msgstr ""
 "Tämän asiakirjan lisenssinä on <a href=\"https://creativecommons.org/"
 "licenses/by-sa/4.0/\">CC BY-SA</a>. Se päivitettiin viimeksi 22.6.2020."
 
-#, elixir-format
 #: lib/web/templates/api/terms.html.eex:8
+#, elixir-format
 msgctxt "terms"
 msgid "You must respect other people and <b>%{instance_name}</b>'s rules when using the service"
 msgstr ""
 "Kun käytät palvelua, kunnioita muita ihmisiä ja palvelimen "
 "<b>%{instance_name}</b> sääntöjä"
 
-#, elixir-format
 #: lib/web/templates/api/terms.html.eex:7
+#, elixir-format
 msgctxt "terms"
 msgid "You must respect the law when using <b>%{instance_name}</b>"
 msgstr "Noudata lakia käyttäessäsi palvelinta <b>%{instance_name}</b>"
 
-#, elixir-format
 #: lib/web/templates/api/terms.html.eex:5
+#, elixir-format
 msgctxt "terms"
 msgid "Your content is yours"
 msgstr "Sisältösi kuuluu sinulle"
 
-#, elixir-format
 #: lib/web/templates/email/anonymous_participation_confirmation.html.eex:51
+#, elixir-format
 msgid "Confirm my e-mail address"
 msgstr "Vahvista sähköpostiosoite"
 
-#, elixir-format
 #: lib/web/templates/email/anonymous_participation_confirmation.html.eex:13
 #: lib/web/templates/email/anonymous_participation_confirmation.text.eex:1
+#, elixir-format
 msgid "Confirm your e-mail"
 msgstr "Vahvista sähköpostiosoite"
 
-#, elixir-format
 #: lib/web/templates/email/anonymous_participation_confirmation.text.eex:3
+#, elixir-format
 msgid "Hi there! You just registered to join this event: « %{title} ». Please confirm the e-mail address you provided:"
 msgstr ""
 "Hei! Rekisteröidyit juuri tapahtumaan ”%{title}”. Vahvista ilmoittamasi "
 "sähköpostiosoite:"
 
-#, elixir-format
 #: lib/web/templates/email/email.html.eex:115
 #: lib/web/templates/email/email.text.eex:8
+#, elixir-format
 msgid "Need help? Is something not working as expected?"
 msgstr "Tarvitsetko apua? Eikö kaikki toimi niin kuin pitäisi?"
 
-#, elixir-format
 #: lib/web/templates/email/registration_confirmation.html.eex:38
+#, elixir-format
 msgid "You created an account on <b>%{host}</b> with this email address. You are one click away from activating it."
 msgstr ""
 "Loit palvelimelle <b>%{host}</b> tilin tällä sähköpostiosoitteella. Aktivoi "
 "se yhdellä napsautuksella."
 
-#, elixir-format
 #: lib/web/templates/email/report.html.eex:13
+#, elixir-format
 msgid "New report on <b>%{instance}</b>"
 msgstr "Uusi raportti palvelimella <b>%{instance}</b>"
 
-#, elixir-format
 #: lib/web/templates/email/email_changed_old.html.eex:38
+#, elixir-format
 msgid "The email address for your account on <b>%{host}</b> is being changed to:"
 msgstr ""
 "Palvelimella <b>%{host}</b> olevan tilisi sähköpostiosoitteeksi vaihdetaan:"
 
-#, elixir-format
 #: lib/web/templates/email/password_reset.html.eex:38
+#, elixir-format
 msgid "You requested a new password for your account on <b>%{instance}</b>."
 msgstr "Pyysit uutta salasanaa tilillesi palvelimella <b>%{instance}</b>."
 
-#, elixir-format
 #: lib/web/templates/email/email.text.eex:5
+#, elixir-format
 msgid "Please do not use it for real purposes."
 msgstr "Älä käytä todellisiin tarkoituksiin."
 
-#, elixir-format
 #: lib/web/templates/email/anonymous_participation_confirmation.html.eex:63
 #: lib/web/templates/email/anonymous_participation_confirmation.text.eex:6 lib/web/templates/email/event_updated.html.eex:133
 #: lib/web/templates/email/event_updated.text.eex:24 lib/web/templates/email/notification_each_week.html.eex:70
 #: lib/web/templates/email/notification_each_week.text.eex:11 lib/web/templates/email/on_day_notification.html.eex:70
 #: lib/web/templates/email/on_day_notification.text.eex:14
+#, 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] ""
@@ -933,75 +933,75 @@ msgstr[1] ""
 "Jos haluat perua osallistumisesi, siirry tapahtumien sivuille yllä olevista "
 "linkeistä ja napsauta niissä osallistumispainiketta."
 
-#, elixir-format
 #: lib/web/templates/email/pending_participation_notification.html.eex:38
 #: lib/web/templates/email/pending_participation_notification.text.eex:4
+#, elixir-format
 msgid "You have one pending attendance request to process:"
 msgid_plural "You have %{number_participation_requests} attendance requests to process:"
 msgstr[0] "Yksi osallistujapyyntö odottaa käsittelyäsi:"
 msgstr[1] ""
 "%{number_participation_requests} osallistujapyyntöä odottaa käsittelyäsi:"
 
-#, elixir-format
 #: lib/web/templates/email/email.text.eex:11
+#, elixir-format
 msgid "%{instance} is powered by Mobilizon."
 msgstr "%{instance} on Mobilizon-palvelin."
 
-#, elixir-format
 #: lib/web/templates/email/email.html.eex:143
+#, elixir-format
 msgid "<b>%{instance}</b> is powered by Mobilizon."
 msgstr "<b>%{instance}</b> on Mobilizon-palvelin."
 
-#, elixir-format
 #: lib/web/templates/email/pending_participation_notification.html.eex:13
 #: lib/web/templates/email/pending_participation_notification.text.eex:1
+#, elixir-format
 msgid "A request is pending!"
 msgstr "Pyyntö odottaa!"
 
-#, elixir-format
 #: lib/web/templates/email/before_event_notification.html.eex:13
 #: lib/web/templates/email/before_event_notification.text.eex:1
+#, elixir-format
 msgid "An event is upcoming!"
 msgstr "Tapahtuma lähestyy!"
 
-#, elixir-format
 #: lib/web/templates/email/email_changed_new.html.eex:13
 #: lib/web/templates/email/email_changed_new.text.eex:1
+#, elixir-format
 msgid "Confirm new email"
 msgstr "Vahvista sähköpostiosoite"
 
-#, elixir-format
 #: lib/web/templates/email/event_updated.html.eex:84
+#, elixir-format
 msgid "End"
 msgstr "Päättyy"
 
-#, elixir-format
 #: lib/web/templates/email/event_updated.text.eex:21
+#, elixir-format
 msgid "End %{ends_on}"
 msgstr "Päättyy %{ends_on}"
 
-#, elixir-format
 #: lib/web/templates/email/event_updated.html.eex:13
 #: lib/web/templates/email/event_updated.text.eex:1
+#, elixir-format
 msgid "Event update!"
 msgstr "Tapahtuma päivitetty!"
 
-#, elixir-format
 #: lib/web/templates/email/report.html.eex:88
+#, elixir-format
 msgid "Flagged comments"
 msgstr "Merkityt kommentit"
 
-#, elixir-format
 #: lib/web/templates/email/event_participation_approved.html.eex:45
 #: lib/web/templates/email/event_participation_approved.text.eex:7
+#, elixir-format
 msgid "Good news: one of the event organizers just approved your request. Update your calendar, because you're on the guest list now!"
 msgstr ""
 "Hyviä uutisia: joku tapahtuman järjestäjistä hyväksyi juuri pyyntösi. Olet "
 "kutsuttujen joukossa, joten merkitse tapahtuma kalenteriisi!"
 
-#, elixir-format
 #: lib/web/templates/email/email_changed_new.html.eex:38
 #: lib/web/templates/email/email_changed_new.text.eex:3
+#, elixir-format
 msgid "Hi there! It seems like you wanted to change the email address linked to your account on <b>%{instance}</b>. If you still wish to do so, please click the button below to confirm the change. You will then be able to log in to %{instance} with this new email address."
 msgstr ""
 "Hei! Haluat ilmeisesti vaihtaa palvelimella <b>%{instance}</b> olevaan "
@@ -1009,16 +1009,16 @@ msgstr ""
 "vaihto napsauttamalla alla olevaa painiketta. Sen jälkeen voit kirjautua "
 "palvelimelle %{instance} uudella sähköpostiosoitteella."
 
-#, elixir-format
 #: lib/web/templates/email/email_changed_old.text.eex:3
+#, elixir-format
 msgid "Hi there! Just a quick note to confirm that the email address linked to your account on %{host} has been changed from this one to:"
 msgstr ""
 "Hei! Vahvistamme vain, että palvelimella %{host} olevaan tiliisi yhdistetty "
 "sähköpostiosoite on vaihdettu seuraavaan osoitteeseen:"
 
-#, elixir-format
 #: lib/web/templates/email/email_changed_old.html.eex:62
 #: lib/web/templates/email/email_changed_old.text.eex:5
+#, elixir-format
 msgid "If you did not trigger this change yourself, it is likely that someone has gained access to your %{host} account. Please log in and change your password immediately. If you cannot login, contact the admin on %{host}."
 msgstr ""
 "Jos et tehnyt vaihtoa itse, todennäköisesti joku muu on päässyt käyttämään "
@@ -1026,173 +1026,173 @@ msgstr ""
 "viipymättä. Jos et pääse kirjautumaan sisään, ota yhteyttä palvelimen %{host}"
 " ylläpitäjään."
 
-#, elixir-format
 #: lib/web/templates/email/password_reset.text.eex:12
+#, elixir-format
 msgid "If you didn't trigger the change yourself, please ignore this message. Your password won't be changed until you click the link above."
 msgstr ""
 "Jos et tehnyt vaihtoa itse, voit jättää tämän viestin huomiotta. Salasana ei "
 "vaihdu, ellet avaa yllä olevaa linkkiä."
 
-#, elixir-format
 #: lib/web/templates/email/anonymous_participation_confirmation.html.eex:70
 #: lib/web/templates/email/anonymous_participation_confirmation.text.eex:4 lib/web/templates/email/registration_confirmation.html.eex:45
+#, elixir-format
 msgid "If you didn't trigger this email, you may safely ignore it."
 msgstr "Jos et lähettänyt pyyntöä, voit jättää tämän viestin huomiotta."
 
-#, elixir-format
 #: lib/web/templates/email/before_event_notification.html.eex:63
 #: lib/web/templates/email/before_event_notification.text.eex:6
+#, elixir-format
 msgid "If you wish to cancel your attendance, visit the event page through the link above and click the « Attending » button."
 msgstr ""
 "Jos haluat perua osallistumisesi, siirry tapahtuman sivulle yllä olevasta "
 "linkistä ja napsauta siellä osallistumispainiketta."
 
-#, elixir-format
 #: lib/web/templates/email/email.html.eex:144
 #: lib/web/templates/email/email.text.eex:11
+#, elixir-format
 msgid "Learn more about Mobilizon here!"
 msgstr "Lue lisää Mobilizonista."
 
-#, elixir-format
 #: lib/web/templates/email/event_updated.html.eex:94
-msgid "Location"
-msgstr "Sijainti"
-
 #, elixir-format
+msgid "Location"
+msgstr "Paikka"
+
 #: lib/web/templates/email/event_updated.html.eex:104
+#, elixir-format
 msgid "Location address was removed"
 msgstr "Käyntiosoite poistettiin"
 
-#, elixir-format
 #: lib/web/templates/email/pending_participation_notification.html.eex:51
 #: lib/web/templates/email/pending_participation_notification.text.eex:6
+#, elixir-format
 msgid "Manage pending requests"
 msgstr "Hallinnoi odottavia osallistujapyyntöjä"
 
-#, elixir-format
 #: lib/web/templates/email/registration_confirmation.html.eex:13
 #: lib/web/templates/email/registration_confirmation.text.eex:1
+#, elixir-format
 msgid "Nearly there!"
 msgstr "Melkein valmista!"
 
-#, elixir-format
 #: lib/web/templates/email/email_changed_old.html.eex:13
 #: lib/web/templates/email/email_changed_old.text.eex:1
+#, elixir-format
 msgid "New email confirmation"
 msgstr "Uuden sähköpostiosoitteen vahvistaminen"
 
-#, elixir-format
 #: lib/web/templates/email/report.html.eex:106
+#, elixir-format
 msgid "Reasons for report"
 msgstr "Raportin syy"
 
-#, elixir-format
 #: lib/web/templates/email/report.html.eex:39
+#, elixir-format
 msgid "Someone on <b>%{instance}</b> reported the following content for you to analyze:"
 msgstr "Seuraava sisältö raportoitiin palvelimelta <b>%{instance}</b>:"
 
-#, elixir-format
 #: lib/web/templates/email/event_participation_rejected.html.eex:13
 #: lib/web/templates/email/event_participation_rejected.text.eex:1
+#, elixir-format
 msgid "Sorry! You're not going."
 msgstr "Valitettavasti et pääse mukaan."
 
-#, elixir-format
 #: lib/web/templates/email/event_updated.html.eex:74
+#, elixir-format
 msgid "Start"
 msgstr "Alkaa"
 
-#, elixir-format
 #: lib/web/templates/email/event_updated.text.eex:18
+#, elixir-format
 msgid "Start %{begins_on}"
 msgstr "Alkaa %{begins_on}"
 
-#, elixir-format
 #: lib/web/templates/email/event_updated.text.eex:3
+#, elixir-format
 msgid "There have been changes for %{title} so we'd thought we'd let you know."
 msgstr "%{title} on joiltain osin muuttunut, ja ajattelimme ilmoittaa asiasta."
 
-#, elixir-format
 #: lib/web/templates/email/event_updated.html.eex:55
 #: lib/web/templates/email/event_updated.text.eex:11
+#, elixir-format
 msgid "This event has been cancelled by its organizers. Sorry!"
 msgstr "Valitettavasti tapahtuman järjestäjät peruivat tapahtuman."
 
-#, elixir-format
 #: lib/web/templates/email/event_updated.html.eex:51
 #: lib/web/templates/email/event_updated.text.eex:7
+#, elixir-format
 msgid "This event has been confirmed"
 msgstr "Tapahtuma on vahvistettu"
 
-#, elixir-format
 #: lib/web/templates/email/event_updated.html.eex:53
 #: lib/web/templates/email/event_updated.text.eex:9
+#, elixir-format
 msgid "This event has yet to be confirmed: organizers will let you know if they do confirm it."
 msgstr ""
 "Tapahtumaa ei ole vielä vahvistettu. Järjestäjät ilmoittavat vahvistamisesta "
 "myöhemmin."
 
-#, elixir-format
 #: lib/web/templates/email/event_participation_rejected.html.eex:45
 #: lib/web/templates/email/event_participation_rejected.text.eex:7
+#, elixir-format
 msgid "Unfortunately, the organizers rejected your request."
 msgstr "Ikävä kyllä järjestäjät hylkäsivät osallistumisesi."
 
-#, elixir-format
 #: lib/web/templates/email/email_changed_new.html.eex:51
+#, elixir-format
 msgid "Verify your email address"
 msgstr "Vahvista sähköpostiosoite"
 
-#, elixir-format
 #: lib/web/templates/email/report.html.eex:126
+#, elixir-format
 msgid "View report"
 msgstr "Näytä raportti"
 
-#, elixir-format
 #: lib/web/templates/email/report.text.eex:24
+#, elixir-format
 msgid "View report:"
 msgstr "Näytä raportti:"
 
-#, elixir-format
 #: lib/web/templates/email/event_participation_approved.html.eex:58
 #: lib/web/templates/email/event_participation_confirmed.html.eex:58
+#, elixir-format
 msgid "Visit event page"
 msgstr "Käy tapahtumasivulla"
 
-#, elixir-format
 #: lib/web/templates/email/event_updated.html.eex:121
+#, elixir-format
 msgid "Visit the updated event page"
 msgstr "Käy päivitetyllä tapahtumasivulla"
 
-#, elixir-format
 #: lib/web/templates/email/event_updated.text.eex:23
+#, elixir-format
 msgid "Visit the updated event page: %{link}"
 msgstr "Katso päivitetty tapahtuma: %{linkki}"
 
-#, elixir-format
 #: lib/web/templates/email/notification_each_week.html.eex:13
 #: lib/web/templates/email/notification_each_week.text.eex:1
+#, elixir-format
 msgid "What's up this week?"
 msgstr "Mitä tällä viikolla tapahtuu?"
 
-#, elixir-format
 #: lib/web/templates/email/on_day_notification.html.eex:13
 #: lib/web/templates/email/on_day_notification.text.eex:1
+#, elixir-format
 msgid "What's up today?"
 msgstr "Mitä tänään tapahtuu?"
 
-#, elixir-format
 #: lib/web/templates/email/event_participation_approved.html.eex:70
 #: lib/web/templates/email/event_participation_approved.text.eex:11 lib/web/templates/email/event_participation_confirmed.html.eex:70
 #: lib/web/templates/email/event_participation_confirmed.text.eex:6
+#, elixir-format
 msgid "Would you wish to update or cancel your attendance, simply access the event page through the link above and click on the Attending button."
 msgstr ""
 "Jos haluat päivittää tai perua osallistumisesi, siirry yllä olevasta "
 "linkistä tapahtumasivulle ja napsauta osallistumispainiketta."
 
-#, elixir-format
 #: lib/web/templates/email/pending_participation_notification.html.eex:64
 #: lib/web/templates/email/pending_participation_notification.text.eex:8
+#, elixir-format
 msgid "You are receiving this email because you chose to get notifications for pending attendance requests to your events. You can disable or change your notification settings in your user account settings under « Notifications »."
 msgstr ""
 "Saat tämän sähköpostin, koska olet tilannut ilmoitukset tapahtumiesi "
@@ -1200,160 +1200,160 @@ msgstr ""
 "poistaa ilmoitukset käytöstä käyttäjätilisi asetuksista kohdasta "
 "”Ilmoitukset”."
 
-#, elixir-format
 #: lib/web/templates/email/event_participation_rejected.text.eex:5
+#, elixir-format
 msgid "You issued a request to attend %{title}."
 msgstr "Lähetit pyynnön osallistua tapahtumaan %{title}."
 
-#, elixir-format
 #: lib/web/templates/email/event_participation_approved.text.eex:5
 #: lib/web/templates/email/event_participation_confirmed.text.eex:3
+#, elixir-format
 msgid "You recently requested to attend %{title}."
 msgstr "Lähetit pyynnön osallistua tapahtumaan %{title}."
 
-#, elixir-format
 #: lib/web/templates/email/event_participation_approved.html.eex:13
 #: lib/web/templates/email/event_participation_confirmed.html.eex:13 lib/web/templates/email/event_participation_confirmed.text.eex:1
+#, elixir-format
 msgid "You're going!"
 msgstr "Olet mukana!"
 
-#, elixir-format
 #: lib/web/templates/email/email_changed_new.html.eex:64
 #: lib/web/templates/email/email_changed_new.text.eex:5
+#, elixir-format
 msgid "If you didn't trigger the change yourself, please ignore this message."
 msgstr "Jos et tehnyt vaihtoa itse, voit jättää tämän viestin huomiotta."
 
-#, elixir-format
 #: lib/web/templates/email/email.html.eex:90
+#, elixir-format
 msgid "<b>Please do not use it for real purposes.</b>"
 msgstr "<b>Älä käytä todellisiin tarkoituksiin.</b>"
 
-#, elixir-format
 #: lib/web/templates/email/group_member_removal.html.eex:45
 #: lib/web/templates/email/group_member_removal.text.eex:5
+#, elixir-format
 msgid "If you feel this is an error, you may contact the group's administrators so that they can add you back."
 msgstr ""
 "Jos tämä on virhe, ota yhteyttä ryhmän ylläpitäjiin ja pyydä lisäämään sinut "
 "takaisin."
 
-#, elixir-format
 #: lib/web/templates/email/group_member_removal.html.eex:13
 #: lib/web/templates/email/group_member_removal.text.eex:1
+#, elixir-format
 msgid "So long, and thanks for the fish!"
 msgstr "Näkemiin ja kiitos kaloista!"
 
-#, elixir-format
 #: lib/web/email/group.ex:63
+#, elixir-format
 msgid "You have been removed from group %{group}"
 msgstr "Sinut on poistettu ryhmästä %{group}"
 
-#, elixir-format
 #: lib/web/templates/email/group_member_removal.text.eex:3
+#, elixir-format
 msgid "You have been removed from group %{group}. You will not be able to access this group's private content anymore."
 msgstr ""
 "Sinut on poistettu ryhmästä %{group}. Et voi enää käyttää ryhmän yksityistä "
 "sisältöä."
 
-#, elixir-format
 #: lib/web/templates/email/group_invite.html.eex:38
+#, elixir-format
 msgid "<b>%{inviter}</b> just invited you to join their group %{link_start}<b>%{group}</b>%{link_end}"
 msgstr ""
 "<b>%{inviter}</b> kutsui sinut ryhmään "
 "%{link_start}<b>%{group}</b>%{link_end}"
 
-#, elixir-format
 #: lib/web/templates/email/group_member_removal.html.eex:38
+#, elixir-format
 msgid "You have been removed from group %{link_start}<b>%{group}</b>%{link_end}. You will not be able to access this group's private content anymore."
 msgstr ""
 "Sinut on poistettu ryhmästä %{link_start}<b>%{group}</b>%{link_end}. Et voi "
 "enää käyttää ryhmän yksityistä sisältöä."
 
-#, elixir-format
 #: lib/web/templates/email/group_suspension.html.eex:54
 #: lib/web/templates/email/group_suspension.text.eex:7
+#, elixir-format
 msgid "As this group was located on another instance, it will continue to work for other instances than this one."
 msgstr ""
 "Koska tämä ryhmä sijaitsi toisella palvelimella, sen toiminta jatkuu muilla "
 "kuin tällä palvelimella."
 
-#, elixir-format
 #: lib/web/templates/email/group_suspension.html.eex:46
 #: lib/web/templates/email/group_suspension.text.eex:5
+#, 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."
 
-#, elixir-format
 #: lib/web/templates/email/group_deletion.html.eex:38
 #: lib/web/templates/email/group_deletion.text.eex:3
+#, elixir-format
 msgid "The administrator %{author} deleted group %{group}. All of the group's events, discussions, posts and todos have been deleted."
 msgstr ""
 "Ylläpitäjä %{author} poisti ryhmän %{group}. Kaikki ryhmän tapahtumat, "
 "keskustelut, julkaisut ja tehtävät on poistettu."
 
-#, elixir-format
 #: lib/web/templates/email/group_suspension.html.eex:13
 #: lib/web/templates/email/group_suspension.text.eex:1
+#, elixir-format
 msgid "The group %{group} has been suspended on %{instance}!"
 msgstr "Ryhmä %{group} on estetty palvelimella %{instance}!"
 
-#, elixir-format
 #: lib/web/templates/email/group_deletion.html.eex:13
 #: lib/web/templates/email/group_deletion.text.eex:1
+#, elixir-format
 msgid "The group %{group} was deleted on %{instance}!"
 msgstr "Ryhmä %{group} on poistettu palvelimelta %{instance}!"
 
-#, elixir-format
 #: lib/web/templates/email/group_suspension.html.eex:38
 #: lib/web/templates/email/group_suspension.text.eex:3
+#, elixir-format
 msgid "Your instance's moderation team has decided to suspend %{group_name} (%{group_address}). You are no longer a member of this group."
 msgstr ""
 "Palvelimesi moderointitiimi on päättänyt estää ryhmän %{group_name} "
 "(%{group_address}). Et ole enää tämän ryhmän jäsen."
 
-#, elixir-format
 #: lib/web/email/group.ex:136
+#, elixir-format
 msgid "The group %{group} has been deleted on %{instance}"
 msgstr "Ryhmä %{group} on poistettu palvelimelta %{instance}"
 
-#, elixir-format
 #: lib/web/email/group.ex:97
+#, elixir-format
 msgid "The group %{group} has been suspended on %{instance}"
 msgstr "Ryhmä %{group} on estetty palvelimella %{instance}"
 
-#, elixir-format
 #: lib/web/templates/api/terms.html.eex:24
+#, elixir-format
 msgctxt "terms"
 msgid "By accessing or using the Service, this means you agree to be bound by all the terms below. If these terms are in any way unclear, please let us know by contacting %{contact}."
 msgstr ""
 "Jos käytät palvelua, sinun katsotaan hyväksyvän kaikki alla olevat ehdot. "
 "Jos et ymmärrä jotain kohtaa ehdoista, ota yhteyttä: %{contact}."
 
-#, elixir-format
 #: lib/web/templates/api/terms.html.eex:40
+#, elixir-format
 msgctxt "terms"
 msgid "For information about how we collect and use information about users of the Service, please check our <a href=\"/privacy\">privacy policy</a>."
 msgstr ""
 "<a href=\"/privacy\">Tietosuojakäytännössämme</a> kerrotaan, kuinka keräämme "
 "ja käytämme palvelun käyttäjien tietoja."
 
-#, elixir-format
 #: lib/web/templates/api/terms.html.eex:36
+#, elixir-format
 msgctxt "terms"
 msgid "If you continue to use the Service after the revised Terms go into effect, you accept the revised Terms."
 msgstr ""
 "Jos jatkat palvelun käyttöä muutettujen ehtojen astuttua voimaan, osoitat "
 "hyväksyneesi muutetut ehdot."
 
-#, elixir-format
 #: lib/web/templates/api/privacy.html.eex:78
+#, elixir-format
 msgctxt "terms"
 msgid "If you delete this information, you need to login again."
 msgstr "Jos poistat nämä tiedot, joudut kirjautumaan uudelleen."
 
-#, elixir-format
 #: lib/web/templates/api/privacy.html.eex:80
+#, elixir-format
 msgctxt "terms"
 msgid "If you're not connected, we don't store any information on your device, unless you participate in an event anonymously. In this specific case we store the hash of an unique identifier for the event and participation status in your browser so that we may display participation status. Deleting this information will only stop displaying participation status in your browser."
 msgstr ""
@@ -1363,20 +1363,20 @@ msgstr ""
 "voidaan näyttää. Näiden tietojen poisto vaikuttaa vain siten, että "
 "osallistumisen tilaa ei enää näytetä selaimessa."
 
-#, elixir-format
 #: lib/web/templates/api/privacy.html.eex:87
+#, elixir-format
 msgctxt "terms"
 msgid "Note: This information is stored in your localStorage and not your cookies."
 msgstr "Huomaa: Nämä tiedot tallennetaan localStorage-tietoina eikä evästeinä."
 
-#, elixir-format
 #: lib/web/templates/api/terms.html.eex:71
+#, elixir-format
 msgctxt "terms"
 msgid "Our responsibility"
 msgstr "Meidän vastuumme"
 
-#, elixir-format
 #: lib/web/templates/api/privacy.html.eex:61
+#, elixir-format
 msgctxt "terms"
 msgid "Retain server logs containing the IP address of all requests to this server, insofar as such logs are kept, no more than 90 days."
 msgstr ""
@@ -1384,9 +1384,9 @@ msgstr ""
 "sisältäviä palvelinlokeja, mikäli sellaisia pidetään, enintään 90 päivän "
 "ajan."
 
-#, elixir-format
 #: lib/web/templates/api/privacy.html.eex:3
 #: lib/web/templates/api/terms.html.eex:15
+#, elixir-format
 msgctxt "terms"
 msgid "Some terms, technical or otherwise, used in the text below may cover concepts that are difficult to grasp. We have provided <a href=\"/glossary\">a glossary</a> to help you understand them better."
 msgstr ""
@@ -1394,16 +1394,16 @@ msgstr ""
 "ymmärtää. Laatimamme <a href=\"/glossary\">sanasto</a> voi auttaa niiden "
 "ymmärtämisessä."
 
-#, elixir-format
 #: lib/web/templates/api/terms.html.eex:45
+#, elixir-format
 msgctxt "terms"
 msgid "We are not liable for any loss you may incur as a result of someone else using your email or password, either with or without your knowledge."
 msgstr ""
 "Emme ole vastuussa seurauksista, jos joku muu käyttää sähköpostiosoitettasi "
 "ja salasanaasi joko sinun tietäen tai tietämättäsi."
 
-#, elixir-format
 #: lib/web/templates/api/terms.html.eex:50
+#, elixir-format
 msgctxt "terms"
 msgid "We cannot be held responsible should a programming or administrative error make your content visible to a larger audience than intended. Aside from our limited right to your content, you retain all of your rights to the content you post, link and otherwise make available on or through the Service."
 msgstr ""
@@ -1413,8 +1413,8 @@ msgstr ""
 "julkaisemaasi, linkittämääsi tai muulla tavoin palvelussa tai sen kautta "
 "saataville saattamaasi sisältöä koskevat oikeudet säilyvät sinulla."
 
-#, elixir-format
 #: lib/web/templates/api/privacy.html.eex:10
+#, elixir-format
 msgctxt "terms"
 msgid "We collect information from you when you register on this instance and gather data when you participate in the platform by reading, writing, and interacting with content shared here. If you register on this instance, you will be asked to enter <b>an email address, a password</b> (hashed) and at least <b>an username</b>. Your email address will be verified by an email containing a unique link. Once the link is activated, we know you control that email address. You may also enter additional profile information such as <b>a display name and biography, and upload a profile picture and header image</b>. The username, display name, biography, profile picture and header image <b>are always listed publicly</b>. <b>You may however visit this instance without registering</b>."
 msgstr ""
@@ -1430,8 +1430,8 @@ msgstr ""
 "otsikkokuva <b>ovat aina julkista tietoa</b>. <b>Voit myös käyttää "
 "palvelinta rekisteröitymättä</b>."
 
-#, elixir-format
 #: lib/web/templates/api/terms.html.eex:30
+#, elixir-format
 msgctxt "terms"
 msgid "We reserve the right to modify these Terms at any time. For instance, we may need to change these Terms if we come out with a new feature."
 msgstr ""
@@ -1439,8 +1439,8 @@ msgstr ""
 "esimerkiksi olla tarpeen muuttaa, jos käyttöön otetaan uusia ominaisuuksia, "
 "tai muusta syystä."
 
-#, elixir-format
 #: lib/web/templates/api/terms.html.eex:20
+#, elixir-format
 msgctxt "terms"
 msgid "When we say “we”, “our”, or “us” in this document, we are referring to the owners, operators and administrators of this Mobilizon instance. The Mobilizon software is provided by the team of Mobilizon contributors, supported by <a href=\"https://framasoft.org\">Framasoft</a>, a French not-for-profit organization advocating for Free/Libre Software. Unless explicitly stated, this Mobilizon instance is an independent service using Mobilizon's source code. You may find more information about this instance on the <a href=\"/about/instance\">\"About this instance\"</a> page."
 msgstr ""
@@ -1453,8 +1453,8 @@ msgstr ""
 "itsenäinen palvelu. Voit lukea lisää tästä palvelimesta <a href=\"/about/"
 "instance\">”Tietoja tästä palvelimesta” -sivulta</a>."
 
-#, elixir-format
 #: lib/web/templates/api/terms.html.eex:43
+#, elixir-format
 msgctxt "terms"
 msgid "When you create an account you agree to maintain the security and confidentiality of your password and accept all risks of unauthorized access to your account data and any other information you provide to <b>%{instance_name}</b>."
 msgstr ""
@@ -1463,8 +1463,8 @@ msgstr ""
 "luovuttamiesi tilitietojen ja muiden tietojen luvattomaan käyttöön liittyvät "
 "riskit."
 
-#, elixir-format
 #: lib/web/templates/api/terms.html.eex:49
+#, elixir-format
 msgctxt "terms"
 msgid "When you post, link or otherwise make available content to the Service, you grant us the right and license to display and distribute your content on or through the Service (including via applications). We may format your content for display throughout the Service, but we will not edit or revise the substance of your content itself. The displaying and distribution of your content happens only according to the visibility rules you have set for the content. We will not modify the visibility of the content you have set."
 msgstr ""
@@ -1476,8 +1476,8 @@ msgstr ""
 "sisällölle asettamiesi näkyvyysehtojen mukaisesti. Emme muuta sisällölle "
 "asettamiasi näkyvyysehtoja."
 
-#, elixir-format
 #: lib/web/templates/api/privacy.html.eex:19
+#, elixir-format
 msgctxt "terms"
 msgid "Your <b>events</b> and <b>comments</b> are delivered to other instances that follow your own, meaning they are delivered to different instances and copies are stored there. When you delete events or comments, this is likewise delivered to these other instances. All interactions related to event features - such as joining an event - or group features - such as managing resources - are federated as well. Please keep in mind that the operators of the instance and any receiving instances may view such messages and information, and that recipients may screenshot, copy or otherwise re-share them."
 msgstr ""
@@ -1490,8 +1490,8 @@ msgstr ""
 "voivat kopioida viestin tekstinä tai kuvankaappauksena tai muulla tavoin "
 "levittää niitä edelleen."
 
-#, elixir-format
 #: lib/web/templates/api/privacy.html.eex:99
+#, elixir-format
 msgctxt "terms"
 msgid "Your content may be downloaded by other instances in the network. Your public events and comments are delivered to the instances following your own instance. Content created through a group is forwarded to all the instances of all the members of the group, insofar as these members reside on a different instance than this one."
 msgstr ""
@@ -1501,208 +1501,210 @@ msgstr ""
 "jäsenten kaikille palvelimille, mikäli ryhmässä on muita kuin tätä "
 "palvelinta käyttäviä jäseniä."
 
-#, elixir-format
 #: lib/web/templates/email/event_participation_confirmed.text.eex:4
+#, elixir-format
 msgid "You have confirmed your participation. Update your calendar, because you're on the guest list now!"
 msgstr ""
 "Olet vahvistanut osallistumisesi. Päivitä kalenterisi, sillä olet "
 "osallistujaluettelossa!"
 
-#, elixir-format
 #: lib/web/templates/email/event_participation_approved.html.eex:38
 #: lib/web/templates/email/event_participation_confirmed.html.eex:38
+#, elixir-format
 msgid "You recently requested to attend <b>%{title}</b>."
 msgstr "Lähetit pyynnön osallistua tapahtumaan <b>%{title}</b>."
 
-#, elixir-format
 #: lib/web/email/participation.ex:91
+#, elixir-format
 msgid "Your participation to event %{title} has been confirmed"
 msgstr "Osallistumisesi tapahtumaan %{title} on hyväksytty"
 
-#, elixir-format
 #: lib/web/templates/email/report.html.eex:41
+#, elixir-format
 msgid "<b>%{reporter}</b> reported the following content."
 msgstr ""
 "<b>%{reporter_name}</b> (%{reporter_username}) raportoi seuraavan sisällön."
 
-#, elixir-format
 #: lib/web/templates/email/report.text.eex:5
+#, elixir-format
 msgid "Group %{group} was reported"
 msgstr "Ryhmästä %{group} tehtiin ilmoitus"
 
-#, elixir-format
 #: lib/web/templates/email/report.html.eex:51
+#, elixir-format
 msgid "Group reported"
 msgstr "Ryhmästä ilmoitettu"
 
-#, elixir-format
 #: lib/web/templates/email/report.text.eex:7
+#, elixir-format
 msgid "Profile %{profile} was reported"
 msgstr "Profiilista %{profile} tehtiin ilmoitus"
 
-#, elixir-format
 #: lib/web/templates/email/report.html.eex:56
+#, elixir-format
 msgid "Profile reported"
 msgstr "Profiili ilmoitettu"
 
-#, elixir-format
 #: lib/web/templates/email/event_participation_confirmed.html.eex:45
+#, elixir-format
 msgid "You have now confirmed your participation. Update your calendar, because you're on the guest list now!"
 msgstr ""
 "Olet vahvistanut osallistumisesi. Päivitä kalenterisi, sillä olet "
 "osallistujaluettelossa!"
 
-#, elixir-format
 #: lib/mobilizon/posts/post.ex:94
+#, elixir-format
 msgid "A text is required for the post"
 msgstr "Julkaisuun vaaditaan tekstiä"
 
-#, elixir-format
 #: lib/mobilizon/posts/post.ex:93
+#, elixir-format
 msgid "A title is required for the post"
 msgstr "Julkaisulle vaaditaan otsikko"
 
-#, elixir-format
 #: lib/web/templates/email/instance_follow.text.eex:3
+#, elixir-format
 msgid "%{name} (%{domain}) just requested to follow your instance."
 msgstr "%{name} (%{domain}) pyysi saada seurata palvelintasi."
 
-#, elixir-format
 #: lib/web/email/follow.ex:54
+#, elixir-format
 msgid "%{name} requests to follow your instance"
 msgstr "%{name} pyytää saada seurata palvelintasi"
 
-#, elixir-format
 #: lib/web/templates/email/instance_follow.html.eex:38
+#, elixir-format
 msgid "<b>%{name} (%{domain})</b> just requested to follow your instance. If you accept, this instance will receive all of your instance's public events."
 msgstr ""
 "<b>%{name} (%{domain})</b> pyysi saada seurata palvelintasi. Jos hyväksyt "
 "pyynnön, kyseiselle palvelimelle lähetetään kaikki julkiset tapahtumat tällä "
 "palvelimella."
 
-#, elixir-format
 #: lib/web/templates/email/instance_follow.text.eex:4
+#, elixir-format
 msgid "If you accept, this instance will receive all of your public events."
 msgstr ""
 "Jos hyväksyt, kyseiselle palvelimelle lähetetään kaikki julkiset tapahtumasi."
 
-#, elixir-format
 #: lib/web/email/follow.ex:48
+#, elixir-format
 msgid "Instance %{name} (%{domain}) requests to follow your instance"
 msgstr "Palvelin %{name} (%{domain}) haluaa seurata palvelintasi"
 
-#, elixir-format
 #: lib/web/templates/email/instance_follow.html.eex:66
+#, elixir-format
 msgid "See the federation settings"
 msgstr "Katso federaatioasetukset"
 
-#, elixir-format
 #: lib/web/templates/email/instance_follow.html.eex:52
 #: lib/web/templates/email/instance_follow.text.eex:6
+#, elixir-format
 msgid "To accept this invitation, head over to the instance's admin settings."
 msgstr "Hyväksy kutsu siirtymällä omiin ryhmiisi."
 
-#, elixir-format
 #: lib/web/templates/email/instance_follow.html.eex:13
 #: lib/web/templates/email/instance_follow.text.eex:1
+#, elixir-format
 msgid "Want to connect?"
 msgstr "Haluatko yhdistää?"
 
-#, elixir-format
 #: lib/web/templates/email/instance_follow.html.eex:45
 #: lib/web/templates/email/instance_follow.text.eex:5
+#, elixir-format
 msgid "Note: %{name} (%{domain}) following you doesn't necessarily imply that you follow this instance, but you can ask to follow them too."
 msgstr ""
 "Huom: vaikka %{name} (%{domain}) seuraa sinua, se ei tarkoita, että sinä "
 "seuraisit kyseistä palvelinta, mutta voit tietenkin lähettää sinne "
 "seuraamispyynnön."
 
-#, elixir-format
 #: lib/web/templates/email/anonymous_participation_confirmation.html.eex:38
+#, elixir-format
 msgid "Hi there! You just registered to join this event: « <b>%{title}</b> ». Please confirm the e-mail address you provided:"
 msgstr ""
 "Hei! Rekisteröidyit juuri tapahtumaan ”<b>%{title}</b>”. Vahvista "
 "ilmoittamasi sähköpostiosoite:"
 
-#, elixir-format
 #: lib/web/templates/email/event_participation_rejected.html.eex:38
+#, elixir-format
 msgid "You issued a request to attend <b>%{title}</b>."
 msgstr "Lähetit pyynnön osallistua tapahtumaan <b>%{title}</b>."
 
-#, elixir-format
 #: lib/web/templates/email/event_updated.html.eex:64
+#, elixir-format
 msgid "Event title"
 msgstr "Tapahtuman otsikko"
 
-#, elixir-format
 #: lib/web/templates/email/event_updated.html.eex:38
+#, elixir-format
 msgid "There have been changes for <b>%{title}</b> so we'd thought we'd let you know."
 msgstr ""
 "<b>%{title}</b> on joiltain osin muuttunut, ja ajattelimme ilmoittaa asiasta."
 
-#, elixir-format
 #: lib/web/templates/error/500_page.html.eex:7
+#, elixir-format
 msgid "This page is not correct"
 msgstr "Sivua ei löydy"
 
-#, elixir-format
 #: lib/web/templates/error/500_page.html.eex:50
+#, elixir-format
 msgid "We're sorry, but something went wrong on our end."
 msgstr "Pahoittelemme, tapahtui virhe palvelimen päässä."
 
-#, elixir-format
 #: lib/web/templates/email/email.html.eex:89
 #: lib/web/templates/email/email.text.eex:4
-msgid "This is a demonstration site to test Mobilizon."
-msgstr "Tällä kokeilusivustolla voit koekäyttää Mobilizonia."
-
 #, elixir-format
+msgid "This is a demonstration site to test Mobilizon."
+msgstr "Tämä on koekäyttöön tarkoitettu Mobilizonin esittelysivu."
+
 #: lib/service/metadata/actor.ex:53 lib/service/metadata/actor.ex:60
 #: lib/service/metadata/instance.ex:54 lib/service/metadata/instance.ex:60
+#, elixir-format
 msgid "%{name}'s feed"
 msgstr "%{name} – syöte"
 
-#, elixir-format
 #: lib/service/export/feed.ex:120
+#, elixir-format
 msgid "%{actor}'s private events feed on %{instance}"
 msgstr "%{actor} – yksityistapahtumien syöte palvelimella %{instance}"
 
-#, elixir-format
 #: lib/service/export/feed.ex:115
+#, elixir-format
 msgid "%{actor}'s public events feed on %{instance}"
 msgstr "%{actor} – julkisten tapahtumien syöte palvelimella %{instance}"
 
-#, elixir-format
 #: lib/service/export/feed.ex:220
+#, elixir-format
 msgid "Feed for %{email} on %{instance}"
 msgstr "%{email}-syöte palvelimella %{instance}"
 
-#, elixir-format
 #: lib/web/templates/error/500_page.html.eex:57
+#, elixir-format
 msgid "If the issue persists, you may contact the server administrator at %{contact}."
 msgstr ""
+"Jos ongelma jatkuu, voit ottaa yhteyttä palvelimen ylläpitäjään osoitteeseen "
+"%{contact}."
 
-#, elixir-format
 #: lib/web/templates/error/500_page.html.eex:55
+#, elixir-format
 msgid "If the issue persists, you may try to contact the server administrator."
-msgstr ""
+msgstr "Jos ongelma jatkuu, voit ottaa yhteyttä palvelimen ylläpitäjään."
 
-#, elixir-format
 #: lib/web/templates/error/500_page.html.eex:68
-msgid "Technical details"
-msgstr ""
-
 #, elixir-format
+msgid "Technical details"
+msgstr "Tekniset tiedot"
+
 #: lib/web/templates/error/500_page.html.eex:52
+#, elixir-format
 msgid "The Mobilizon server %{instance} seems to be temporarily down."
 msgstr "Mobilizon-palvelin näyttää olevan väliakaisesti alhaalla."
 
-#, elixir-format
 #: lib/service/export/feed.ex:73
-msgid "Public feed for %{instance}"
-msgstr ""
-
 #, elixir-format
+msgid "Public feed for %{instance}"
+msgstr "Palvelimen %{instance} julkinen syöte"
+
 #: lib/web/email/activity.ex:27
+#, elixir-format
 msgid "Activity notification for %{instance}"
-msgstr ""
+msgstr "Palvelimen %{instance} toimenpideilmoitus"
diff --git a/priv/gettext/fi/LC_MESSAGES/errors.po b/priv/gettext/fi/LC_MESSAGES/errors.po
index eaea5669e..80211574a 100644
--- a/priv/gettext/fi/LC_MESSAGES/errors.po
+++ b/priv/gettext/fi/LC_MESSAGES/errors.po
@@ -8,7 +8,7 @@
 ## to merge POT files into PO files.
 msgid ""
 msgstr ""
-"PO-Revision-Date: 2021-01-20 16:18+0000\n"
+"PO-Revision-Date: 2021-06-12 00:15+0000\n"
 "Last-Translator: Taru Luojola <taru.luojola@posteo.net>\n"
 "Language-Team: Finnish <https://weblate.framasoft.org/projects/mobilizon/"
 "backend-errors/fi/>\n"
@@ -16,7 +16,7 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 4.4\n"
+"X-Generator: Weblate 4.6.2\n"
 
 #: lib/mobilizon/discussions/discussion.ex:67
 msgid "can't be blank"
@@ -94,766 +94,766 @@ msgstr "tulee olla vähintään %{number}"
 msgid "must be equal to %{number}"
 msgstr "tulee olla tasas %{number}"
 
-#, elixir-format
 #: lib/graphql/resolvers/user.ex:100
+#, elixir-format
 msgid "Cannot refresh the token"
 msgstr "Merkkiä ei voi päivittää"
 
-#, elixir-format
 #: lib/graphql/resolvers/group.ex:206
+#, elixir-format
 msgid "Current profile is not a member of this group"
 msgstr "Nykyinen profiili ei kuulu tähän ryhmään"
 
-#, elixir-format
 #: lib/graphql/resolvers/group.ex:210
+#, elixir-format
 msgid "Current profile is not an administrator of the selected group"
 msgstr "Nykyinen profiili ei ole valitun ryhmän ylläpitäjä"
 
-#, elixir-format
 #: lib/graphql/resolvers/user.ex:523
+#, elixir-format
 msgid "Error while saving user settings"
 msgstr "Käyttäjän asetusten tallennuksessa tapahtui virhe"
 
-#, elixir-format
 #: lib/graphql/error.ex:90 lib/graphql/resolvers/group.ex:203
 #: lib/graphql/resolvers/group.ex:234 lib/graphql/resolvers/group.ex:269 lib/graphql/resolvers/member.ex:80
+#, elixir-format
 msgid "Group not found"
 msgstr "Ryhmää ei löydy"
 
-#, elixir-format
 #: lib/graphql/resolvers/group.ex:68
+#, elixir-format
 msgid "Group with ID %{id} not found"
 msgstr "Tunnuksella %{id} ei löydy ryhmää"
 
-#, elixir-format
 #: lib/graphql/resolvers/user.ex:80
+#, elixir-format
 msgid "Impossible to authenticate, either your email or password are invalid."
 msgstr ""
 "Kirjautuminen epäonnistui - joko sähköpostiosoitteesi tai salasana on väärin."
 
-#, elixir-format
 #: lib/graphql/resolvers/group.ex:266
+#, elixir-format
 msgid "Member not found"
 msgstr "Jäsentä ei löydy"
 
-#, elixir-format
 #: lib/graphql/resolvers/actor.ex:61 lib/graphql/resolvers/actor.ex:91
 #: lib/graphql/resolvers/user.ex:428
+#, elixir-format
 msgid "No profile found for the moderator user"
 msgstr "Moderaattorikäyttäjän profiilia ei löydy"
 
-#, elixir-format
 #: lib/graphql/resolvers/user.ex:215
+#, elixir-format
 msgid "No user to validate with this email was found"
 msgstr "Käyttäjää tämän sähköpostin vahvistamiseksi ei löydy"
 
-#, elixir-format
 #: lib/graphql/resolvers/person.ex:254 lib/graphql/resolvers/user.ex:240
+#, elixir-format
 msgid "No user with this email was found"
 msgstr "Käyttäjää, jolla on tämä sähköpostiosoite ei löydy"
 
-#, elixir-format
 #: lib/graphql/resolvers/feed_token.ex:28
 #: lib/graphql/resolvers/participant.ex:28 lib/graphql/resolvers/participant.ex:159
 #: lib/graphql/resolvers/participant.ex:188 lib/graphql/resolvers/person.ex:165 lib/graphql/resolvers/person.ex:199
 #: lib/graphql/resolvers/person.ex:279 lib/graphql/resolvers/person.ex:295 lib/graphql/resolvers/person.ex:323
 #: lib/graphql/resolvers/person.ex:340
+#, elixir-format
 msgid "Profile is not owned by authenticated user"
 msgstr "Profiili ei ole tunnistautuneen käyttäjän omistuksessa"
 
-#, elixir-format
 #: lib/graphql/resolvers/user.ex:145
+#, elixir-format
 msgid "Registrations are not open"
 msgstr "Ei voi rekisteröityä"
 
-#, elixir-format
 #: lib/graphql/resolvers/user.ex:353
+#, elixir-format
 msgid "The current password is invalid"
 msgstr "Nykyinen salasana ei kelpaa"
 
-#, elixir-format
 #: lib/graphql/resolvers/user.ex:398
+#, elixir-format
 msgid "The new email doesn't seem to be valid"
 msgstr "Uusi sähköpostiosoite ei vaikuta kelvolliselta"
 
-#, elixir-format
 #: lib/graphql/resolvers/user.ex:395
+#, elixir-format
 msgid "The new email must be different"
 msgstr "Uuden sähköpostiosoitteen on poikettava vanhasta"
 
-#, elixir-format
 #: lib/graphql/resolvers/user.ex:356
+#, elixir-format
 msgid "The new password must be different"
 msgstr "Uuden salasanan on poikettava vanhasta"
 
-#, elixir-format
 #: lib/graphql/resolvers/user.ex:392 lib/graphql/resolvers/user.ex:450
 #: lib/graphql/resolvers/user.ex:453
+#, elixir-format
 msgid "The password provided is invalid"
 msgstr "Annettu salasana on epäkelpo"
 
-#, elixir-format
 #: lib/graphql/resolvers/user.ex:360
+#, 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."
 
-#, elixir-format
 #: lib/graphql/resolvers/user.ex:236
+#, elixir-format
 msgid "This user can't reset their password"
 msgstr "Käyttäjä ei voi palauttaa salasanaansa"
 
-#, elixir-format
 #: lib/graphql/resolvers/user.ex:76
+#, elixir-format
 msgid "This user has been disabled"
 msgstr "Käyttäjä on poistettu käytöstä"
 
-#, elixir-format
 #: lib/graphql/resolvers/user.ex:199
+#, elixir-format
 msgid "Unable to validate user"
 msgstr "Käyttäjää ei voi vahvistaa"
 
-#, elixir-format
 #: lib/graphql/resolvers/user.ex:431
+#, elixir-format
 msgid "User already disabled"
 msgstr "Käyttäjä on jo poistettu käytöstä"
 
-#, elixir-format
 #: lib/graphql/resolvers/user.ex:498
+#, elixir-format
 msgid "User requested is not logged-in"
 msgstr "Pyydetty käyttäjä ei ole kirjautuneena sisään"
 
-#, elixir-format
 #: lib/graphql/resolvers/group.ex:240
+#, elixir-format
 msgid "You are already a member of this group"
 msgstr "Olet jo tämän ryhmän jäsen"
 
-#, elixir-format
 #: lib/graphql/resolvers/group.ex:273
+#, elixir-format
 msgid "You can't leave this group because you are the only administrator"
 msgstr "Et voi poistua ryhmästä, koska olet sen ainoa ylläpitäjä"
 
-#, elixir-format
 #: lib/graphql/resolvers/group.ex:237
+#, elixir-format
 msgid "You cannot join this group"
 msgstr "Et voi liittyä tähän ryhmään"
 
-#, elixir-format
 #: lib/graphql/resolvers/group.ex:96
+#, elixir-format
 msgid "You may not list groups unless moderator."
 msgstr "Voit nähdä ryhmäluettelon vain, jos olet moderaattori."
 
-#, elixir-format
 #: lib/graphql/resolvers/user.ex:403
+#, elixir-format
 msgid "You need to be logged-in to change your email"
 msgstr "Sähköpostiosoitteen voi vaihtaa vain sisäänkirjautuneena"
 
-#, elixir-format
 #: lib/graphql/resolvers/user.ex:368
+#, elixir-format
 msgid "You need to be logged-in to change your password"
 msgstr "Salasanan voi vaihtaa vain sisäänkirjautuneena"
 
-#, elixir-format
 #: lib/graphql/resolvers/group.ex:215
+#, elixir-format
 msgid "You need to be logged-in to delete a group"
 msgstr "Ryhmän voi poistaa vain sisäänkirjautuneena"
 
-#, elixir-format
 #: lib/graphql/resolvers/user.ex:458
+#, elixir-format
 msgid "You need to be logged-in to delete your account"
 msgstr "Voit poistaa tilisi vain sisäänkirjautuneena"
 
-#, elixir-format
 #: lib/graphql/resolvers/group.ex:245
+#, elixir-format
 msgid "You need to be logged-in to join a group"
 msgstr "Voit liittyä ryhmään vain sisäänkirjautuneena"
 
-#, elixir-format
 #: lib/graphql/resolvers/group.ex:278
+#, elixir-format
 msgid "You need to be logged-in to leave a group"
 msgstr "Voit poistua ryhmästä vain sisäänkirjautuneena"
 
-#, elixir-format
 #: lib/graphql/resolvers/group.ex:180
+#, elixir-format
 msgid "You need to be logged-in to update a group"
 msgstr "Voit päivittää ryhmää vain sisäänkirjautuneena"
 
-#, elixir-format
 #: lib/graphql/resolvers/user.ex:105
+#, elixir-format
 msgid "You need to have an existing token to get a refresh token"
 msgstr "Voit saada uuden merkin vain, jos sinulla on jo merkki"
 
-#, elixir-format
 #: lib/graphql/resolvers/user.ex:218 lib/graphql/resolvers/user.ex:243
+#, elixir-format
 msgid "You requested again a confirmation email too soon"
 msgstr "Pyysit uutta vahvistussähköpostia liian aikaisin"
 
-#, elixir-format
 #: lib/graphql/resolvers/user.ex:148
+#, elixir-format
 msgid "Your email is not on the allowlist"
 msgstr "Sähköpostiosoitteesi ei ole sallittujen luettelossa"
 
-#, elixir-format
 #: lib/graphql/resolvers/actor.ex:67 lib/graphql/resolvers/actor.ex:97
+#, elixir-format
 msgid "Error while performing background task"
 msgstr "Virhe taustatehtävää suoritettaessa"
 
-#, elixir-format
 #: lib/graphql/resolvers/actor.ex:30
+#, elixir-format
 msgid "No profile found with this ID"
 msgstr "Tällä tunnisteella ei löytynyt profiilia"
 
-#, elixir-format
 #: lib/graphql/resolvers/actor.ex:57 lib/graphql/resolvers/actor.ex:94
+#, elixir-format
 msgid "No remote profile found with this ID"
 msgstr "Tällä tunnisteella ei löytynyt etäprofiilia"
 
-#, elixir-format
 #: lib/graphql/resolvers/actor.ex:72
+#, elixir-format
 msgid "Only moderators and administrators can suspend a profile"
 msgstr "Vain moderaattorit ja ylläpitäjät voivat hyllyttää profiilin"
 
-#, elixir-format
 #: lib/graphql/resolvers/actor.ex:102
+#, elixir-format
 msgid "Only moderators and administrators can unsuspend a profile"
 msgstr "Vain moderaattorit ja ylläpitäjät voivat palauttaa hyllytetyn profiilin"
 
-#, elixir-format
 #: lib/graphql/resolvers/actor.ex:27
+#, elixir-format
 msgid "Only remote profiles may be refreshed"
 msgstr "Vain etäprofiilit voi ladata uudelleen"
 
-#, elixir-format
 #: lib/graphql/resolvers/actor.ex:64
+#, elixir-format
 msgid "Profile already suspended"
 msgstr "Profiili on jo hyllytetty"
 
-#, elixir-format
 #: lib/graphql/resolvers/participant.ex:92
+#, elixir-format
 msgid "A valid email is required by your instance"
 msgstr "Palvelin vaatii kelvollisen sähköpostiosoitteen"
 
-#, elixir-format
 #: lib/graphql/resolvers/participant.ex:86
+#, elixir-format
 msgid "Anonymous participation is not enabled"
 msgstr "Anonyymi osallistuminen ei ole käytössä"
 
-#, elixir-format
 #: lib/graphql/resolvers/person.ex:196
+#, elixir-format
 msgid "Cannot remove the last administrator of a group"
 msgstr "Ryhmän viimeistä ylläpitäjää ei voi poistaa"
 
-#, elixir-format
 #: lib/graphql/resolvers/person.ex:193
+#, elixir-format
 msgid "Cannot remove the last identity of a user"
 msgstr "Käyttäjän viimeistä identiteettiä ei voi poistaa"
 
-#, elixir-format
 #: lib/graphql/resolvers/comment.ex:108
+#, elixir-format
 msgid "Comment is already deleted"
 msgstr "Kommentti on jo poistettu"
 
-#, elixir-format
 #: lib/graphql/error.ex:92 lib/graphql/resolvers/discussion.ex:62
+#, elixir-format
 msgid "Discussion not found"
 msgstr "Keskustelua ei löydy"
 
-#, elixir-format
 #: lib/graphql/resolvers/report.ex:58 lib/graphql/resolvers/report.ex:77
+#, elixir-format
 msgid "Error while saving report"
 msgstr "Virhe raporttia tallennettaessa"
 
-#, elixir-format
 #: lib/graphql/resolvers/report.ex:96
+#, elixir-format
 msgid "Error while updating report"
 msgstr "Virhe raporttia päivitettäessä"
 
-#, elixir-format
 #: lib/graphql/resolvers/participant.ex:127
+#, elixir-format
 msgid "Event id not found"
 msgstr "Tapahtumatunnistetta ei löydy"
 
-#, elixir-format
 #: lib/graphql/error.ex:89 lib/graphql/resolvers/event.ex:284
 #: lib/graphql/resolvers/event.ex:328
+#, elixir-format
 msgid "Event not found"
 msgstr "Tapahtumaa ei löydy"
 
-#, elixir-format
 #: lib/graphql/resolvers/participant.ex:83
 #: lib/graphql/resolvers/participant.ex:124 lib/graphql/resolvers/participant.ex:156
+#, elixir-format
 msgid "Event with this ID %{id} doesn't exist"
 msgstr "Tunnisteella %{id} ei ole tapahtumaa"
 
-#, elixir-format
 #: lib/graphql/resolvers/participant.ex:99
+#, elixir-format
 msgid "Internal Error"
 msgstr "Sisäinen virhe"
 
-#, elixir-format
 #: lib/graphql/resolvers/discussion.ex:202
+#, elixir-format
 msgid "No discussion with ID %{id}"
 msgstr "Tunnisteella %{id} ei ole keskustelua"
 
-#, elixir-format
 #: lib/graphql/resolvers/todos.ex:78 lib/graphql/resolvers/todos.ex:168
+#, elixir-format
 msgid "No profile found for user"
 msgstr "Käyttäjälle ei löydy profiilia"
 
-#, elixir-format
 #: lib/graphql/resolvers/feed_token.ex:64
+#, elixir-format
 msgid "No such feed token"
 msgstr "Kyseistä syötemerkkiä ei ole"
 
-#, elixir-format
 #: lib/graphql/resolvers/participant.ex:237
+#, elixir-format
 msgid "Participant already has role %{role}"
 msgstr "Osallistujalla on jo rooli %{role}"
 
-#, elixir-format
 #: lib/graphql/resolvers/participant.ex:169
 #: lib/graphql/resolvers/participant.ex:198 lib/graphql/resolvers/participant.ex:230
 #: lib/graphql/resolvers/participant.ex:240
+#, elixir-format
 msgid "Participant not found"
 msgstr "Osallistujaa ei löydy"
 
-#, elixir-format
 #: lib/graphql/resolvers/person.ex:30
+#, elixir-format
 msgid "Person with ID %{id} not found"
 msgstr "Tunnuksella %{id} ei löydy henkilöä"
 
-#, elixir-format
 #: lib/graphql/resolvers/person.ex:52
+#, elixir-format
 msgid "Person with username %{username} not found"
 msgstr "Käyttäjänimellä %{username} ei löydy henkilöä"
 
-#, elixir-format
 #: lib/graphql/resolvers/post.ex:167 lib/graphql/resolvers/post.ex:200
+#, elixir-format
 msgid "Post ID is not a valid ID"
 msgstr "Julkaisun tunnus ei ole kelvollinen"
 
-#, elixir-format
 #: lib/graphql/resolvers/post.ex:170 lib/graphql/resolvers/post.ex:203
+#, elixir-format
 msgid "Post doesn't exist"
 msgstr "Julkaisua ei ole"
 
-#, elixir-format
 #: lib/graphql/resolvers/member.ex:83
+#, elixir-format
 msgid "Profile invited doesn't exist"
 msgstr "Kutsuttua profiilia ei ole"
 
-#, elixir-format
 #: lib/graphql/resolvers/member.ex:92 lib/graphql/resolvers/member.ex:96
+#, elixir-format
 msgid "Profile is already a member of this group"
 msgstr "Profiili on jo ryhmän jäsen"
 
-#, elixir-format
 #: lib/graphql/resolvers/post.ex:132 lib/graphql/resolvers/post.ex:173
 #: lib/graphql/resolvers/post.ex:206 lib/graphql/resolvers/resource.ex:88 lib/graphql/resolvers/resource.ex:128
 #: lib/graphql/resolvers/resource.ex:157 lib/graphql/resolvers/resource.ex:186 lib/graphql/resolvers/todos.ex:57
 #: lib/graphql/resolvers/todos.ex:81 lib/graphql/resolvers/todos.ex:99 lib/graphql/resolvers/todos.ex:171
 #: lib/graphql/resolvers/todos.ex:194 lib/graphql/resolvers/todos.ex:222
+#, elixir-format
 msgid "Profile is not member of group"
 msgstr "Profiili ei ole ryhmän jäsen"
 
-#, elixir-format
 #: lib/graphql/resolvers/person.ex:162 lib/graphql/resolvers/person.ex:190
+#, elixir-format
 msgid "Profile not found"
 msgstr "Profiilia ei löydy"
 
-#, elixir-format
 #: lib/graphql/resolvers/report.ex:36
+#, elixir-format
 msgid "Report not found"
 msgstr "Raporttia ei löydy"
 
-#, elixir-format
 #: lib/graphql/resolvers/resource.ex:154 lib/graphql/resolvers/resource.ex:183
+#, elixir-format
 msgid "Resource doesn't exist"
 msgstr "Resurssia ei ole"
 
-#, elixir-format
 #: lib/graphql/resolvers/participant.ex:120
+#, elixir-format
 msgid "The event has already reached its maximum capacity"
 msgstr "Tapahtuma on jo täynnä"
 
-#, elixir-format
 #: lib/graphql/resolvers/participant.ex:260
+#, elixir-format
 msgid "This token is invalid"
 msgstr "Epäkelpo merkki"
 
-#, elixir-format
 #: lib/graphql/resolvers/todos.ex:165 lib/graphql/resolvers/todos.ex:219
+#, elixir-format
 msgid "Todo doesn't exist"
 msgstr "Työkalua ei ole"
 
-#, elixir-format
 #: lib/graphql/resolvers/todos.ex:75 lib/graphql/resolvers/todos.ex:191
 #: lib/graphql/resolvers/todos.ex:216
+#, elixir-format
 msgid "Todo list doesn't exist"
 msgstr "Tehtäväluetteloa ei ole"
 
-#, elixir-format
 #: lib/graphql/resolvers/feed_token.ex:73
+#, elixir-format
 msgid "Token does not exist"
 msgstr "Merkkiä ei ole"
 
-#, elixir-format
 #: lib/graphql/resolvers/feed_token.ex:67 lib/graphql/resolvers/feed_token.ex:70
+#, elixir-format
 msgid "Token is not a valid UUID"
 msgstr "Merkki ei ole kelvollinen UUID"
 
-#, elixir-format
 #: lib/graphql/error.ex:87 lib/graphql/resolvers/person.ex:356
+#, elixir-format
 msgid "User not found"
 msgstr "Käyttäjää ei löydy"
 
-#, elixir-format
 #: lib/graphql/resolvers/person.ex:257
+#, elixir-format
 msgid "You already have a profile for this user"
 msgstr "Sinulla on jo profiili tälle käyttäjälle"
 
-#, elixir-format
 #: lib/graphql/resolvers/participant.ex:130
+#, elixir-format
 msgid "You are already a participant of this event"
 msgstr "Olet jo tapahtuman osallistuja"
 
-#, elixir-format
 #: lib/graphql/resolvers/member.ex:86
+#, elixir-format
 msgid "You are not a member of this group"
 msgstr "Et ole ryhmän jäsen"
 
-#, elixir-format
 #: lib/graphql/resolvers/member.ex:149
+#, elixir-format
 msgid "You are not a moderator or admin for this group"
 msgstr "Et ole ryhmän moderaattori tai ylläpitäjä"
 
-#, elixir-format
 #: lib/graphql/resolvers/comment.ex:54
+#, elixir-format
 msgid "You are not allowed to create a comment if not connected"
 msgstr "Ilman yhteyttä ei voi kommentoida"
 
-#, elixir-format
 #: lib/graphql/resolvers/feed_token.ex:41
+#, elixir-format
 msgid "You are not allowed to create a feed token if not connected"
 msgstr "Ilman yhteyttä ei voi luoda syötemerkkiä"
 
-#, elixir-format
 #: lib/graphql/resolvers/comment.ex:113
+#, elixir-format
 msgid "You are not allowed to delete a comment if not connected"
 msgstr "Ilman yhteyttä ei voi poistaa kommenttia"
 
-#, elixir-format
 #: lib/graphql/resolvers/feed_token.ex:82
+#, elixir-format
 msgid "You are not allowed to delete a feed token if not connected"
 msgstr "Ilman yhteyttä ei voi poistaa syötemerkkiä"
 
-#, elixir-format
 #: lib/graphql/resolvers/comment.ex:76
+#, elixir-format
 msgid "You are not allowed to update a comment if not connected"
 msgstr "Ilman yhteyttä ei voi päivittää kommenttia"
 
-#, elixir-format
 #: lib/graphql/resolvers/participant.ex:163
 #: lib/graphql/resolvers/participant.ex:192
+#, elixir-format
 msgid "You can't leave event because you're the only event creator participant"
 msgstr ""
 "Et voi poistua tapahtumasta, koska olet ainoa tapahtuman luonut osallistuja"
 
-#, elixir-format
 #: lib/graphql/resolvers/member.ex:153
+#, elixir-format
 msgid "You can't set yourself to a lower member role for this group because you are the only administrator"
 msgstr ""
 "Et voi vaihtaa jäsenrooliasi ryhmässä nykyistä alemmaksi, koska olet ainoa "
 "ylläpitäjä"
 
-#, elixir-format
 #: lib/graphql/resolvers/comment.ex:104
+#, elixir-format
 msgid "You cannot delete this comment"
 msgstr "Et voi poistaa kommenttia"
 
-#, elixir-format
 #: lib/graphql/resolvers/event.ex:324
+#, elixir-format
 msgid "You cannot delete this event"
 msgstr "Et voi poistaa tapahtumaa"
 
-#, elixir-format
 #: lib/graphql/resolvers/member.ex:89
+#, elixir-format
 msgid "You cannot invite to this group"
 msgstr "Et voi kutsua tähän ryhmään"
 
-#, elixir-format
 #: lib/graphql/resolvers/feed_token.ex:76
+#, elixir-format
 msgid "You don't have permission to delete this token"
 msgstr "Sinulla ei ole oikeutta poistaa tätä merkkiä"
 
-#, elixir-format
 #: lib/graphql/resolvers/admin.ex:53
+#, elixir-format
 msgid "You need to be logged-in and a moderator to list action logs"
 msgstr "Toimintalokien katselu vain moderaattorille sisäänkirjautuneena"
 
-#, elixir-format
 #: lib/graphql/resolvers/report.ex:26
+#, elixir-format
 msgid "You need to be logged-in and a moderator to list reports"
 msgstr "Raporttien katselu vain moderaattorille sisäänkirjautuneena"
 
-#, elixir-format
 #: lib/graphql/resolvers/report.ex:101
+#, elixir-format
 msgid "You need to be logged-in and a moderator to update a report"
 msgstr "Raportin päivittäminen vain moderaattorille sisäänkirjautuneena"
 
-#, elixir-format
 #: lib/graphql/resolvers/report.ex:41
+#, elixir-format
 msgid "You need to be logged-in and a moderator to view a report"
 msgstr "Raportin katselu vain moderaattorille sisäänkirjautuneena"
 
-#, elixir-format
 #: lib/graphql/resolvers/admin.ex:237
+#, 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"
 
-#, elixir-format
 #: lib/graphql/resolvers/admin.ex:222
+#, 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"
 
-#, elixir-format
 #: lib/graphql/resolvers/admin.ex:261
+#, 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"
 
-#, elixir-format
 #: lib/graphql/resolvers/discussion.ex:77
+#, elixir-format
 msgid "You need to be logged-in to access discussions"
 msgstr "Pääsy keskusteluihin vain sisäänkirjautuneena"
 
-#, elixir-format
 #: lib/graphql/resolvers/resource.ex:94
+#, elixir-format
 msgid "You need to be logged-in to access resources"
 msgstr "Pääsy resursseihin vain sisäänkirjautuneena"
 
-#, elixir-format
 #: lib/graphql/resolvers/event.ex:259
+#, elixir-format
 msgid "You need to be logged-in to create events"
 msgstr "Tapahtumien luonti vain sisäänkirjautuneena"
 
-#, elixir-format
 #: lib/graphql/resolvers/post.ex:140
+#, elixir-format
 msgid "You need to be logged-in to create posts"
 msgstr "Julkaisujen luonti vain sisäänkirjautuneena"
 
-#, elixir-format
 #: lib/graphql/resolvers/report.ex:74
+#, elixir-format
 msgid "You need to be logged-in to create reports"
 msgstr "Raporttien luonti vain sisäänkirjautuneena"
 
-#, elixir-format
 #: lib/graphql/resolvers/resource.ex:133
+#, elixir-format
 msgid "You need to be logged-in to create resources"
 msgstr "Resurssien luonti vain sisäänkirjautuneena"
 
-#, elixir-format
 #: lib/graphql/resolvers/event.ex:333
+#, elixir-format
 msgid "You need to be logged-in to delete an event"
 msgstr "Tapahtuman poisto vain sisäänkirjautuneena"
 
-#, elixir-format
 #: lib/graphql/resolvers/post.ex:211
+#, elixir-format
 msgid "You need to be logged-in to delete posts"
 msgstr "Julkaisujen poisto vain sisäänkirjautuneena"
 
-#, elixir-format
 #: lib/graphql/resolvers/resource.ex:191
+#, elixir-format
 msgid "You need to be logged-in to delete resources"
 msgstr "Resurssien poisto vain sisäänkirjautuneena"
 
-#, elixir-format
 #: lib/graphql/resolvers/participant.ex:104
+#, elixir-format
 msgid "You need to be logged-in to join an event"
 msgstr "Tapahtumaan liittyminen vain sisäänkirjautuneena"
 
-#, elixir-format
 #: lib/graphql/resolvers/participant.ex:203
+#, elixir-format
 msgid "You need to be logged-in to leave an event"
 msgstr "Tapahtumasta poistuminen vain sisäänkirjautuneena"
 
-#, elixir-format
 #: lib/graphql/resolvers/event.ex:298
+#, elixir-format
 msgid "You need to be logged-in to update an event"
 msgstr "Tapahtuman päivittäminen vain sisäänkirjautuneena"
 
-#, elixir-format
 #: lib/graphql/resolvers/post.ex:178
+#, elixir-format
 msgid "You need to be logged-in to update posts"
 msgstr "Julkaisujen päivittäminen vain sisäänkirjautuneena"
 
-#, elixir-format
 #: lib/graphql/resolvers/resource.ex:162
+#, elixir-format
 msgid "You need to be logged-in to update resources"
 msgstr "Resurssien päivittäminen vain sisäänkirjautuneena"
 
-#, elixir-format
 #: lib/graphql/resolvers/resource.ex:218
+#, elixir-format
 msgid "You need to be logged-in to view a resource preview"
 msgstr "Resurssin esikatselu vain sisäänkirjautuneena"
 
-#, elixir-format
 #: lib/graphql/resolvers/resource.ex:125
+#, elixir-format
 msgid "Parent resource doesn't belong to this group"
 msgstr "Ylätason resurssi ei kuulu tähän ryhmään"
 
-#, elixir-format
 #: lib/mobilizon/users/user.ex:110
+#, elixir-format
 msgid "The chosen password is too short."
 msgstr "Valittu salasana on liian lyhyt."
 
-#, elixir-format
 #: lib/mobilizon/users/user.ex:139
+#, elixir-format
 msgid "The registration token is already in use, this looks like an issue on our side."
 msgstr "Rekisteröintimerkki on jo käytössä. Vaikuttaa palvelinpään virheeltä."
 
-#, elixir-format
 #: lib/mobilizon/users/user.ex:105
+#, elixir-format
 msgid "This email is already used."
 msgstr "Sähköpostiosoite on jo käytössä."
 
-#, elixir-format
 #: lib/graphql/error.ex:88
+#, elixir-format
 msgid "Post not found"
 msgstr "Julkaisua ei löydy"
 
-#, elixir-format
 #: lib/graphql/error.ex:75
+#, elixir-format
 msgid "Invalid arguments passed"
 msgstr "Virheelliset argumentit välitetty"
 
-#, elixir-format
 #: lib/graphql/error.ex:81
+#, elixir-format
 msgid "Invalid credentials"
 msgstr "Virheelliset kirjautumistiedot"
 
-#, elixir-format
 #: lib/graphql/error.ex:79
+#, elixir-format
 msgid "Reset your password to login"
 msgstr "Palauta salasana, jotta voit kirjautua sisään"
 
-#, elixir-format
 #: lib/graphql/error.ex:86 lib/graphql/error.ex:91
+#, elixir-format
 msgid "Resource not found"
 msgstr "Resurssia ei löydy"
 
-#, elixir-format
 #: lib/graphql/error.ex:93
+#, elixir-format
 msgid "Something went wrong"
 msgstr "Jokin meni vikaan"
 
-#, elixir-format
 #: lib/graphql/error.ex:74
+#, elixir-format
 msgid "Unknown Resource"
 msgstr "Tuntematon resurssi"
 
-#, elixir-format
 #: lib/graphql/error.ex:84
+#, elixir-format
 msgid "You don't have permission to do this"
 msgstr "Sinulla ei ole oikeutta tähän"
 
-#, elixir-format
 #: lib/graphql/error.ex:76
+#, elixir-format
 msgid "You need to be logged in"
 msgstr "Kirjaudu ensin sisään"
 
-#, elixir-format
 #: lib/graphql/resolvers/member.ex:114
+#, elixir-format
 msgid "You can't accept this invitation with this profile."
 msgstr "Et voi hyväksyä kutsua tällä profiililla."
 
-#, elixir-format
 #: lib/graphql/resolvers/member.ex:132
+#, elixir-format
 msgid "You can't reject this invitation with this profile."
 msgstr "Et voi hylätä kutsua tällä profiililla."
 
-#, elixir-format
 #: lib/graphql/resolvers/media.ex:62
+#, elixir-format
 msgid "File doesn't have an allowed MIME type."
 msgstr "Tiedostolla ei ole sallittua MIME-tyyppiä."
 
-#, elixir-format
 #: lib/graphql/resolvers/group.ex:175
+#, elixir-format
 msgid "Profile is not administrator for the group"
 msgstr "Profiili ei ole ryhmän ylläpitäjä"
 
-#, elixir-format
 #: lib/graphql/resolvers/event.ex:287
+#, elixir-format
 msgid "You can't edit this event."
 msgstr "Et voi muokata tapahtumaa."
 
-#, elixir-format
 #: lib/graphql/resolvers/event.ex:290
+#, elixir-format
 msgid "You can't attribute this event to this profile."
 msgstr "Et voi yhdistää tapahtumaa tähän profiiliin."
 
-#, elixir-format
 #: lib/graphql/resolvers/member.ex:135
+#, elixir-format
 msgid "This invitation doesn't exist."
 msgstr "Kutsua ei ole."
 
-#, elixir-format
 #: lib/graphql/resolvers/member.ex:177
+#, elixir-format
 msgid "This member already has been rejected."
 msgstr "Jäsen on jo hylätty."
 
-#, elixir-format
 #: lib/graphql/resolvers/member.ex:184
+#, elixir-format
 msgid "You don't have the right to remove this member."
 msgstr "Sinulla ei ole oikeutta poistaa jäsentä."
 
-#, elixir-format
 #: lib/mobilizon/actors/actor.ex:351
+#, elixir-format
 msgid "This username is already taken."
 msgstr "Käyttäjänimi on jo käytössä."
 
-#, elixir-format
 #: lib/graphql/resolvers/discussion.ex:74
+#, elixir-format
 msgid "You must provide either an ID or a slug to access a discussion"
 msgstr "Keskusteluun pääsemiseen vaaditaan tunniste tai polkutunnus"
 
-#, elixir-format
 #: lib/graphql/resolvers/event.ex:248
+#, elixir-format
 msgid "Organizer profile is not owned by the user"
 msgstr "Järjestäjän profiili ei ole käyttäjän hallussa"
 
-#, elixir-format
 #: lib/graphql/resolvers/participant.ex:89
+#, elixir-format
 msgid "Profile ID provided is not the anonymous profile one"
 msgstr "Annettu profiilitunniste ei kuulu anonyymille profiilille"
 
-#, elixir-format
 #: lib/graphql/resolvers/group.ex:136 lib/graphql/resolvers/group.ex:169
 #: lib/graphql/resolvers/person.ex:132 lib/graphql/resolvers/person.ex:159 lib/graphql/resolvers/person.ex:251
+#, elixir-format
 msgid "The provided picture is too heavy"
 msgstr "Toimitettu kuva on liian suuri"
 
-#, elixir-format
 #: lib/web/views/utils.ex:33
-msgid "Index file not found. You need to recompile the front-end."
-msgstr ""
-
 #, elixir-format
+msgid "Index file not found. You need to recompile the front-end."
+msgstr "Indeksitiedostoa ei löydy. Kokoa käyttöliittymä uudelleen."
+
 #: lib/graphql/resolvers/resource.ex:122
+#, elixir-format
 msgid "Error while creating resource"
 msgstr "Virhe raporttia tallennettaessa"
 
-#, elixir-format
 #: lib/graphql/resolvers/user.ex:412
+#, elixir-format
 msgid "Invalid activation token"
-msgstr ""
+msgstr "Virheellinen aktivointimerkki"
 
-#, elixir-format
 #: lib/graphql/resolvers/resource.ex:208
-msgid "Unable to fetch resource details from this URL."
-msgstr ""
-
 #, 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:148 lib/graphql/resolvers/participant.ex:234
+#, elixir-format
 msgid "Provided profile doesn't have moderator permissions on this event"
 msgstr "Annetulla moderaattoriprofiililla ei ole oikeuksia tähän tapahtumaan"