diff --git a/README.md b/README.md
index 80035182c..5d55d3ae3 100644
--- a/README.md
+++ b/README.md
@@ -66,6 +66,7 @@ We appreciate any contribution to Mobilizon. Check [our contributing page](https
* 🔢 Pick an instance [https://mobilizon.org](https://mobilizon.org)
* 💻 Source: [https://framagit.org/framasoft/mobilizon](https://framagit.org/framasoft/mobilizon)
* 📜 Documentation [https://docs.joinmobilizon.org](https://docs.joinmobilizon.org)
+ * A summarized description of structure of sources is done in [`docs/dev.md`](./docs/dev.md)
### Discuss
* 💬 Element/Matrix: [https://matrix.to/#/#Mobilizon:matrix.org](https://matrix.to/#/#Mobilizon:matrix.org)
diff --git a/docs/dev.md b/docs/dev.md
new file mode 100644
index 000000000..1fa63f020
--- /dev/null
+++ b/docs/dev.md
@@ -0,0 +1,30 @@
+# Documentation for developpers
+
+_This file is a summary of the documentation for developpers. As explained in [CONTRIBUTING.md](../CONTRIBUTING.md), the main documentation is available at _
+
+## Technologies
+
+Mobilizon is an app that uses:
+ * [Elixir](https://elixir-lang.org/) for backend,
+ * [VueJS](https://vuejs.org/) for front-end
+ * [GraphQL](https://graphql.org/) as it's API layer
+
+[GraphQL](https://graphql.org/) is managed using:
+ * [Absinthe](https://absinthe-graphql.org/) on the backend
+ * [VueApollo](https://apollo.vuejs.org/) on the front-end.
+
+[UI](https://en.wikipedia.org/wiki/User_interface) is handled with [Tailwind](https://tailwindcss.com/) and [Oruga](https://oruga.io/).
+
+## Structure of sources
+
+ * `config` backend compile-time and runtime configuration
+ * `docker` 🐳
+ * `js/src` Front-end
+ * `lib/federation` Handling all the federation stuff (sending and receving activities, converting activities, signatures, helpers…)
+ * `lib/graphql/schema` The schema declarations for the GraphQL API
+ * `lib/graphql/resolvers` The logic behind the GraphQL API
+ * `lib/mix/tasks` CLI
+ * `lib/mobilizon` model structures, database queries
+ * `lib/service` various services
+ * `lib/web` controllers, middlewares, auth-related stuff
+ * `test` tests
diff --git a/js/src/i18n/it.json b/js/src/i18n/it.json
index ae564d8e9..35be87703 100644
--- a/js/src/i18n/it.json
+++ b/js/src/i18n/it.json
@@ -1191,7 +1191,7 @@
"Who can view this event and participate": "Chi può vedere questo evento e partecipare",
"Who can view this post": "Chi può visualizzare questo post",
"Who published {number} events": "Che hanno pubblicato {number} eventi",
- "Why create an account?": "Perchè creare un account?",
+ "Why create an account?": "Perché creare un account?",
"Will allow to display and manage your participation status on the event page when using this device. Uncheck if you're using a public device.": "Consentirà di visualizzare e gestire lo stato di partecipazione sulla pagina dell'evento quando si utilizza questo dispositivo. Deseleziona se stai utilizzando un dispositivo pubblico.",
"With the most participants": "Con il maggior numero di partecipanti",
"Within {number} kilometers of {place}": "|Entro un chilometro da {place}|Entro {number} chilometri da {place}",
diff --git a/priv/gettext/de/LC_MESSAGES/activity.po b/priv/gettext/de/LC_MESSAGES/activity.po
index 1df44fd92..7b368698b 100644
--- a/priv/gettext/de/LC_MESSAGES/activity.po
+++ b/priv/gettext/de/LC_MESSAGES/activity.po
@@ -8,15 +8,15 @@
## to merge POT files into PO files.
msgid ""
msgstr ""
-"PO-Revision-Date: 2022-11-12 19:02+0000\n"
-"Last-Translator: John H \n"
+"PO-Revision-Date: 2023-10-14 00:00+0000\n"
+"Last-Translator: Vri \n"
"Language-Team: German \n"
"Language: de\n"
"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.14.1\n"
+"X-Generator: Weblate 5.0.1\n"
#: lib/web/templates/email/activity/_member_activity_item.html.heex:14
#: lib/web/templates/email/activity/_member_activity_item.text.eex:12
@@ -64,7 +64,7 @@ msgstr "%{profile} hat die Diskussion %{discussion} erstellt."
#: lib/web/templates/email/activity/_resource_activity_item.text.eex:2
#, elixir-autogen, elixir-format
msgid "%{profile} created the folder %{resource}."
-msgstr "%{profile} hat den Folder %{resource} erstellt."
+msgstr "%{profile} hat den Ordner %{resource} erstellt."
#: lib/web/templates/email/activity/_group_activity_item.html.heex:3
#: lib/web/templates/email/activity/_group_activity_item.text.eex:1
@@ -88,7 +88,7 @@ msgstr "%{profile} hat die Diskussion %{discussion} gelöscht."
#: lib/web/templates/email/activity/_resource_activity_item.text.eex:40
#, elixir-autogen, elixir-format
msgid "%{profile} deleted the folder %{resource}."
-msgstr "%{profile} hat den Folder %{resource} gelöscht."
+msgstr "%{profile} hat den Ordner %{resource} gelöscht."
#: lib/web/templates/email/activity/_resource_activity_item.html.heex:94
#: lib/web/templates/email/activity/_resource_activity_item.text.eex:45
@@ -495,9 +495,9 @@ msgstr "%{profile} hat das Mitglied %{member} bestätigt."
#: lib/web/templates/email/activity/_event_activity_item.text.eex:31
#, elixir-autogen, elixir-format
msgid "%{profile} joined your event %{event}."
-msgstr ""
+msgstr "%{profile} nimmt an deiner Veranstaltung %{event} teil."
#: lib/web/views/email_view.ex:45
#, elixir-autogen, elixir-format
msgid "An anonymous profile"
-msgstr ""
+msgstr "Ein anonymes Profil"
diff --git a/priv/gettext/it/LC_MESSAGES/default.po b/priv/gettext/it/LC_MESSAGES/default.po
index 3b82870f9..cda0f9c8d 100644
--- a/priv/gettext/it/LC_MESSAGES/default.po
+++ b/priv/gettext/it/LC_MESSAGES/default.po
@@ -3,8 +3,8 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-09-24 14:40+0000\n"
-"PO-Revision-Date: 2023-01-05 13:38+0000\n"
-"Last-Translator: Tommaso Gardumi \n"
+"PO-Revision-Date: 2023-10-16 08:36+0000\n"
+"Last-Translator: coronabond \n"
"Language-Team: Italian \n"
"Language: it\n"
@@ -12,7 +12,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.15\n"
+"X-Generator: Weblate 5.0.1\n"
#: lib/web/templates/email/password_reset.html.heex:66
msgid ""
@@ -147,7 +147,7 @@ msgctxt "terms"
msgid ""
"Any of the information we collect from you may be used in the following ways:"
msgstr ""
-"Qualsiasi informazione che raccogliamo da te può essere utilizzata nel "
+"Qualsiasi informazione che raccogliamo da te può essere utilizzata nei "
"seguenti modi:"
#: lib/web/templates/api/privacy.html.heex:13
@@ -191,8 +191,8 @@ msgid ""
"Retain the IP addresses associated with registered users no more than 12 "
"months."
msgstr ""
-"Conserva gli indirizzi IP associati agli utenti registrati per non più di 12 "
-"mesi."
+"Conservare gli indirizzi IP associati agli utenti registrati per non più di "
+"12 mesi."
#: lib/web/templates/api/privacy.html.heex:107
msgctxt "terms"
@@ -227,7 +227,7 @@ msgstr "Per cosa usiamo le tue informazioni?"
#: lib/web/templates/api/privacy.html.heex:83
msgctxt "terms"
msgid "What is our data retention policy?"
-msgstr "Qual'è la nostra politica di conservazione dei dati?"
+msgstr "Qual è la nostra politica di conservazione dei dati?"
#: lib/web/templates/api/privacy.html.heex:99
msgctxt "terms"
@@ -302,9 +302,9 @@ msgid ""
msgstr ""
"L'indirizzo email fornito potrebbe essere utilizzato per inviarti "
"informazioni, aggiornamenti e notifiche su altre persone\n"
-"…che interagiscono con i tuoi contenuti o che ti inviano messaggi e per "
+" che interagiscono con i tuoi contenuti o che ti inviano messaggi e per "
"rispondere a indagini, e/o altre richieste o\n"
-"…domande."
+" domande."
#: lib/web/templates/api/privacy.html.heex:61
msgctxt "terms"
@@ -314,8 +314,8 @@ msgid ""
" evasion or other violations."
msgstr ""
"Per aiutare la moderazione della comunità, ad esempio confrontando il tuo "
-"indirizzo IP con altri noti per determinare \n"
-"…l'evasione del divieto o altre violazioni."
+"indirizzo IP con altri noti per determinare\n"
+" l'evasione del divieto o altre violazioni."
#: lib/web/templates/api/privacy.html.heex:54
msgctxt "terms"
@@ -326,9 +326,9 @@ msgid ""
"are logged in."
msgstr ""
"Per fornire le funzionalità principali di Mobilizon. A seconda della "
-"politica di questa istanza, potresti essere in grado di \n"
-"…interagire con i contenuti di altre persone e pubblicare i tuoi contenuti "
-"solo se hai effettuato l'accesso."
+"politica di questa istanza, potresti essere in grado di\n"
+" interagire con i contenuti di altre persone e pubblicare i tuoi "
+"contenuti solo se hai effettuato l'accesso."
#: lib/web/templates/api/privacy.html.heex:10
msgctxt "terms"
@@ -653,8 +653,8 @@ msgid ""
"For full details about the Mobilizon software see here."
msgstr ""
-"Per i dettagli completi sul software Mobilizon vedi qui ."
+"Per i dettagli completi sul software Mobilizon vedi qui."
#: lib/web/templates/api/terms.html.heex:47
msgctxt "terms"
@@ -746,7 +746,7 @@ msgid ""
msgstr ""
"Questo servizio viene eseguito su un'istanza Mobilizon. Questo codice "
"sorgente è concesso in licenza licenza AGPLv3 , il che "
+"affero-general-public-license-v3-(agpl-3.0)\">licenza AGPLv3, il che "
"significa che sei autorizzato e persino incoraggiato a prendere il codice "
"sorgente, modificarlo e usarlo."
@@ -793,7 +793,7 @@ msgid ""
"Terms and, in general, %{instance_name}."
msgstr ""
"Adoriamo i feedback. Fateci sapere cosa ne pensate del Servizio, dei "
-"presenti Termini e, in generale,%{instance_name}."
+"presenti Termini e, in generale, di %{instance_name}."
#: lib/web/templates/api/terms.html.heex:234
msgctxt "terms"
@@ -833,8 +833,8 @@ msgid ""
msgstr ""
"Se scopri o sospetti violazioni della sicurezza del Servizio, faccelo sapere "
"il prima possibile. Per falle di sicurezza nel software Mobilizon stesso, "
-"contatta direttamente "
-"i suoi contributori ."
+"contatta direttamente i suoi contributori."
#: lib/web/templates/api/terms.html.heex:240
msgctxt "terms"
@@ -854,10 +854,10 @@ msgid ""
"\">App.net privacy policies, also licensed under CC BY-SA."
msgstr ""
-"Adattato originariamente dalle politiche sulla privacy di Diaspora * e App .net , anch'esse concesse in licenza "
-" CC BY-SA ."
+"Adattato originariamente dalle politiche sulla privacy di Diaspora* e App.net, anch'esse concesse in licenza CC BY-SA."
#: lib/web/templates/api/privacy.html.heex:173
msgctxt "terms"
@@ -867,10 +867,10 @@ msgid ""
"\">Discourse privacy policies, also licensed under CC BY-SA."
msgstr ""
-"Originariamente adattato dalle politiche sulla privacy di Mastodon e Discourse , anch'esse concesse in licenza CC BY-SA ."
+"Originariamente adattato dalle politiche sulla privacy di Mastodon e Discourse, anch'esse concesse in licenza CC BY-SA."
#: lib/web/templates/api/terms.html.heex:3
msgctxt "terms"
@@ -903,8 +903,8 @@ msgid ""
"licenses/by-sa/4.0/\">CC BY-SA. It was last updated June 22, 2020."
msgstr ""
"Questo documento è concesso in licenza CC BY-SA . È stato aggiornato l'ultima volta il "
-"22 giugno 2020."
+"licenses/by-sa/4.0/\">CC BY-SA. È stato aggiornato l'ultima volta il 22 "
+"giugno 2020."
#: lib/web/templates/api/terms.html.heex:21
msgctxt "terms"
@@ -939,7 +939,7 @@ msgid ""
"Hi there! You just registered to join this event: « %{title} ». Please "
"confirm the e-mail address you provided:"
msgstr ""
-"Ciao! Ti sei appena registrato per partecipare a questo evento: «% {title}». "
+"Ciao! Ti sei appena registrato per partecipare a questo evento: «%{title}». "
"Conferma l'indirizzo e-mail che hai fornito:"
#: lib/web/templates/email/email.html.heex:142
@@ -952,8 +952,8 @@ msgid ""
"You created an account on %{host} with this email address. You are "
"one click away from activating it."
msgstr ""
-"Hai creato un account su % {host} con questo indirizzo email. Sei a "
-"un clic di distanza dall'attivarlo."
+"Hai creato un account su %{host} con questo indirizzo email. Sei a un "
+"clic di distanza dall'attivarlo."
#: lib/web/templates/email/report.html.heex:18
msgid "New report on %{instance}"
@@ -963,12 +963,12 @@ msgstr "Nuova segnalazione sull'istanza %{instance}"
msgid ""
"The email address for your account on %{host} is being changed to:"
msgstr ""
-"L'indirizzo email del tuo account su % {host} verrà modificato in:"
+"L'indirizzo email del tuo account su %{host} verrà modificato in:"
#: lib/web/templates/email/password_reset.html.heex:47
msgid "You requested a new password for your account on %{instance}."
msgstr ""
-"Hai richiesto una nuova password per il tuo account su % {instance} ."
+"Hai richiesto una nuova password per il tuo account su %{instance}."
#: lib/web/templates/email/email.html.heex:112
#: lib/web/templates/email/email.text.eex:5
@@ -1139,7 +1139,7 @@ msgid ""
"Someone on %{instance} reported the following content for you to "
"analyze:"
msgstr ""
-"Qualcuno su % {instance} ha segnalato i seguenti contenuti da "
+"Qualcuno su %{instance} ha segnalato i seguenti contenuti da "
"analizzare:"
#: lib/web/templates/email/event_participation_rejected.html.heex:18
@@ -1208,7 +1208,7 @@ msgstr "Visita la pagina dell'evento aggiornata"
#: lib/web/templates/email/event_updated.text.eex:12
msgid "Visit the updated event page: %{link}"
-msgstr "Visita la pagina dell'evento aggiornata:% {link}"
+msgstr "Visita la pagina dell'evento aggiornata: %{link}"
#: lib/web/templates/email/on_day_notification.html.heex:18
#: lib/web/templates/email/on_day_notification.text.eex:1
@@ -2270,7 +2270,7 @@ msgstr "Riunioni"
#: lib/mobilizon/events/categories.ex:104
msgid "Movements and politics"
-msgstr "Movimenti e politca"
+msgstr "Movimenti e politica"
#: lib/mobilizon/events/categories.ex:64
msgid "Music"
@@ -2344,7 +2344,6 @@ msgstr "Alla prossima!"
#: lib/web/templates/email/group_suspension.html.heex:67
#: lib/web/templates/email/group_suspension.text.eex:5
-#, fuzzy
msgid ""
"As this group was located on this instance, all of its data has been "
"irretrievably deleted."
@@ -2353,9 +2352,8 @@ msgstr ""
"stati irrimediabilmente cancellati."
#: lib/web/templates/email/report.text.eex:11
-#, fuzzy
msgid "Events"
-msgstr "Evento"
+msgstr "Eventi"
#: lib/web/templates/email/report.html.heex:115
#, fuzzy
diff --git a/priv/gettext/it/LC_MESSAGES/errors.po b/priv/gettext/it/LC_MESSAGES/errors.po
index c7e6f7de8..57daed701 100644
--- a/priv/gettext/it/LC_MESSAGES/errors.po
+++ b/priv/gettext/it/LC_MESSAGES/errors.po
@@ -8,15 +8,15 @@
## to merge POT files into PO files.
msgid ""
msgstr ""
-"PO-Revision-Date: 2023-03-09 11:38+0000\n"
-"Last-Translator: lost_geographer \n"
+"PO-Revision-Date: 2023-10-15 09:22+0000\n"
+"Last-Translator: coronabond \n"
"Language-Team: Italian \n"
"Language: it\n"
"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.15.2\n"
+"X-Generator: Weblate 5.0.1\n"
#: lib/mobilizon/discussions/discussion.ex:69
#, elixir-autogen
@@ -246,7 +246,7 @@ msgstr "Sei già un membro di questo gruppo"
#: lib/graphql/resolvers/group.ex:350
#, elixir-autogen, elixir-format
msgid "You can't leave this group because you are the only administrator"
-msgstr "Non puoi lasciare questo gruppo perchè sei l'unico amministratore"
+msgstr "Non puoi lasciare questo gruppo perché sei l'unico amministratore"
#: lib/graphql/resolvers/group.ex:308
#, elixir-autogen, elixir-format