From 6c90cad7fbd809e1e436acb5f17660f8c220d806 Mon Sep 17 00:00:00 2001
From: AntoLC <25994652+AntoLC@users.noreply.github.com>
Date: Wed, 26 Nov 2025 13:36:16 +0000
Subject: [PATCH 1/2] =?UTF-8?q?=F0=9F=8C=90(i18n)=20update=20translated=20?=
=?UTF-8?q?strings?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Update translated files with new translations
---
.../locale/br_FR/LC_MESSAGES/django.po | 156 +++++++++++-------
.../locale/de_DE/LC_MESSAGES/django.po | 156 +++++++++++-------
.../locale/en_US/LC_MESSAGES/django.po | 156 +++++++++++-------
.../locale/es_ES/LC_MESSAGES/django.po | 156 +++++++++++-------
.../locale/fr_FR/LC_MESSAGES/django.po | 156 +++++++++++-------
.../locale/it_IT/LC_MESSAGES/django.po | 156 +++++++++++-------
.../locale/nl_NL/LC_MESSAGES/django.po | 156 +++++++++++-------
.../locale/pt_PT/LC_MESSAGES/django.po | 156 +++++++++++-------
.../locale/ru_RU/LC_MESSAGES/django.po | 156 +++++++++++-------
.../locale/sl_SI/LC_MESSAGES/django.po | 156 +++++++++++-------
.../locale/sv_SE/LC_MESSAGES/django.po | 156 +++++++++++-------
.../locale/tr_TR/LC_MESSAGES/django.po | 156 +++++++++++-------
.../locale/uk_UA/LC_MESSAGES/django.po | 156 +++++++++++-------
.../locale/zh_CN/LC_MESSAGES/django.po | 156 +++++++++++-------
.../apps/impress/src/i18n/translations.json | 81 ++++++---
15 files changed, 1415 insertions(+), 850 deletions(-)
diff --git a/src/backend/locale/br_FR/LC_MESSAGES/django.po b/src/backend/locale/br_FR/LC_MESSAGES/django.po
index 24b7ae46fc..b53a1dd59f 100644
--- a/src/backend/locale/br_FR/LC_MESSAGES/django.po
+++ b/src/backend/locale/br_FR/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: lasuite-docs\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2025-11-17 08:04+0000\n"
-"PO-Revision-Date: 2025-11-19 10:13\n"
+"POT-Creation-Date: 2025-11-20 14:08+0000\n"
+"PO-Revision-Date: 2025-11-26 13:33\n"
"Last-Translator: \n"
"Language-Team: Breton\n"
"Language: br_FR\n"
@@ -50,67 +50,72 @@ msgstr "Kuzhet"
msgid "Favorite"
msgstr "Sinedoù"
-#: build/lib/core/api/serializers.py:496 core/api/serializers.py:496
+#: build/lib/core/api/serializers.py:497 core/api/serializers.py:497
msgid "A new document was created on your behalf!"
msgstr "Ur restr nevez a zo bet krouet ganeoc'h!"
-#: build/lib/core/api/serializers.py:500 core/api/serializers.py:500
+#: build/lib/core/api/serializers.py:501 core/api/serializers.py:501
msgid "You have been granted ownership of a new document:"
msgstr "C'hwi zo bet disklaeriet perc'henn ur restr nevez:"
-#: build/lib/core/api/serializers.py:536 core/api/serializers.py:536
+#: build/lib/core/api/serializers.py:537 core/api/serializers.py:537
msgid "This field is required."
msgstr "Ar vaezienn-mañ a zo rekis."
-#: build/lib/core/api/serializers.py:547 core/api/serializers.py:547
+#: build/lib/core/api/serializers.py:548 core/api/serializers.py:548
#, python-format
msgid "Link reach '%(link_reach)s' is not allowed based on parent document configuration."
msgstr ""
-#: build/lib/core/api/serializers.py:693 core/api/serializers.py:693
+#: build/lib/core/api/serializers.py:694 core/api/serializers.py:694
msgid "Body"
msgstr "Korf"
-#: build/lib/core/api/serializers.py:696 core/api/serializers.py:696
+#: build/lib/core/api/serializers.py:697 core/api/serializers.py:697
msgid "Body type"
msgstr "Doare korf"
-#: build/lib/core/api/serializers.py:702 core/api/serializers.py:702
+#: build/lib/core/api/serializers.py:703 core/api/serializers.py:703
msgid "Format"
msgstr "Stumm"
-#: build/lib/core/api/viewsets.py:1003 core/api/viewsets.py:1003
+#: build/lib/core/api/viewsets.py:1004 core/api/viewsets.py:1004
#, python-brace-format
msgid "copy of {title}"
msgstr "eilenn {title}"
-#: build/lib/core/choices.py:35 build/lib/core/choices.py:42 core/choices.py:35
-#: core/choices.py:42
+#: build/lib/core/choices.py:35 build/lib/core/choices.py:43 core/choices.py:35
+#: core/choices.py:43
msgid "Reader"
msgstr "Lenner"
-#: build/lib/core/choices.py:36 build/lib/core/choices.py:43 core/choices.py:36
-#: core/choices.py:43
+#: build/lib/core/choices.py:36 build/lib/core/choices.py:44 core/choices.py:36
+#: core/choices.py:44
+msgid "Commenter"
+msgstr ""
+
+#: build/lib/core/choices.py:37 build/lib/core/choices.py:45 core/choices.py:37
+#: core/choices.py:45
msgid "Editor"
msgstr "Embanner"
-#: build/lib/core/choices.py:44 core/choices.py:44
+#: build/lib/core/choices.py:46 core/choices.py:46
msgid "Administrator"
msgstr "Merour"
-#: build/lib/core/choices.py:45 core/choices.py:45
+#: build/lib/core/choices.py:47 core/choices.py:47
msgid "Owner"
msgstr "Perc'henn"
-#: build/lib/core/choices.py:56 core/choices.py:56
+#: build/lib/core/choices.py:58 core/choices.py:58
msgid "Restricted"
msgstr "Strishaet"
-#: build/lib/core/choices.py:60 core/choices.py:60
+#: build/lib/core/choices.py:62 core/choices.py:62
msgid "Authenticated"
msgstr "Anavezet"
-#: build/lib/core/choices.py:62 core/choices.py:62
+#: build/lib/core/choices.py:64 core/choices.py:64
msgid "Public"
msgstr "Publik"
@@ -234,8 +239,8 @@ msgstr "implijer"
msgid "users"
msgstr "implijerien"
-#: build/lib/core/models.py:361 build/lib/core/models.py:1276
-#: core/models.py:361 core/models.py:1276
+#: build/lib/core/models.py:361 build/lib/core/models.py:1430
+#: core/models.py:361 core/models.py:1430
msgid "title"
msgstr "titl"
@@ -251,155 +256,188 @@ msgstr "Restr"
msgid "Documents"
msgstr "Restroù"
-#: build/lib/core/models.py:424 build/lib/core/models.py:822 core/models.py:424
-#: core/models.py:822
+#: build/lib/core/models.py:424 build/lib/core/models.py:824 core/models.py:424
+#: core/models.py:824
msgid "Untitled Document"
msgstr "Restr hep titl"
-#: build/lib/core/models.py:857 core/models.py:857
+#: build/lib/core/models.py:859 core/models.py:859
#, python-brace-format
msgid "{name} shared a document with you!"
msgstr "{name} en deus rannet ur restr ganeoc'h!"
-#: build/lib/core/models.py:861 core/models.py:861
+#: build/lib/core/models.py:863 core/models.py:863
#, python-brace-format
msgid "{name} invited you with the role \"{role}\" on the following document:"
msgstr "{name} en deus pedet ac'hanoc'h gant ar rol \"{role}\" war ar restr da-heul:"
-#: build/lib/core/models.py:867 core/models.py:867
+#: build/lib/core/models.py:869 core/models.py:869
#, python-brace-format
msgid "{name} shared a document with you: {title}"
msgstr "{name} en deus rannet ur restr ganeoc'h: {title}"
-#: build/lib/core/models.py:967 core/models.py:967
+#: build/lib/core/models.py:969 core/models.py:969
msgid "Document/user link trace"
msgstr "Roud liamm ar restr/an implijer"
-#: build/lib/core/models.py:968 core/models.py:968
+#: build/lib/core/models.py:970 core/models.py:970
msgid "Document/user link traces"
msgstr "Roudoù liamm ar restr/an implijer"
-#: build/lib/core/models.py:974 core/models.py:974
+#: build/lib/core/models.py:976 core/models.py:976
msgid "A link trace already exists for this document/user."
msgstr "Ur roud liamm a zo dija evit an restr/an implijer."
-#: build/lib/core/models.py:997 core/models.py:997
+#: build/lib/core/models.py:999 core/models.py:999
msgid "Document favorite"
msgstr "Restr muiañ-karet"
-#: build/lib/core/models.py:998 core/models.py:998
+#: build/lib/core/models.py:1000 core/models.py:1000
msgid "Document favorites"
msgstr "Restroù muiañ-karet"
-#: build/lib/core/models.py:1004 core/models.py:1004
+#: build/lib/core/models.py:1006 core/models.py:1006
msgid "This document is already targeted by a favorite relation instance for the same user."
msgstr "Ar restr-mañ a zo ur restr muiañ karet gant an implijer-mañ."
-#: build/lib/core/models.py:1026 core/models.py:1026
+#: build/lib/core/models.py:1028 core/models.py:1028
msgid "Document/user relation"
msgstr "Liamm restr/implijer"
-#: build/lib/core/models.py:1027 core/models.py:1027
+#: build/lib/core/models.py:1029 core/models.py:1029
msgid "Document/user relations"
msgstr "Liammoù restr/implijer"
-#: build/lib/core/models.py:1033 core/models.py:1033
+#: build/lib/core/models.py:1035 core/models.py:1035
msgid "This user is already in this document."
msgstr "An implijer-mañ a zo dija er restr-mañ."
-#: build/lib/core/models.py:1039 core/models.py:1039
+#: build/lib/core/models.py:1041 core/models.py:1041
msgid "This team is already in this document."
msgstr "Ar skipailh-mañ a zo dija en restr-mañ."
-#: build/lib/core/models.py:1045 build/lib/core/models.py:1362
-#: core/models.py:1045 core/models.py:1362
+#: build/lib/core/models.py:1047 build/lib/core/models.py:1516
+#: core/models.py:1047 core/models.py:1516
msgid "Either user or team must be set, not both."
msgstr "An implijer pe ar skipailh a rank bezañ termenet, ket an daou avat."
-#: build/lib/core/models.py:1191 core/models.py:1191
+#: build/lib/core/models.py:1198 core/models.py:1198
msgid "Document ask for access"
msgstr "Goulenn tizhout ar restr"
-#: build/lib/core/models.py:1192 core/models.py:1192
+#: build/lib/core/models.py:1199 core/models.py:1199
msgid "Document ask for accesses"
msgstr "Goulennoù tizhout ar restr"
-#: build/lib/core/models.py:1198 core/models.py:1198
+#: build/lib/core/models.py:1205 core/models.py:1205
msgid "This user has already asked for access to this document."
msgstr "An implijer en deus goulennet tizhout ar restr-mañ."
-#: build/lib/core/models.py:1255 core/models.py:1255
+#: build/lib/core/models.py:1262 core/models.py:1262
#, python-brace-format
msgid "{name} would like access to a document!"
msgstr "{name} en defe c'hoant da dizhout ar restr-mañ!"
-#: build/lib/core/models.py:1259 core/models.py:1259
+#: build/lib/core/models.py:1266 core/models.py:1266
#, python-brace-format
msgid "{name} would like access to the following document:"
msgstr "{name} en defe c'hoant da dizhout ar restr da-heul:"
-#: build/lib/core/models.py:1265 core/models.py:1265
+#: build/lib/core/models.py:1272 core/models.py:1272
#, python-brace-format
msgid "{name} is asking for access to the document: {title}"
msgstr "{name} en defe c'hoant da dizhout ar restr: {title}"
-#: build/lib/core/models.py:1277 core/models.py:1277
+#: build/lib/core/models.py:1314 core/models.py:1314
+msgid "Thread"
+msgstr ""
+
+#: build/lib/core/models.py:1315 core/models.py:1315
+msgid "Threads"
+msgstr ""
+
+#: build/lib/core/models.py:1318 build/lib/core/models.py:1370
+#: core/models.py:1318 core/models.py:1370
+msgid "Anonymous"
+msgstr ""
+
+#: build/lib/core/models.py:1365 core/models.py:1365
+msgid "Comment"
+msgstr ""
+
+#: build/lib/core/models.py:1366 core/models.py:1366
+msgid "Comments"
+msgstr ""
+
+#: build/lib/core/models.py:1415 core/models.py:1415
+msgid "This emoji has already been reacted to this comment."
+msgstr ""
+
+#: build/lib/core/models.py:1419 core/models.py:1419
+msgid "Reaction"
+msgstr ""
+
+#: build/lib/core/models.py:1420 core/models.py:1420
+msgid "Reactions"
+msgstr ""
+
+#: build/lib/core/models.py:1431 core/models.py:1431
msgid "description"
msgstr "deskrivadur"
-#: build/lib/core/models.py:1278 core/models.py:1278
+#: build/lib/core/models.py:1432 core/models.py:1432
msgid "code"
msgstr "kod"
-#: build/lib/core/models.py:1279 core/models.py:1279
+#: build/lib/core/models.py:1433 core/models.py:1433
msgid "css"
msgstr "css"
-#: build/lib/core/models.py:1281 core/models.py:1281
+#: build/lib/core/models.py:1435 core/models.py:1435
msgid "public"
msgstr "publik"
-#: build/lib/core/models.py:1283 core/models.py:1283
+#: build/lib/core/models.py:1437 core/models.py:1437
msgid "Whether this template is public for anyone to use."
msgstr "M'eo foran ar patrom-mañ hag implijus gant n'eus forzh piv."
-#: build/lib/core/models.py:1289 core/models.py:1289
+#: build/lib/core/models.py:1443 core/models.py:1443
msgid "Template"
msgstr "Patrom"
-#: build/lib/core/models.py:1290 core/models.py:1290
+#: build/lib/core/models.py:1444 core/models.py:1444
msgid "Templates"
msgstr "Patromoù"
-#: build/lib/core/models.py:1343 core/models.py:1343
+#: build/lib/core/models.py:1497 core/models.py:1497
msgid "Template/user relation"
msgstr "Liamm patrom/implijer"
-#: build/lib/core/models.py:1344 core/models.py:1344
+#: build/lib/core/models.py:1498 core/models.py:1498
msgid "Template/user relations"
msgstr "Liammoù patrom/implijer"
-#: build/lib/core/models.py:1350 core/models.py:1350
+#: build/lib/core/models.py:1504 core/models.py:1504
msgid "This user is already in this template."
msgstr "An implijer-mañ a zo dija er patrom-mañ."
-#: build/lib/core/models.py:1356 core/models.py:1356
+#: build/lib/core/models.py:1510 core/models.py:1510
msgid "This team is already in this template."
msgstr "Ar skipailh-mañ a zo dija er patrom-mañ."
-#: build/lib/core/models.py:1433 core/models.py:1433
+#: build/lib/core/models.py:1587 core/models.py:1587
msgid "email address"
msgstr "postel"
-#: build/lib/core/models.py:1452 core/models.py:1452
+#: build/lib/core/models.py:1606 core/models.py:1606
msgid "Document invitation"
msgstr "Pedadenn d'ur restr"
-#: build/lib/core/models.py:1453 core/models.py:1453
+#: build/lib/core/models.py:1607 core/models.py:1607
msgid "Document invitations"
msgstr "Pedadennoù d'ur restr"
-#: build/lib/core/models.py:1473 core/models.py:1473
+#: build/lib/core/models.py:1627 core/models.py:1627
msgid "This email is already associated to a registered user."
msgstr "Ar postel-mañ a zo liammet ouzh un implijer enskrivet."
diff --git a/src/backend/locale/de_DE/LC_MESSAGES/django.po b/src/backend/locale/de_DE/LC_MESSAGES/django.po
index bc42f92910..124fd5668a 100644
--- a/src/backend/locale/de_DE/LC_MESSAGES/django.po
+++ b/src/backend/locale/de_DE/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: lasuite-docs\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2025-11-17 08:04+0000\n"
-"PO-Revision-Date: 2025-11-19 10:13\n"
+"POT-Creation-Date: 2025-11-20 14:08+0000\n"
+"PO-Revision-Date: 2025-11-26 13:33\n"
"Last-Translator: \n"
"Language-Team: German\n"
"Language: de_DE\n"
@@ -50,67 +50,72 @@ msgstr ""
msgid "Favorite"
msgstr "Favorit"
-#: build/lib/core/api/serializers.py:496 core/api/serializers.py:496
+#: build/lib/core/api/serializers.py:497 core/api/serializers.py:497
msgid "A new document was created on your behalf!"
msgstr "Ein neues Dokument wurde in Ihrem Namen erstellt!"
-#: build/lib/core/api/serializers.py:500 core/api/serializers.py:500
+#: build/lib/core/api/serializers.py:501 core/api/serializers.py:501
msgid "You have been granted ownership of a new document:"
msgstr "Sie sind Besitzer eines neuen Dokuments:"
-#: build/lib/core/api/serializers.py:536 core/api/serializers.py:536
+#: build/lib/core/api/serializers.py:537 core/api/serializers.py:537
msgid "This field is required."
msgstr ""
-#: build/lib/core/api/serializers.py:547 core/api/serializers.py:547
+#: build/lib/core/api/serializers.py:548 core/api/serializers.py:548
#, python-format
msgid "Link reach '%(link_reach)s' is not allowed based on parent document configuration."
msgstr ""
-#: build/lib/core/api/serializers.py:693 core/api/serializers.py:693
+#: build/lib/core/api/serializers.py:694 core/api/serializers.py:694
msgid "Body"
msgstr "Inhalt"
-#: build/lib/core/api/serializers.py:696 core/api/serializers.py:696
+#: build/lib/core/api/serializers.py:697 core/api/serializers.py:697
msgid "Body type"
msgstr "Typ"
-#: build/lib/core/api/serializers.py:702 core/api/serializers.py:702
+#: build/lib/core/api/serializers.py:703 core/api/serializers.py:703
msgid "Format"
msgstr "Format"
-#: build/lib/core/api/viewsets.py:1003 core/api/viewsets.py:1003
+#: build/lib/core/api/viewsets.py:1004 core/api/viewsets.py:1004
#, python-brace-format
msgid "copy of {title}"
msgstr "Kopie von {title}"
-#: build/lib/core/choices.py:35 build/lib/core/choices.py:42 core/choices.py:35
-#: core/choices.py:42
+#: build/lib/core/choices.py:35 build/lib/core/choices.py:43 core/choices.py:35
+#: core/choices.py:43
msgid "Reader"
msgstr "Lesen"
-#: build/lib/core/choices.py:36 build/lib/core/choices.py:43 core/choices.py:36
-#: core/choices.py:43
+#: build/lib/core/choices.py:36 build/lib/core/choices.py:44 core/choices.py:36
+#: core/choices.py:44
+msgid "Commenter"
+msgstr ""
+
+#: build/lib/core/choices.py:37 build/lib/core/choices.py:45 core/choices.py:37
+#: core/choices.py:45
msgid "Editor"
msgstr "Bearbeiten"
-#: build/lib/core/choices.py:44 core/choices.py:44
+#: build/lib/core/choices.py:46 core/choices.py:46
msgid "Administrator"
msgstr "Administrator"
-#: build/lib/core/choices.py:45 core/choices.py:45
+#: build/lib/core/choices.py:47 core/choices.py:47
msgid "Owner"
msgstr "Besitzer"
-#: build/lib/core/choices.py:56 core/choices.py:56
+#: build/lib/core/choices.py:58 core/choices.py:58
msgid "Restricted"
msgstr "Beschränkt"
-#: build/lib/core/choices.py:60 core/choices.py:60
+#: build/lib/core/choices.py:62 core/choices.py:62
msgid "Authenticated"
msgstr "Authentifiziert"
-#: build/lib/core/choices.py:62 core/choices.py:62
+#: build/lib/core/choices.py:64 core/choices.py:64
msgid "Public"
msgstr "Öffentlich"
@@ -234,8 +239,8 @@ msgstr "Benutzer"
msgid "users"
msgstr "Benutzer"
-#: build/lib/core/models.py:361 build/lib/core/models.py:1276
-#: core/models.py:361 core/models.py:1276
+#: build/lib/core/models.py:361 build/lib/core/models.py:1430
+#: core/models.py:361 core/models.py:1430
msgid "title"
msgstr "Titel"
@@ -251,155 +256,188 @@ msgstr "Dokument"
msgid "Documents"
msgstr "Dokumente"
-#: build/lib/core/models.py:424 build/lib/core/models.py:822 core/models.py:424
-#: core/models.py:822
+#: build/lib/core/models.py:424 build/lib/core/models.py:824 core/models.py:424
+#: core/models.py:824
msgid "Untitled Document"
msgstr "Unbenanntes Dokument"
-#: build/lib/core/models.py:857 core/models.py:857
+#: build/lib/core/models.py:859 core/models.py:859
#, python-brace-format
msgid "{name} shared a document with you!"
msgstr "{name} hat ein Dokument mit Ihnen geteilt!"
-#: build/lib/core/models.py:861 core/models.py:861
+#: build/lib/core/models.py:863 core/models.py:863
#, python-brace-format
msgid "{name} invited you with the role \"{role}\" on the following document:"
msgstr "{name} hat Sie mit der Rolle \"{role}\" zu folgendem Dokument eingeladen:"
-#: build/lib/core/models.py:867 core/models.py:867
+#: build/lib/core/models.py:869 core/models.py:869
#, python-brace-format
msgid "{name} shared a document with you: {title}"
msgstr "{name} hat ein Dokument mit Ihnen geteilt: {title}"
-#: build/lib/core/models.py:967 core/models.py:967
+#: build/lib/core/models.py:969 core/models.py:969
msgid "Document/user link trace"
msgstr "Dokument/Benutzer Linkverfolgung"
-#: build/lib/core/models.py:968 core/models.py:968
+#: build/lib/core/models.py:970 core/models.py:970
msgid "Document/user link traces"
msgstr "Dokument/Benutzer Linkverfolgung"
-#: build/lib/core/models.py:974 core/models.py:974
+#: build/lib/core/models.py:976 core/models.py:976
msgid "A link trace already exists for this document/user."
msgstr "Für dieses Dokument/ diesen Benutzer ist bereits eine Linkverfolgung vorhanden."
-#: build/lib/core/models.py:997 core/models.py:997
+#: build/lib/core/models.py:999 core/models.py:999
msgid "Document favorite"
msgstr "Dokumentenfavorit"
-#: build/lib/core/models.py:998 core/models.py:998
+#: build/lib/core/models.py:1000 core/models.py:1000
msgid "Document favorites"
msgstr "Dokumentfavoriten"
-#: build/lib/core/models.py:1004 core/models.py:1004
+#: build/lib/core/models.py:1006 core/models.py:1006
msgid "This document is already targeted by a favorite relation instance for the same user."
msgstr "Dieses Dokument ist bereits durch den gleichen Benutzer favorisiert worden."
-#: build/lib/core/models.py:1026 core/models.py:1026
+#: build/lib/core/models.py:1028 core/models.py:1028
msgid "Document/user relation"
msgstr "Dokument/Benutzerbeziehung"
-#: build/lib/core/models.py:1027 core/models.py:1027
+#: build/lib/core/models.py:1029 core/models.py:1029
msgid "Document/user relations"
msgstr "Dokument/Benutzerbeziehungen"
-#: build/lib/core/models.py:1033 core/models.py:1033
+#: build/lib/core/models.py:1035 core/models.py:1035
msgid "This user is already in this document."
msgstr "Dieser Benutzer befindet sich bereits in diesem Dokument."
-#: build/lib/core/models.py:1039 core/models.py:1039
+#: build/lib/core/models.py:1041 core/models.py:1041
msgid "This team is already in this document."
msgstr "Dieses Team befindet sich bereits in diesem Dokument."
-#: build/lib/core/models.py:1045 build/lib/core/models.py:1362
-#: core/models.py:1045 core/models.py:1362
+#: build/lib/core/models.py:1047 build/lib/core/models.py:1516
+#: core/models.py:1047 core/models.py:1516
msgid "Either user or team must be set, not both."
msgstr "Benutzer oder Team müssen gesetzt werden, nicht beides."
-#: build/lib/core/models.py:1191 core/models.py:1191
+#: build/lib/core/models.py:1198 core/models.py:1198
msgid "Document ask for access"
msgstr ""
-#: build/lib/core/models.py:1192 core/models.py:1192
+#: build/lib/core/models.py:1199 core/models.py:1199
msgid "Document ask for accesses"
msgstr ""
-#: build/lib/core/models.py:1198 core/models.py:1198
+#: build/lib/core/models.py:1205 core/models.py:1205
msgid "This user has already asked for access to this document."
msgstr ""
-#: build/lib/core/models.py:1255 core/models.py:1255
+#: build/lib/core/models.py:1262 core/models.py:1262
#, python-brace-format
msgid "{name} would like access to a document!"
msgstr ""
-#: build/lib/core/models.py:1259 core/models.py:1259
+#: build/lib/core/models.py:1266 core/models.py:1266
#, python-brace-format
msgid "{name} would like access to the following document:"
msgstr ""
-#: build/lib/core/models.py:1265 core/models.py:1265
+#: build/lib/core/models.py:1272 core/models.py:1272
#, python-brace-format
msgid "{name} is asking for access to the document: {title}"
msgstr ""
-#: build/lib/core/models.py:1277 core/models.py:1277
+#: build/lib/core/models.py:1314 core/models.py:1314
+msgid "Thread"
+msgstr ""
+
+#: build/lib/core/models.py:1315 core/models.py:1315
+msgid "Threads"
+msgstr ""
+
+#: build/lib/core/models.py:1318 build/lib/core/models.py:1370
+#: core/models.py:1318 core/models.py:1370
+msgid "Anonymous"
+msgstr ""
+
+#: build/lib/core/models.py:1365 core/models.py:1365
+msgid "Comment"
+msgstr ""
+
+#: build/lib/core/models.py:1366 core/models.py:1366
+msgid "Comments"
+msgstr ""
+
+#: build/lib/core/models.py:1415 core/models.py:1415
+msgid "This emoji has already been reacted to this comment."
+msgstr ""
+
+#: build/lib/core/models.py:1419 core/models.py:1419
+msgid "Reaction"
+msgstr ""
+
+#: build/lib/core/models.py:1420 core/models.py:1420
+msgid "Reactions"
+msgstr ""
+
+#: build/lib/core/models.py:1431 core/models.py:1431
msgid "description"
msgstr "Beschreibung"
-#: build/lib/core/models.py:1278 core/models.py:1278
+#: build/lib/core/models.py:1432 core/models.py:1432
msgid "code"
msgstr "Code"
-#: build/lib/core/models.py:1279 core/models.py:1279
+#: build/lib/core/models.py:1433 core/models.py:1433
msgid "css"
msgstr "CSS"
-#: build/lib/core/models.py:1281 core/models.py:1281
+#: build/lib/core/models.py:1435 core/models.py:1435
msgid "public"
msgstr "öffentlich"
-#: build/lib/core/models.py:1283 core/models.py:1283
+#: build/lib/core/models.py:1437 core/models.py:1437
msgid "Whether this template is public for anyone to use."
msgstr "Ob diese Vorlage für jedermann öffentlich ist."
-#: build/lib/core/models.py:1289 core/models.py:1289
+#: build/lib/core/models.py:1443 core/models.py:1443
msgid "Template"
msgstr "Vorlage"
-#: build/lib/core/models.py:1290 core/models.py:1290
+#: build/lib/core/models.py:1444 core/models.py:1444
msgid "Templates"
msgstr "Vorlagen"
-#: build/lib/core/models.py:1343 core/models.py:1343
+#: build/lib/core/models.py:1497 core/models.py:1497
msgid "Template/user relation"
msgstr "Vorlage/Benutzer-Beziehung"
-#: build/lib/core/models.py:1344 core/models.py:1344
+#: build/lib/core/models.py:1498 core/models.py:1498
msgid "Template/user relations"
msgstr "Vorlage/Benutzerbeziehungen"
-#: build/lib/core/models.py:1350 core/models.py:1350
+#: build/lib/core/models.py:1504 core/models.py:1504
msgid "This user is already in this template."
msgstr "Dieser Benutzer ist bereits in dieser Vorlage."
-#: build/lib/core/models.py:1356 core/models.py:1356
+#: build/lib/core/models.py:1510 core/models.py:1510
msgid "This team is already in this template."
msgstr "Dieses Team ist bereits in diesem Template."
-#: build/lib/core/models.py:1433 core/models.py:1433
+#: build/lib/core/models.py:1587 core/models.py:1587
msgid "email address"
msgstr "E-Mail-Adresse"
-#: build/lib/core/models.py:1452 core/models.py:1452
+#: build/lib/core/models.py:1606 core/models.py:1606
msgid "Document invitation"
msgstr "Einladung zum Dokument"
-#: build/lib/core/models.py:1453 core/models.py:1453
+#: build/lib/core/models.py:1607 core/models.py:1607
msgid "Document invitations"
msgstr "Dokumenteinladungen"
-#: build/lib/core/models.py:1473 core/models.py:1473
+#: build/lib/core/models.py:1627 core/models.py:1627
msgid "This email is already associated to a registered user."
msgstr "Diese E-Mail ist bereits einem registrierten Benutzer zugeordnet."
diff --git a/src/backend/locale/en_US/LC_MESSAGES/django.po b/src/backend/locale/en_US/LC_MESSAGES/django.po
index 9daa1d2b5d..58554da0db 100644
--- a/src/backend/locale/en_US/LC_MESSAGES/django.po
+++ b/src/backend/locale/en_US/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: lasuite-docs\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2025-11-17 08:04+0000\n"
-"PO-Revision-Date: 2025-11-19 10:13\n"
+"POT-Creation-Date: 2025-11-20 14:08+0000\n"
+"PO-Revision-Date: 2025-11-26 13:33\n"
"Last-Translator: \n"
"Language-Team: English\n"
"Language: en_US\n"
@@ -50,67 +50,72 @@ msgstr ""
msgid "Favorite"
msgstr ""
-#: build/lib/core/api/serializers.py:496 core/api/serializers.py:496
+#: build/lib/core/api/serializers.py:497 core/api/serializers.py:497
msgid "A new document was created on your behalf!"
msgstr ""
-#: build/lib/core/api/serializers.py:500 core/api/serializers.py:500
+#: build/lib/core/api/serializers.py:501 core/api/serializers.py:501
msgid "You have been granted ownership of a new document:"
msgstr ""
-#: build/lib/core/api/serializers.py:536 core/api/serializers.py:536
+#: build/lib/core/api/serializers.py:537 core/api/serializers.py:537
msgid "This field is required."
msgstr ""
-#: build/lib/core/api/serializers.py:547 core/api/serializers.py:547
+#: build/lib/core/api/serializers.py:548 core/api/serializers.py:548
#, python-format
msgid "Link reach '%(link_reach)s' is not allowed based on parent document configuration."
msgstr ""
-#: build/lib/core/api/serializers.py:693 core/api/serializers.py:693
+#: build/lib/core/api/serializers.py:694 core/api/serializers.py:694
msgid "Body"
msgstr ""
-#: build/lib/core/api/serializers.py:696 core/api/serializers.py:696
+#: build/lib/core/api/serializers.py:697 core/api/serializers.py:697
msgid "Body type"
msgstr ""
-#: build/lib/core/api/serializers.py:702 core/api/serializers.py:702
+#: build/lib/core/api/serializers.py:703 core/api/serializers.py:703
msgid "Format"
msgstr ""
-#: build/lib/core/api/viewsets.py:1003 core/api/viewsets.py:1003
+#: build/lib/core/api/viewsets.py:1004 core/api/viewsets.py:1004
#, python-brace-format
msgid "copy of {title}"
msgstr ""
-#: build/lib/core/choices.py:35 build/lib/core/choices.py:42 core/choices.py:35
-#: core/choices.py:42
+#: build/lib/core/choices.py:35 build/lib/core/choices.py:43 core/choices.py:35
+#: core/choices.py:43
msgid "Reader"
msgstr ""
-#: build/lib/core/choices.py:36 build/lib/core/choices.py:43 core/choices.py:36
-#: core/choices.py:43
+#: build/lib/core/choices.py:36 build/lib/core/choices.py:44 core/choices.py:36
+#: core/choices.py:44
+msgid "Commenter"
+msgstr ""
+
+#: build/lib/core/choices.py:37 build/lib/core/choices.py:45 core/choices.py:37
+#: core/choices.py:45
msgid "Editor"
msgstr ""
-#: build/lib/core/choices.py:44 core/choices.py:44
+#: build/lib/core/choices.py:46 core/choices.py:46
msgid "Administrator"
msgstr ""
-#: build/lib/core/choices.py:45 core/choices.py:45
+#: build/lib/core/choices.py:47 core/choices.py:47
msgid "Owner"
msgstr ""
-#: build/lib/core/choices.py:56 core/choices.py:56
+#: build/lib/core/choices.py:58 core/choices.py:58
msgid "Restricted"
msgstr ""
-#: build/lib/core/choices.py:60 core/choices.py:60
+#: build/lib/core/choices.py:62 core/choices.py:62
msgid "Authenticated"
msgstr ""
-#: build/lib/core/choices.py:62 core/choices.py:62
+#: build/lib/core/choices.py:64 core/choices.py:64
msgid "Public"
msgstr ""
@@ -234,8 +239,8 @@ msgstr ""
msgid "users"
msgstr ""
-#: build/lib/core/models.py:361 build/lib/core/models.py:1276
-#: core/models.py:361 core/models.py:1276
+#: build/lib/core/models.py:361 build/lib/core/models.py:1430
+#: core/models.py:361 core/models.py:1430
msgid "title"
msgstr ""
@@ -251,155 +256,188 @@ msgstr ""
msgid "Documents"
msgstr ""
-#: build/lib/core/models.py:424 build/lib/core/models.py:822 core/models.py:424
-#: core/models.py:822
+#: build/lib/core/models.py:424 build/lib/core/models.py:824 core/models.py:424
+#: core/models.py:824
msgid "Untitled Document"
msgstr ""
-#: build/lib/core/models.py:857 core/models.py:857
+#: build/lib/core/models.py:859 core/models.py:859
#, python-brace-format
msgid "{name} shared a document with you!"
msgstr ""
-#: build/lib/core/models.py:861 core/models.py:861
+#: build/lib/core/models.py:863 core/models.py:863
#, python-brace-format
msgid "{name} invited you with the role \"{role}\" on the following document:"
msgstr ""
-#: build/lib/core/models.py:867 core/models.py:867
+#: build/lib/core/models.py:869 core/models.py:869
#, python-brace-format
msgid "{name} shared a document with you: {title}"
msgstr ""
-#: build/lib/core/models.py:967 core/models.py:967
+#: build/lib/core/models.py:969 core/models.py:969
msgid "Document/user link trace"
msgstr ""
-#: build/lib/core/models.py:968 core/models.py:968
+#: build/lib/core/models.py:970 core/models.py:970
msgid "Document/user link traces"
msgstr ""
-#: build/lib/core/models.py:974 core/models.py:974
+#: build/lib/core/models.py:976 core/models.py:976
msgid "A link trace already exists for this document/user."
msgstr ""
-#: build/lib/core/models.py:997 core/models.py:997
+#: build/lib/core/models.py:999 core/models.py:999
msgid "Document favorite"
msgstr ""
-#: build/lib/core/models.py:998 core/models.py:998
+#: build/lib/core/models.py:1000 core/models.py:1000
msgid "Document favorites"
msgstr ""
-#: build/lib/core/models.py:1004 core/models.py:1004
+#: build/lib/core/models.py:1006 core/models.py:1006
msgid "This document is already targeted by a favorite relation instance for the same user."
msgstr ""
-#: build/lib/core/models.py:1026 core/models.py:1026
+#: build/lib/core/models.py:1028 core/models.py:1028
msgid "Document/user relation"
msgstr ""
-#: build/lib/core/models.py:1027 core/models.py:1027
+#: build/lib/core/models.py:1029 core/models.py:1029
msgid "Document/user relations"
msgstr ""
-#: build/lib/core/models.py:1033 core/models.py:1033
+#: build/lib/core/models.py:1035 core/models.py:1035
msgid "This user is already in this document."
msgstr ""
-#: build/lib/core/models.py:1039 core/models.py:1039
+#: build/lib/core/models.py:1041 core/models.py:1041
msgid "This team is already in this document."
msgstr ""
-#: build/lib/core/models.py:1045 build/lib/core/models.py:1362
-#: core/models.py:1045 core/models.py:1362
+#: build/lib/core/models.py:1047 build/lib/core/models.py:1516
+#: core/models.py:1047 core/models.py:1516
msgid "Either user or team must be set, not both."
msgstr ""
-#: build/lib/core/models.py:1191 core/models.py:1191
+#: build/lib/core/models.py:1198 core/models.py:1198
msgid "Document ask for access"
msgstr ""
-#: build/lib/core/models.py:1192 core/models.py:1192
+#: build/lib/core/models.py:1199 core/models.py:1199
msgid "Document ask for accesses"
msgstr ""
-#: build/lib/core/models.py:1198 core/models.py:1198
+#: build/lib/core/models.py:1205 core/models.py:1205
msgid "This user has already asked for access to this document."
msgstr ""
-#: build/lib/core/models.py:1255 core/models.py:1255
+#: build/lib/core/models.py:1262 core/models.py:1262
#, python-brace-format
msgid "{name} would like access to a document!"
msgstr ""
-#: build/lib/core/models.py:1259 core/models.py:1259
+#: build/lib/core/models.py:1266 core/models.py:1266
#, python-brace-format
msgid "{name} would like access to the following document:"
msgstr ""
-#: build/lib/core/models.py:1265 core/models.py:1265
+#: build/lib/core/models.py:1272 core/models.py:1272
#, python-brace-format
msgid "{name} is asking for access to the document: {title}"
msgstr ""
-#: build/lib/core/models.py:1277 core/models.py:1277
+#: build/lib/core/models.py:1314 core/models.py:1314
+msgid "Thread"
+msgstr ""
+
+#: build/lib/core/models.py:1315 core/models.py:1315
+msgid "Threads"
+msgstr ""
+
+#: build/lib/core/models.py:1318 build/lib/core/models.py:1370
+#: core/models.py:1318 core/models.py:1370
+msgid "Anonymous"
+msgstr ""
+
+#: build/lib/core/models.py:1365 core/models.py:1365
+msgid "Comment"
+msgstr ""
+
+#: build/lib/core/models.py:1366 core/models.py:1366
+msgid "Comments"
+msgstr ""
+
+#: build/lib/core/models.py:1415 core/models.py:1415
+msgid "This emoji has already been reacted to this comment."
+msgstr ""
+
+#: build/lib/core/models.py:1419 core/models.py:1419
+msgid "Reaction"
+msgstr ""
+
+#: build/lib/core/models.py:1420 core/models.py:1420
+msgid "Reactions"
+msgstr ""
+
+#: build/lib/core/models.py:1431 core/models.py:1431
msgid "description"
msgstr ""
-#: build/lib/core/models.py:1278 core/models.py:1278
+#: build/lib/core/models.py:1432 core/models.py:1432
msgid "code"
msgstr ""
-#: build/lib/core/models.py:1279 core/models.py:1279
+#: build/lib/core/models.py:1433 core/models.py:1433
msgid "css"
msgstr ""
-#: build/lib/core/models.py:1281 core/models.py:1281
+#: build/lib/core/models.py:1435 core/models.py:1435
msgid "public"
msgstr ""
-#: build/lib/core/models.py:1283 core/models.py:1283
+#: build/lib/core/models.py:1437 core/models.py:1437
msgid "Whether this template is public for anyone to use."
msgstr ""
-#: build/lib/core/models.py:1289 core/models.py:1289
+#: build/lib/core/models.py:1443 core/models.py:1443
msgid "Template"
msgstr ""
-#: build/lib/core/models.py:1290 core/models.py:1290
+#: build/lib/core/models.py:1444 core/models.py:1444
msgid "Templates"
msgstr ""
-#: build/lib/core/models.py:1343 core/models.py:1343
+#: build/lib/core/models.py:1497 core/models.py:1497
msgid "Template/user relation"
msgstr ""
-#: build/lib/core/models.py:1344 core/models.py:1344
+#: build/lib/core/models.py:1498 core/models.py:1498
msgid "Template/user relations"
msgstr ""
-#: build/lib/core/models.py:1350 core/models.py:1350
+#: build/lib/core/models.py:1504 core/models.py:1504
msgid "This user is already in this template."
msgstr ""
-#: build/lib/core/models.py:1356 core/models.py:1356
+#: build/lib/core/models.py:1510 core/models.py:1510
msgid "This team is already in this template."
msgstr ""
-#: build/lib/core/models.py:1433 core/models.py:1433
+#: build/lib/core/models.py:1587 core/models.py:1587
msgid "email address"
msgstr ""
-#: build/lib/core/models.py:1452 core/models.py:1452
+#: build/lib/core/models.py:1606 core/models.py:1606
msgid "Document invitation"
msgstr ""
-#: build/lib/core/models.py:1453 core/models.py:1453
+#: build/lib/core/models.py:1607 core/models.py:1607
msgid "Document invitations"
msgstr ""
-#: build/lib/core/models.py:1473 core/models.py:1473
+#: build/lib/core/models.py:1627 core/models.py:1627
msgid "This email is already associated to a registered user."
msgstr ""
diff --git a/src/backend/locale/es_ES/LC_MESSAGES/django.po b/src/backend/locale/es_ES/LC_MESSAGES/django.po
index c6336da367..702ad95813 100644
--- a/src/backend/locale/es_ES/LC_MESSAGES/django.po
+++ b/src/backend/locale/es_ES/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: lasuite-docs\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2025-11-17 08:04+0000\n"
-"PO-Revision-Date: 2025-11-19 10:13\n"
+"POT-Creation-Date: 2025-11-20 14:08+0000\n"
+"PO-Revision-Date: 2025-11-26 13:33\n"
"Last-Translator: \n"
"Language-Team: Spanish\n"
"Language: es_ES\n"
@@ -50,67 +50,72 @@ msgstr ""
msgid "Favorite"
msgstr "Favorito"
-#: build/lib/core/api/serializers.py:496 core/api/serializers.py:496
+#: build/lib/core/api/serializers.py:497 core/api/serializers.py:497
msgid "A new document was created on your behalf!"
msgstr "¡Un nuevo documento se ha creado por ti!"
-#: build/lib/core/api/serializers.py:500 core/api/serializers.py:500
+#: build/lib/core/api/serializers.py:501 core/api/serializers.py:501
msgid "You have been granted ownership of a new document:"
msgstr "Se le ha concedido la propiedad de un nuevo documento :"
-#: build/lib/core/api/serializers.py:536 core/api/serializers.py:536
+#: build/lib/core/api/serializers.py:537 core/api/serializers.py:537
msgid "This field is required."
msgstr ""
-#: build/lib/core/api/serializers.py:547 core/api/serializers.py:547
+#: build/lib/core/api/serializers.py:548 core/api/serializers.py:548
#, python-format
msgid "Link reach '%(link_reach)s' is not allowed based on parent document configuration."
msgstr ""
-#: build/lib/core/api/serializers.py:693 core/api/serializers.py:693
+#: build/lib/core/api/serializers.py:694 core/api/serializers.py:694
msgid "Body"
msgstr "Cuerpo"
-#: build/lib/core/api/serializers.py:696 core/api/serializers.py:696
+#: build/lib/core/api/serializers.py:697 core/api/serializers.py:697
msgid "Body type"
msgstr "Tipo de Cuerpo"
-#: build/lib/core/api/serializers.py:702 core/api/serializers.py:702
+#: build/lib/core/api/serializers.py:703 core/api/serializers.py:703
msgid "Format"
msgstr "Formato"
-#: build/lib/core/api/viewsets.py:1003 core/api/viewsets.py:1003
+#: build/lib/core/api/viewsets.py:1004 core/api/viewsets.py:1004
#, python-brace-format
msgid "copy of {title}"
msgstr "copia de {title}"
-#: build/lib/core/choices.py:35 build/lib/core/choices.py:42 core/choices.py:35
-#: core/choices.py:42
+#: build/lib/core/choices.py:35 build/lib/core/choices.py:43 core/choices.py:35
+#: core/choices.py:43
msgid "Reader"
msgstr "Lector"
-#: build/lib/core/choices.py:36 build/lib/core/choices.py:43 core/choices.py:36
-#: core/choices.py:43
+#: build/lib/core/choices.py:36 build/lib/core/choices.py:44 core/choices.py:36
+#: core/choices.py:44
+msgid "Commenter"
+msgstr ""
+
+#: build/lib/core/choices.py:37 build/lib/core/choices.py:45 core/choices.py:37
+#: core/choices.py:45
msgid "Editor"
msgstr "Editor"
-#: build/lib/core/choices.py:44 core/choices.py:44
+#: build/lib/core/choices.py:46 core/choices.py:46
msgid "Administrator"
msgstr "Administrador"
-#: build/lib/core/choices.py:45 core/choices.py:45
+#: build/lib/core/choices.py:47 core/choices.py:47
msgid "Owner"
msgstr "Propietario"
-#: build/lib/core/choices.py:56 core/choices.py:56
+#: build/lib/core/choices.py:58 core/choices.py:58
msgid "Restricted"
msgstr "Restringido"
-#: build/lib/core/choices.py:60 core/choices.py:60
+#: build/lib/core/choices.py:62 core/choices.py:62
msgid "Authenticated"
msgstr "Autentificado"
-#: build/lib/core/choices.py:62 core/choices.py:62
+#: build/lib/core/choices.py:64 core/choices.py:64
msgid "Public"
msgstr "Público"
@@ -234,8 +239,8 @@ msgstr "usuario"
msgid "users"
msgstr "usuarios"
-#: build/lib/core/models.py:361 build/lib/core/models.py:1276
-#: core/models.py:361 core/models.py:1276
+#: build/lib/core/models.py:361 build/lib/core/models.py:1430
+#: core/models.py:361 core/models.py:1430
msgid "title"
msgstr "título"
@@ -251,155 +256,188 @@ msgstr "Documento"
msgid "Documents"
msgstr "Documentos"
-#: build/lib/core/models.py:424 build/lib/core/models.py:822 core/models.py:424
-#: core/models.py:822
+#: build/lib/core/models.py:424 build/lib/core/models.py:824 core/models.py:424
+#: core/models.py:824
msgid "Untitled Document"
msgstr "Documento sin título"
-#: build/lib/core/models.py:857 core/models.py:857
+#: build/lib/core/models.py:859 core/models.py:859
#, python-brace-format
msgid "{name} shared a document with you!"
msgstr "¡{name} ha compartido un documento contigo!"
-#: build/lib/core/models.py:861 core/models.py:861
+#: build/lib/core/models.py:863 core/models.py:863
#, python-brace-format
msgid "{name} invited you with the role \"{role}\" on the following document:"
msgstr "Te ha invitado {name} al siguiente documento con el rol \"{role}\" :"
-#: build/lib/core/models.py:867 core/models.py:867
+#: build/lib/core/models.py:869 core/models.py:869
#, python-brace-format
msgid "{name} shared a document with you: {title}"
msgstr "{name} ha compartido un documento contigo: {title}"
-#: build/lib/core/models.py:967 core/models.py:967
+#: build/lib/core/models.py:969 core/models.py:969
msgid "Document/user link trace"
msgstr "Traza del enlace de documento/usuario"
-#: build/lib/core/models.py:968 core/models.py:968
+#: build/lib/core/models.py:970 core/models.py:970
msgid "Document/user link traces"
msgstr "Trazas del enlace de documento/usuario"
-#: build/lib/core/models.py:974 core/models.py:974
+#: build/lib/core/models.py:976 core/models.py:976
msgid "A link trace already exists for this document/user."
msgstr "Ya existe una traza de enlace para este documento/usuario."
-#: build/lib/core/models.py:997 core/models.py:997
+#: build/lib/core/models.py:999 core/models.py:999
msgid "Document favorite"
msgstr "Documento favorito"
-#: build/lib/core/models.py:998 core/models.py:998
+#: build/lib/core/models.py:1000 core/models.py:1000
msgid "Document favorites"
msgstr "Documentos favoritos"
-#: build/lib/core/models.py:1004 core/models.py:1004
+#: build/lib/core/models.py:1006 core/models.py:1006
msgid "This document is already targeted by a favorite relation instance for the same user."
msgstr "Este documento ya ha sido marcado como favorito por el usuario."
-#: build/lib/core/models.py:1026 core/models.py:1026
+#: build/lib/core/models.py:1028 core/models.py:1028
msgid "Document/user relation"
msgstr "Relación documento/usuario"
-#: build/lib/core/models.py:1027 core/models.py:1027
+#: build/lib/core/models.py:1029 core/models.py:1029
msgid "Document/user relations"
msgstr "Relaciones documento/usuario"
-#: build/lib/core/models.py:1033 core/models.py:1033
+#: build/lib/core/models.py:1035 core/models.py:1035
msgid "This user is already in this document."
msgstr "Este usuario ya forma parte del documento."
-#: build/lib/core/models.py:1039 core/models.py:1039
+#: build/lib/core/models.py:1041 core/models.py:1041
msgid "This team is already in this document."
msgstr "Este equipo ya forma parte del documento."
-#: build/lib/core/models.py:1045 build/lib/core/models.py:1362
-#: core/models.py:1045 core/models.py:1362
+#: build/lib/core/models.py:1047 build/lib/core/models.py:1516
+#: core/models.py:1047 core/models.py:1516
msgid "Either user or team must be set, not both."
msgstr "Debe establecerse un usuario o un equipo, no ambos."
-#: build/lib/core/models.py:1191 core/models.py:1191
+#: build/lib/core/models.py:1198 core/models.py:1198
msgid "Document ask for access"
msgstr "Solicitud de acceso"
-#: build/lib/core/models.py:1192 core/models.py:1192
+#: build/lib/core/models.py:1199 core/models.py:1199
msgid "Document ask for accesses"
msgstr "Solicitud de accesos"
-#: build/lib/core/models.py:1198 core/models.py:1198
+#: build/lib/core/models.py:1205 core/models.py:1205
msgid "This user has already asked for access to this document."
msgstr "Este usuario ya ha solicitado acceso a este documento."
-#: build/lib/core/models.py:1255 core/models.py:1255
+#: build/lib/core/models.py:1262 core/models.py:1262
#, python-brace-format
msgid "{name} would like access to a document!"
msgstr "¡{name} desea acceder a un documento!"
-#: build/lib/core/models.py:1259 core/models.py:1259
+#: build/lib/core/models.py:1266 core/models.py:1266
#, python-brace-format
msgid "{name} would like access to the following document:"
msgstr "{name} desea acceso al siguiente documento:"
-#: build/lib/core/models.py:1265 core/models.py:1265
+#: build/lib/core/models.py:1272 core/models.py:1272
#, python-brace-format
msgid "{name} is asking for access to the document: {title}"
msgstr "{name} está pidiendo acceso al documento: {title}"
-#: build/lib/core/models.py:1277 core/models.py:1277
+#: build/lib/core/models.py:1314 core/models.py:1314
+msgid "Thread"
+msgstr ""
+
+#: build/lib/core/models.py:1315 core/models.py:1315
+msgid "Threads"
+msgstr ""
+
+#: build/lib/core/models.py:1318 build/lib/core/models.py:1370
+#: core/models.py:1318 core/models.py:1370
+msgid "Anonymous"
+msgstr ""
+
+#: build/lib/core/models.py:1365 core/models.py:1365
+msgid "Comment"
+msgstr ""
+
+#: build/lib/core/models.py:1366 core/models.py:1366
+msgid "Comments"
+msgstr ""
+
+#: build/lib/core/models.py:1415 core/models.py:1415
+msgid "This emoji has already been reacted to this comment."
+msgstr ""
+
+#: build/lib/core/models.py:1419 core/models.py:1419
+msgid "Reaction"
+msgstr ""
+
+#: build/lib/core/models.py:1420 core/models.py:1420
+msgid "Reactions"
+msgstr ""
+
+#: build/lib/core/models.py:1431 core/models.py:1431
msgid "description"
msgstr "descripción"
-#: build/lib/core/models.py:1278 core/models.py:1278
+#: build/lib/core/models.py:1432 core/models.py:1432
msgid "code"
msgstr "código"
-#: build/lib/core/models.py:1279 core/models.py:1279
+#: build/lib/core/models.py:1433 core/models.py:1433
msgid "css"
msgstr "css"
-#: build/lib/core/models.py:1281 core/models.py:1281
+#: build/lib/core/models.py:1435 core/models.py:1435
msgid "public"
msgstr "público"
-#: build/lib/core/models.py:1283 core/models.py:1283
+#: build/lib/core/models.py:1437 core/models.py:1437
msgid "Whether this template is public for anyone to use."
msgstr "Si esta plantilla es pública para que cualquiera la utilice."
-#: build/lib/core/models.py:1289 core/models.py:1289
+#: build/lib/core/models.py:1443 core/models.py:1443
msgid "Template"
msgstr "Plantilla"
-#: build/lib/core/models.py:1290 core/models.py:1290
+#: build/lib/core/models.py:1444 core/models.py:1444
msgid "Templates"
msgstr "Plantillas"
-#: build/lib/core/models.py:1343 core/models.py:1343
+#: build/lib/core/models.py:1497 core/models.py:1497
msgid "Template/user relation"
msgstr "Relación plantilla/usuario"
-#: build/lib/core/models.py:1344 core/models.py:1344
+#: build/lib/core/models.py:1498 core/models.py:1498
msgid "Template/user relations"
msgstr "Relaciones plantilla/usuario"
-#: build/lib/core/models.py:1350 core/models.py:1350
+#: build/lib/core/models.py:1504 core/models.py:1504
msgid "This user is already in this template."
msgstr "Este usuario ya forma parte de la plantilla."
-#: build/lib/core/models.py:1356 core/models.py:1356
+#: build/lib/core/models.py:1510 core/models.py:1510
msgid "This team is already in this template."
msgstr "Este equipo ya se encuentra en esta plantilla."
-#: build/lib/core/models.py:1433 core/models.py:1433
+#: build/lib/core/models.py:1587 core/models.py:1587
msgid "email address"
msgstr "dirección de correo electrónico"
-#: build/lib/core/models.py:1452 core/models.py:1452
+#: build/lib/core/models.py:1606 core/models.py:1606
msgid "Document invitation"
msgstr "Invitación al documento"
-#: build/lib/core/models.py:1453 core/models.py:1453
+#: build/lib/core/models.py:1607 core/models.py:1607
msgid "Document invitations"
msgstr "Invitaciones a documentos"
-#: build/lib/core/models.py:1473 core/models.py:1473
+#: build/lib/core/models.py:1627 core/models.py:1627
msgid "This email is already associated to a registered user."
msgstr "Este correo electrónico está asociado a un usuario registrado."
diff --git a/src/backend/locale/fr_FR/LC_MESSAGES/django.po b/src/backend/locale/fr_FR/LC_MESSAGES/django.po
index 4ada2cb8e4..31f249527a 100644
--- a/src/backend/locale/fr_FR/LC_MESSAGES/django.po
+++ b/src/backend/locale/fr_FR/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: lasuite-docs\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2025-11-17 08:04+0000\n"
-"PO-Revision-Date: 2025-11-19 10:13\n"
+"POT-Creation-Date: 2025-11-20 14:08+0000\n"
+"PO-Revision-Date: 2025-11-26 13:33\n"
"Last-Translator: \n"
"Language-Team: French\n"
"Language: fr_FR\n"
@@ -50,67 +50,72 @@ msgstr "Masqué"
msgid "Favorite"
msgstr "Favoris"
-#: build/lib/core/api/serializers.py:496 core/api/serializers.py:496
+#: build/lib/core/api/serializers.py:497 core/api/serializers.py:497
msgid "A new document was created on your behalf!"
msgstr "Un nouveau document a été créé pour vous !"
-#: build/lib/core/api/serializers.py:500 core/api/serializers.py:500
+#: build/lib/core/api/serializers.py:501 core/api/serializers.py:501
msgid "You have been granted ownership of a new document:"
msgstr "Vous avez été déclaré propriétaire d'un nouveau document :"
-#: build/lib/core/api/serializers.py:536 core/api/serializers.py:536
+#: build/lib/core/api/serializers.py:537 core/api/serializers.py:537
msgid "This field is required."
msgstr "Ce champ est obligatoire."
-#: build/lib/core/api/serializers.py:547 core/api/serializers.py:547
+#: build/lib/core/api/serializers.py:548 core/api/serializers.py:548
#, python-format
msgid "Link reach '%(link_reach)s' is not allowed based on parent document configuration."
msgstr "La portée du lien '%(link_reach)s' n'est pas autorisée en fonction de la configuration du document parent."
-#: build/lib/core/api/serializers.py:693 core/api/serializers.py:693
+#: build/lib/core/api/serializers.py:694 core/api/serializers.py:694
msgid "Body"
msgstr "Corps"
-#: build/lib/core/api/serializers.py:696 core/api/serializers.py:696
+#: build/lib/core/api/serializers.py:697 core/api/serializers.py:697
msgid "Body type"
msgstr "Type de corps"
-#: build/lib/core/api/serializers.py:702 core/api/serializers.py:702
+#: build/lib/core/api/serializers.py:703 core/api/serializers.py:703
msgid "Format"
msgstr "Format"
-#: build/lib/core/api/viewsets.py:1003 core/api/viewsets.py:1003
+#: build/lib/core/api/viewsets.py:1004 core/api/viewsets.py:1004
#, python-brace-format
msgid "copy of {title}"
msgstr "copie de {title}"
-#: build/lib/core/choices.py:35 build/lib/core/choices.py:42 core/choices.py:35
-#: core/choices.py:42
+#: build/lib/core/choices.py:35 build/lib/core/choices.py:43 core/choices.py:35
+#: core/choices.py:43
msgid "Reader"
msgstr "Lecteur"
-#: build/lib/core/choices.py:36 build/lib/core/choices.py:43 core/choices.py:36
-#: core/choices.py:43
+#: build/lib/core/choices.py:36 build/lib/core/choices.py:44 core/choices.py:36
+#: core/choices.py:44
+msgid "Commenter"
+msgstr "Commentateur"
+
+#: build/lib/core/choices.py:37 build/lib/core/choices.py:45 core/choices.py:37
+#: core/choices.py:45
msgid "Editor"
msgstr "Éditeur"
-#: build/lib/core/choices.py:44 core/choices.py:44
+#: build/lib/core/choices.py:46 core/choices.py:46
msgid "Administrator"
msgstr "Administrateur"
-#: build/lib/core/choices.py:45 core/choices.py:45
+#: build/lib/core/choices.py:47 core/choices.py:47
msgid "Owner"
msgstr "Propriétaire"
-#: build/lib/core/choices.py:56 core/choices.py:56
+#: build/lib/core/choices.py:58 core/choices.py:58
msgid "Restricted"
msgstr "Restreint"
-#: build/lib/core/choices.py:60 core/choices.py:60
+#: build/lib/core/choices.py:62 core/choices.py:62
msgid "Authenticated"
msgstr "Authentifié"
-#: build/lib/core/choices.py:62 core/choices.py:62
+#: build/lib/core/choices.py:64 core/choices.py:64
msgid "Public"
msgstr "Public"
@@ -234,8 +239,8 @@ msgstr "utilisateur"
msgid "users"
msgstr "utilisateurs"
-#: build/lib/core/models.py:361 build/lib/core/models.py:1276
-#: core/models.py:361 core/models.py:1276
+#: build/lib/core/models.py:361 build/lib/core/models.py:1430
+#: core/models.py:361 core/models.py:1430
msgid "title"
msgstr "titre"
@@ -251,155 +256,188 @@ msgstr "Document"
msgid "Documents"
msgstr "Documents"
-#: build/lib/core/models.py:424 build/lib/core/models.py:822 core/models.py:424
-#: core/models.py:822
+#: build/lib/core/models.py:424 build/lib/core/models.py:824 core/models.py:424
+#: core/models.py:824
msgid "Untitled Document"
msgstr "Document sans titre"
-#: build/lib/core/models.py:857 core/models.py:857
+#: build/lib/core/models.py:859 core/models.py:859
#, python-brace-format
msgid "{name} shared a document with you!"
msgstr "{name} a partagé un document avec vous!"
-#: build/lib/core/models.py:861 core/models.py:861
+#: build/lib/core/models.py:863 core/models.py:863
#, python-brace-format
msgid "{name} invited you with the role \"{role}\" on the following document:"
msgstr "{name} vous a invité avec le rôle \"{role}\" sur le document suivant :"
-#: build/lib/core/models.py:867 core/models.py:867
+#: build/lib/core/models.py:869 core/models.py:869
#, python-brace-format
msgid "{name} shared a document with you: {title}"
msgstr "{name} a partagé un document avec vous : {title}"
-#: build/lib/core/models.py:967 core/models.py:967
+#: build/lib/core/models.py:969 core/models.py:969
msgid "Document/user link trace"
msgstr "Trace du lien document/utilisateur"
-#: build/lib/core/models.py:968 core/models.py:968
+#: build/lib/core/models.py:970 core/models.py:970
msgid "Document/user link traces"
msgstr "Traces du lien document/utilisateur"
-#: build/lib/core/models.py:974 core/models.py:974
+#: build/lib/core/models.py:976 core/models.py:976
msgid "A link trace already exists for this document/user."
msgstr "Une trace de lien existe déjà pour ce document/utilisateur."
-#: build/lib/core/models.py:997 core/models.py:997
+#: build/lib/core/models.py:999 core/models.py:999
msgid "Document favorite"
msgstr "Document favori"
-#: build/lib/core/models.py:998 core/models.py:998
+#: build/lib/core/models.py:1000 core/models.py:1000
msgid "Document favorites"
msgstr "Documents favoris"
-#: build/lib/core/models.py:1004 core/models.py:1004
+#: build/lib/core/models.py:1006 core/models.py:1006
msgid "This document is already targeted by a favorite relation instance for the same user."
msgstr "Ce document est déjà un favori de cet utilisateur."
-#: build/lib/core/models.py:1026 core/models.py:1026
+#: build/lib/core/models.py:1028 core/models.py:1028
msgid "Document/user relation"
msgstr "Relation document/utilisateur"
-#: build/lib/core/models.py:1027 core/models.py:1027
+#: build/lib/core/models.py:1029 core/models.py:1029
msgid "Document/user relations"
msgstr "Relations document/utilisateur"
-#: build/lib/core/models.py:1033 core/models.py:1033
+#: build/lib/core/models.py:1035 core/models.py:1035
msgid "This user is already in this document."
msgstr "Cet utilisateur est déjà dans ce document."
-#: build/lib/core/models.py:1039 core/models.py:1039
+#: build/lib/core/models.py:1041 core/models.py:1041
msgid "This team is already in this document."
msgstr "Cette équipe est déjà dans ce document."
-#: build/lib/core/models.py:1045 build/lib/core/models.py:1362
-#: core/models.py:1045 core/models.py:1362
+#: build/lib/core/models.py:1047 build/lib/core/models.py:1516
+#: core/models.py:1047 core/models.py:1516
msgid "Either user or team must be set, not both."
msgstr "L'utilisateur ou l'équipe doivent être définis, pas les deux."
-#: build/lib/core/models.py:1191 core/models.py:1191
+#: build/lib/core/models.py:1198 core/models.py:1198
msgid "Document ask for access"
msgstr "Demande d'accès au document"
-#: build/lib/core/models.py:1192 core/models.py:1192
+#: build/lib/core/models.py:1199 core/models.py:1199
msgid "Document ask for accesses"
msgstr "Demande d'accès au document"
-#: build/lib/core/models.py:1198 core/models.py:1198
+#: build/lib/core/models.py:1205 core/models.py:1205
msgid "This user has already asked for access to this document."
msgstr "Cet utilisateur a déjà demandé l'accès à ce document."
-#: build/lib/core/models.py:1255 core/models.py:1255
+#: build/lib/core/models.py:1262 core/models.py:1262
#, python-brace-format
msgid "{name} would like access to a document!"
msgstr "{name} souhaiterait accéder au document suivant !"
-#: build/lib/core/models.py:1259 core/models.py:1259
+#: build/lib/core/models.py:1266 core/models.py:1266
#, python-brace-format
msgid "{name} would like access to the following document:"
msgstr "{name} souhaiterait accéder au document suivant :"
-#: build/lib/core/models.py:1265 core/models.py:1265
+#: build/lib/core/models.py:1272 core/models.py:1272
#, python-brace-format
msgid "{name} is asking for access to the document: {title}"
msgstr "{name} demande l'accès au document : {title}"
-#: build/lib/core/models.py:1277 core/models.py:1277
+#: build/lib/core/models.py:1314 core/models.py:1314
+msgid "Thread"
+msgstr "Conversation"
+
+#: build/lib/core/models.py:1315 core/models.py:1315
+msgid "Threads"
+msgstr "Conversations"
+
+#: build/lib/core/models.py:1318 build/lib/core/models.py:1370
+#: core/models.py:1318 core/models.py:1370
+msgid "Anonymous"
+msgstr "Anonyme"
+
+#: build/lib/core/models.py:1365 core/models.py:1365
+msgid "Comment"
+msgstr "Commentaire"
+
+#: build/lib/core/models.py:1366 core/models.py:1366
+msgid "Comments"
+msgstr "Commentaires"
+
+#: build/lib/core/models.py:1415 core/models.py:1415
+msgid "This emoji has already been reacted to this comment."
+msgstr "Cet émoji a déjà été réagi à ce commentaire."
+
+#: build/lib/core/models.py:1419 core/models.py:1419
+msgid "Reaction"
+msgstr "Réaction"
+
+#: build/lib/core/models.py:1420 core/models.py:1420
+msgid "Reactions"
+msgstr "Réactions"
+
+#: build/lib/core/models.py:1431 core/models.py:1431
msgid "description"
msgstr "description"
-#: build/lib/core/models.py:1278 core/models.py:1278
+#: build/lib/core/models.py:1432 core/models.py:1432
msgid "code"
msgstr "code"
-#: build/lib/core/models.py:1279 core/models.py:1279
+#: build/lib/core/models.py:1433 core/models.py:1433
msgid "css"
msgstr "CSS"
-#: build/lib/core/models.py:1281 core/models.py:1281
+#: build/lib/core/models.py:1435 core/models.py:1435
msgid "public"
msgstr "public"
-#: build/lib/core/models.py:1283 core/models.py:1283
+#: build/lib/core/models.py:1437 core/models.py:1437
msgid "Whether this template is public for anyone to use."
msgstr "Si ce modèle est public, utilisable par n'importe qui."
-#: build/lib/core/models.py:1289 core/models.py:1289
+#: build/lib/core/models.py:1443 core/models.py:1443
msgid "Template"
msgstr "Modèle"
-#: build/lib/core/models.py:1290 core/models.py:1290
+#: build/lib/core/models.py:1444 core/models.py:1444
msgid "Templates"
msgstr "Modèles"
-#: build/lib/core/models.py:1343 core/models.py:1343
+#: build/lib/core/models.py:1497 core/models.py:1497
msgid "Template/user relation"
msgstr "Relation modèle/utilisateur"
-#: build/lib/core/models.py:1344 core/models.py:1344
+#: build/lib/core/models.py:1498 core/models.py:1498
msgid "Template/user relations"
msgstr "Relations modèle/utilisateur"
-#: build/lib/core/models.py:1350 core/models.py:1350
+#: build/lib/core/models.py:1504 core/models.py:1504
msgid "This user is already in this template."
msgstr "Cet utilisateur est déjà dans ce modèle."
-#: build/lib/core/models.py:1356 core/models.py:1356
+#: build/lib/core/models.py:1510 core/models.py:1510
msgid "This team is already in this template."
msgstr "Cette équipe est déjà modèle."
-#: build/lib/core/models.py:1433 core/models.py:1433
+#: build/lib/core/models.py:1587 core/models.py:1587
msgid "email address"
msgstr "adresse e-mail"
-#: build/lib/core/models.py:1452 core/models.py:1452
+#: build/lib/core/models.py:1606 core/models.py:1606
msgid "Document invitation"
msgstr "Invitation à un document"
-#: build/lib/core/models.py:1453 core/models.py:1453
+#: build/lib/core/models.py:1607 core/models.py:1607
msgid "Document invitations"
msgstr "Invitations à un document"
-#: build/lib/core/models.py:1473 core/models.py:1473
+#: build/lib/core/models.py:1627 core/models.py:1627
msgid "This email is already associated to a registered user."
msgstr "Cette adresse email est déjà associée à un utilisateur inscrit."
diff --git a/src/backend/locale/it_IT/LC_MESSAGES/django.po b/src/backend/locale/it_IT/LC_MESSAGES/django.po
index 7ba5cdf9a3..6fdf8e1e15 100644
--- a/src/backend/locale/it_IT/LC_MESSAGES/django.po
+++ b/src/backend/locale/it_IT/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: lasuite-docs\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2025-11-17 08:04+0000\n"
-"PO-Revision-Date: 2025-11-19 10:13\n"
+"POT-Creation-Date: 2025-11-20 14:08+0000\n"
+"PO-Revision-Date: 2025-11-26 13:33\n"
"Last-Translator: \n"
"Language-Team: Italian\n"
"Language: it_IT\n"
@@ -50,67 +50,72 @@ msgstr ""
msgid "Favorite"
msgstr "Preferiti"
-#: build/lib/core/api/serializers.py:496 core/api/serializers.py:496
+#: build/lib/core/api/serializers.py:497 core/api/serializers.py:497
msgid "A new document was created on your behalf!"
msgstr "Un nuovo documento è stato creato a tuo nome!"
-#: build/lib/core/api/serializers.py:500 core/api/serializers.py:500
+#: build/lib/core/api/serializers.py:501 core/api/serializers.py:501
msgid "You have been granted ownership of a new document:"
msgstr "Sei ora proprietario di un nuovo documento:"
-#: build/lib/core/api/serializers.py:536 core/api/serializers.py:536
+#: build/lib/core/api/serializers.py:537 core/api/serializers.py:537
msgid "This field is required."
msgstr ""
-#: build/lib/core/api/serializers.py:547 core/api/serializers.py:547
+#: build/lib/core/api/serializers.py:548 core/api/serializers.py:548
#, python-format
msgid "Link reach '%(link_reach)s' is not allowed based on parent document configuration."
msgstr ""
-#: build/lib/core/api/serializers.py:693 core/api/serializers.py:693
+#: build/lib/core/api/serializers.py:694 core/api/serializers.py:694
msgid "Body"
msgstr "Corpo"
-#: build/lib/core/api/serializers.py:696 core/api/serializers.py:696
+#: build/lib/core/api/serializers.py:697 core/api/serializers.py:697
msgid "Body type"
msgstr ""
-#: build/lib/core/api/serializers.py:702 core/api/serializers.py:702
+#: build/lib/core/api/serializers.py:703 core/api/serializers.py:703
msgid "Format"
msgstr "Formato"
-#: build/lib/core/api/viewsets.py:1003 core/api/viewsets.py:1003
+#: build/lib/core/api/viewsets.py:1004 core/api/viewsets.py:1004
#, python-brace-format
msgid "copy of {title}"
msgstr "copia di {title}"
-#: build/lib/core/choices.py:35 build/lib/core/choices.py:42 core/choices.py:35
-#: core/choices.py:42
+#: build/lib/core/choices.py:35 build/lib/core/choices.py:43 core/choices.py:35
+#: core/choices.py:43
msgid "Reader"
msgstr "Lettore"
-#: build/lib/core/choices.py:36 build/lib/core/choices.py:43 core/choices.py:36
-#: core/choices.py:43
+#: build/lib/core/choices.py:36 build/lib/core/choices.py:44 core/choices.py:36
+#: core/choices.py:44
+msgid "Commenter"
+msgstr ""
+
+#: build/lib/core/choices.py:37 build/lib/core/choices.py:45 core/choices.py:37
+#: core/choices.py:45
msgid "Editor"
msgstr "Editor"
-#: build/lib/core/choices.py:44 core/choices.py:44
+#: build/lib/core/choices.py:46 core/choices.py:46
msgid "Administrator"
msgstr "Amministratore"
-#: build/lib/core/choices.py:45 core/choices.py:45
+#: build/lib/core/choices.py:47 core/choices.py:47
msgid "Owner"
msgstr "Proprietario"
-#: build/lib/core/choices.py:56 core/choices.py:56
+#: build/lib/core/choices.py:58 core/choices.py:58
msgid "Restricted"
msgstr "Limitato"
-#: build/lib/core/choices.py:60 core/choices.py:60
+#: build/lib/core/choices.py:62 core/choices.py:62
msgid "Authenticated"
msgstr "Autenticato"
-#: build/lib/core/choices.py:62 core/choices.py:62
+#: build/lib/core/choices.py:64 core/choices.py:64
msgid "Public"
msgstr "Pubblico"
@@ -234,8 +239,8 @@ msgstr "utente"
msgid "users"
msgstr "utenti"
-#: build/lib/core/models.py:361 build/lib/core/models.py:1276
-#: core/models.py:361 core/models.py:1276
+#: build/lib/core/models.py:361 build/lib/core/models.py:1430
+#: core/models.py:361 core/models.py:1430
msgid "title"
msgstr "titolo"
@@ -251,155 +256,188 @@ msgstr "Documento"
msgid "Documents"
msgstr "Documenti"
-#: build/lib/core/models.py:424 build/lib/core/models.py:822 core/models.py:424
-#: core/models.py:822
+#: build/lib/core/models.py:424 build/lib/core/models.py:824 core/models.py:424
+#: core/models.py:824
msgid "Untitled Document"
msgstr "Documento senza titolo"
-#: build/lib/core/models.py:857 core/models.py:857
+#: build/lib/core/models.py:859 core/models.py:859
#, python-brace-format
msgid "{name} shared a document with you!"
msgstr "{name} ha condiviso un documento con te!"
-#: build/lib/core/models.py:861 core/models.py:861
+#: build/lib/core/models.py:863 core/models.py:863
#, python-brace-format
msgid "{name} invited you with the role \"{role}\" on the following document:"
msgstr "{name} ti ha invitato con il ruolo \"{role}\" nel seguente documento:"
-#: build/lib/core/models.py:867 core/models.py:867
+#: build/lib/core/models.py:869 core/models.py:869
#, python-brace-format
msgid "{name} shared a document with you: {title}"
msgstr "{name} ha condiviso un documento con te: {title}"
-#: build/lib/core/models.py:967 core/models.py:967
+#: build/lib/core/models.py:969 core/models.py:969
msgid "Document/user link trace"
msgstr ""
-#: build/lib/core/models.py:968 core/models.py:968
+#: build/lib/core/models.py:970 core/models.py:970
msgid "Document/user link traces"
msgstr ""
-#: build/lib/core/models.py:974 core/models.py:974
+#: build/lib/core/models.py:976 core/models.py:976
msgid "A link trace already exists for this document/user."
msgstr ""
-#: build/lib/core/models.py:997 core/models.py:997
+#: build/lib/core/models.py:999 core/models.py:999
msgid "Document favorite"
msgstr "Documento preferito"
-#: build/lib/core/models.py:998 core/models.py:998
+#: build/lib/core/models.py:1000 core/models.py:1000
msgid "Document favorites"
msgstr "Documenti preferiti"
-#: build/lib/core/models.py:1004 core/models.py:1004
+#: build/lib/core/models.py:1006 core/models.py:1006
msgid "This document is already targeted by a favorite relation instance for the same user."
msgstr ""
-#: build/lib/core/models.py:1026 core/models.py:1026
+#: build/lib/core/models.py:1028 core/models.py:1028
msgid "Document/user relation"
msgstr ""
-#: build/lib/core/models.py:1027 core/models.py:1027
+#: build/lib/core/models.py:1029 core/models.py:1029
msgid "Document/user relations"
msgstr ""
-#: build/lib/core/models.py:1033 core/models.py:1033
+#: build/lib/core/models.py:1035 core/models.py:1035
msgid "This user is already in this document."
msgstr "Questo utente è già presente in questo documento."
-#: build/lib/core/models.py:1039 core/models.py:1039
+#: build/lib/core/models.py:1041 core/models.py:1041
msgid "This team is already in this document."
msgstr "Questo team è già presente in questo documento."
-#: build/lib/core/models.py:1045 build/lib/core/models.py:1362
-#: core/models.py:1045 core/models.py:1362
+#: build/lib/core/models.py:1047 build/lib/core/models.py:1516
+#: core/models.py:1047 core/models.py:1516
msgid "Either user or team must be set, not both."
msgstr ""
-#: build/lib/core/models.py:1191 core/models.py:1191
+#: build/lib/core/models.py:1198 core/models.py:1198
msgid "Document ask for access"
msgstr ""
-#: build/lib/core/models.py:1192 core/models.py:1192
+#: build/lib/core/models.py:1199 core/models.py:1199
msgid "Document ask for accesses"
msgstr ""
-#: build/lib/core/models.py:1198 core/models.py:1198
+#: build/lib/core/models.py:1205 core/models.py:1205
msgid "This user has already asked for access to this document."
msgstr ""
-#: build/lib/core/models.py:1255 core/models.py:1255
+#: build/lib/core/models.py:1262 core/models.py:1262
#, python-brace-format
msgid "{name} would like access to a document!"
msgstr ""
-#: build/lib/core/models.py:1259 core/models.py:1259
+#: build/lib/core/models.py:1266 core/models.py:1266
#, python-brace-format
msgid "{name} would like access to the following document:"
msgstr ""
-#: build/lib/core/models.py:1265 core/models.py:1265
+#: build/lib/core/models.py:1272 core/models.py:1272
#, python-brace-format
msgid "{name} is asking for access to the document: {title}"
msgstr ""
-#: build/lib/core/models.py:1277 core/models.py:1277
+#: build/lib/core/models.py:1314 core/models.py:1314
+msgid "Thread"
+msgstr ""
+
+#: build/lib/core/models.py:1315 core/models.py:1315
+msgid "Threads"
+msgstr ""
+
+#: build/lib/core/models.py:1318 build/lib/core/models.py:1370
+#: core/models.py:1318 core/models.py:1370
+msgid "Anonymous"
+msgstr ""
+
+#: build/lib/core/models.py:1365 core/models.py:1365
+msgid "Comment"
+msgstr ""
+
+#: build/lib/core/models.py:1366 core/models.py:1366
+msgid "Comments"
+msgstr ""
+
+#: build/lib/core/models.py:1415 core/models.py:1415
+msgid "This emoji has already been reacted to this comment."
+msgstr ""
+
+#: build/lib/core/models.py:1419 core/models.py:1419
+msgid "Reaction"
+msgstr ""
+
+#: build/lib/core/models.py:1420 core/models.py:1420
+msgid "Reactions"
+msgstr ""
+
+#: build/lib/core/models.py:1431 core/models.py:1431
msgid "description"
msgstr "descrizione"
-#: build/lib/core/models.py:1278 core/models.py:1278
+#: build/lib/core/models.py:1432 core/models.py:1432
msgid "code"
msgstr "code"
-#: build/lib/core/models.py:1279 core/models.py:1279
+#: build/lib/core/models.py:1433 core/models.py:1433
msgid "css"
msgstr "css"
-#: build/lib/core/models.py:1281 core/models.py:1281
+#: build/lib/core/models.py:1435 core/models.py:1435
msgid "public"
msgstr "pubblico"
-#: build/lib/core/models.py:1283 core/models.py:1283
+#: build/lib/core/models.py:1437 core/models.py:1437
msgid "Whether this template is public for anyone to use."
msgstr "Indica se questo modello è pubblico per chiunque."
-#: build/lib/core/models.py:1289 core/models.py:1289
+#: build/lib/core/models.py:1443 core/models.py:1443
msgid "Template"
msgstr "Modello"
-#: build/lib/core/models.py:1290 core/models.py:1290
+#: build/lib/core/models.py:1444 core/models.py:1444
msgid "Templates"
msgstr "Modelli"
-#: build/lib/core/models.py:1343 core/models.py:1343
+#: build/lib/core/models.py:1497 core/models.py:1497
msgid "Template/user relation"
msgstr ""
-#: build/lib/core/models.py:1344 core/models.py:1344
+#: build/lib/core/models.py:1498 core/models.py:1498
msgid "Template/user relations"
msgstr ""
-#: build/lib/core/models.py:1350 core/models.py:1350
+#: build/lib/core/models.py:1504 core/models.py:1504
msgid "This user is already in this template."
msgstr "Questo utente è già in questo modello."
-#: build/lib/core/models.py:1356 core/models.py:1356
+#: build/lib/core/models.py:1510 core/models.py:1510
msgid "This team is already in this template."
msgstr "Questo team è già in questo modello."
-#: build/lib/core/models.py:1433 core/models.py:1433
+#: build/lib/core/models.py:1587 core/models.py:1587
msgid "email address"
msgstr "indirizzo e-mail"
-#: build/lib/core/models.py:1452 core/models.py:1452
+#: build/lib/core/models.py:1606 core/models.py:1606
msgid "Document invitation"
msgstr "Invito al documento"
-#: build/lib/core/models.py:1453 core/models.py:1453
+#: build/lib/core/models.py:1607 core/models.py:1607
msgid "Document invitations"
msgstr "Inviti al documento"
-#: build/lib/core/models.py:1473 core/models.py:1473
+#: build/lib/core/models.py:1627 core/models.py:1627
msgid "This email is already associated to a registered user."
msgstr "Questa email è già associata a un utente registrato."
diff --git a/src/backend/locale/nl_NL/LC_MESSAGES/django.po b/src/backend/locale/nl_NL/LC_MESSAGES/django.po
index 7c2759e3f1..582e4eada1 100644
--- a/src/backend/locale/nl_NL/LC_MESSAGES/django.po
+++ b/src/backend/locale/nl_NL/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: lasuite-docs\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2025-11-17 08:04+0000\n"
-"PO-Revision-Date: 2025-11-19 10:13\n"
+"POT-Creation-Date: 2025-11-20 14:08+0000\n"
+"PO-Revision-Date: 2025-11-26 13:33\n"
"Last-Translator: \n"
"Language-Team: Dutch\n"
"Language: nl_NL\n"
@@ -50,67 +50,72 @@ msgstr "Gemaskeerd"
msgid "Favorite"
msgstr "Favoriet"
-#: build/lib/core/api/serializers.py:496 core/api/serializers.py:496
+#: build/lib/core/api/serializers.py:497 core/api/serializers.py:497
msgid "A new document was created on your behalf!"
msgstr "Een nieuw document is namens u gemaakt!"
-#: build/lib/core/api/serializers.py:500 core/api/serializers.py:500
+#: build/lib/core/api/serializers.py:501 core/api/serializers.py:501
msgid "You have been granted ownership of a new document:"
msgstr "U heeft eigenaarschap van een nieuw document gekregen:"
-#: build/lib/core/api/serializers.py:536 core/api/serializers.py:536
+#: build/lib/core/api/serializers.py:537 core/api/serializers.py:537
msgid "This field is required."
msgstr "Dit veld is verplicht."
-#: build/lib/core/api/serializers.py:547 core/api/serializers.py:547
+#: build/lib/core/api/serializers.py:548 core/api/serializers.py:548
#, python-format
msgid "Link reach '%(link_reach)s' is not allowed based on parent document configuration."
msgstr "Link bereik '%(link_reach)s' is niet toegestaan op basis van bovenliggende documentconfiguratie."
-#: build/lib/core/api/serializers.py:693 core/api/serializers.py:693
+#: build/lib/core/api/serializers.py:694 core/api/serializers.py:694
msgid "Body"
msgstr "Text"
-#: build/lib/core/api/serializers.py:696 core/api/serializers.py:696
+#: build/lib/core/api/serializers.py:697 core/api/serializers.py:697
msgid "Body type"
msgstr "Text type"
-#: build/lib/core/api/serializers.py:702 core/api/serializers.py:702
+#: build/lib/core/api/serializers.py:703 core/api/serializers.py:703
msgid "Format"
msgstr "Formaat"
-#: build/lib/core/api/viewsets.py:1003 core/api/viewsets.py:1003
+#: build/lib/core/api/viewsets.py:1004 core/api/viewsets.py:1004
#, python-brace-format
msgid "copy of {title}"
msgstr "kopie van {title}"
-#: build/lib/core/choices.py:35 build/lib/core/choices.py:42 core/choices.py:35
-#: core/choices.py:42
+#: build/lib/core/choices.py:35 build/lib/core/choices.py:43 core/choices.py:35
+#: core/choices.py:43
msgid "Reader"
msgstr "Lezer"
-#: build/lib/core/choices.py:36 build/lib/core/choices.py:43 core/choices.py:36
-#: core/choices.py:43
+#: build/lib/core/choices.py:36 build/lib/core/choices.py:44 core/choices.py:36
+#: core/choices.py:44
+msgid "Commenter"
+msgstr "Commentator"
+
+#: build/lib/core/choices.py:37 build/lib/core/choices.py:45 core/choices.py:37
+#: core/choices.py:45
msgid "Editor"
msgstr "Redacteur"
-#: build/lib/core/choices.py:44 core/choices.py:44
+#: build/lib/core/choices.py:46 core/choices.py:46
msgid "Administrator"
msgstr "Beheerder"
-#: build/lib/core/choices.py:45 core/choices.py:45
+#: build/lib/core/choices.py:47 core/choices.py:47
msgid "Owner"
msgstr "Eigenaar"
-#: build/lib/core/choices.py:56 core/choices.py:56
+#: build/lib/core/choices.py:58 core/choices.py:58
msgid "Restricted"
msgstr "Beperkt"
-#: build/lib/core/choices.py:60 core/choices.py:60
+#: build/lib/core/choices.py:62 core/choices.py:62
msgid "Authenticated"
msgstr "Geauthenticeerd"
-#: build/lib/core/choices.py:62 core/choices.py:62
+#: build/lib/core/choices.py:64 core/choices.py:64
msgid "Public"
msgstr "Publiek"
@@ -234,8 +239,8 @@ msgstr "gebruiker"
msgid "users"
msgstr "gebruikers"
-#: build/lib/core/models.py:361 build/lib/core/models.py:1276
-#: core/models.py:361 core/models.py:1276
+#: build/lib/core/models.py:361 build/lib/core/models.py:1430
+#: core/models.py:361 core/models.py:1430
msgid "title"
msgstr "titel"
@@ -251,155 +256,188 @@ msgstr "Document"
msgid "Documents"
msgstr "Documenten"
-#: build/lib/core/models.py:424 build/lib/core/models.py:822 core/models.py:424
-#: core/models.py:822
+#: build/lib/core/models.py:424 build/lib/core/models.py:824 core/models.py:424
+#: core/models.py:824
msgid "Untitled Document"
msgstr "Naamloos Document"
-#: build/lib/core/models.py:857 core/models.py:857
+#: build/lib/core/models.py:859 core/models.py:859
#, python-brace-format
msgid "{name} shared a document with you!"
msgstr "{name} heeft een document met u gedeeld!"
-#: build/lib/core/models.py:861 core/models.py:861
+#: build/lib/core/models.py:863 core/models.py:863
#, python-brace-format
msgid "{name} invited you with the role \"{role}\" on the following document:"
msgstr "{name} heeft u uitgenodigd met de rol \"{role}\" op het volgende document:"
-#: build/lib/core/models.py:867 core/models.py:867
+#: build/lib/core/models.py:869 core/models.py:869
#, python-brace-format
msgid "{name} shared a document with you: {title}"
msgstr "{name} heeft een document met u gedeeld: {title}"
-#: build/lib/core/models.py:967 core/models.py:967
+#: build/lib/core/models.py:969 core/models.py:969
msgid "Document/user link trace"
msgstr "Document/gebruiker link"
-#: build/lib/core/models.py:968 core/models.py:968
+#: build/lib/core/models.py:970 core/models.py:970
msgid "Document/user link traces"
msgstr "Document/gebruiker link"
-#: build/lib/core/models.py:974 core/models.py:974
+#: build/lib/core/models.py:976 core/models.py:976
msgid "A link trace already exists for this document/user."
msgstr "Een link bestaat al voor dit document/deze gebruiker."
-#: build/lib/core/models.py:997 core/models.py:997
+#: build/lib/core/models.py:999 core/models.py:999
msgid "Document favorite"
msgstr "Document favoriet"
-#: build/lib/core/models.py:998 core/models.py:998
+#: build/lib/core/models.py:1000 core/models.py:1000
msgid "Document favorites"
msgstr "Document favorieten"
-#: build/lib/core/models.py:1004 core/models.py:1004
+#: build/lib/core/models.py:1006 core/models.py:1006
msgid "This document is already targeted by a favorite relation instance for the same user."
msgstr "Dit document is al in gebruik als favoriet door dezelfde gebruiker."
-#: build/lib/core/models.py:1026 core/models.py:1026
+#: build/lib/core/models.py:1028 core/models.py:1028
msgid "Document/user relation"
msgstr "Document/gebruiker relatie"
-#: build/lib/core/models.py:1027 core/models.py:1027
+#: build/lib/core/models.py:1029 core/models.py:1029
msgid "Document/user relations"
msgstr "Document/gebruiker relaties"
-#: build/lib/core/models.py:1033 core/models.py:1033
+#: build/lib/core/models.py:1035 core/models.py:1035
msgid "This user is already in this document."
msgstr "De gebruiker bestaat al in dit document."
-#: build/lib/core/models.py:1039 core/models.py:1039
+#: build/lib/core/models.py:1041 core/models.py:1041
msgid "This team is already in this document."
msgstr "Dit team bestaat al in dit document."
-#: build/lib/core/models.py:1045 build/lib/core/models.py:1362
-#: core/models.py:1045 core/models.py:1362
+#: build/lib/core/models.py:1047 build/lib/core/models.py:1516
+#: core/models.py:1047 core/models.py:1516
msgid "Either user or team must be set, not both."
msgstr "Een gebruiker of team moet gekozen worden, maar niet beide."
-#: build/lib/core/models.py:1191 core/models.py:1191
+#: build/lib/core/models.py:1198 core/models.py:1198
msgid "Document ask for access"
msgstr "Document verzoekt om toegang"
-#: build/lib/core/models.py:1192 core/models.py:1192
+#: build/lib/core/models.py:1199 core/models.py:1199
msgid "Document ask for accesses"
msgstr "Document verzoekt om toegangen"
-#: build/lib/core/models.py:1198 core/models.py:1198
+#: build/lib/core/models.py:1205 core/models.py:1205
msgid "This user has already asked for access to this document."
msgstr "Deze gebruiker heeft al om toegang tot dit document gevraagd."
-#: build/lib/core/models.py:1255 core/models.py:1255
+#: build/lib/core/models.py:1262 core/models.py:1262
#, python-brace-format
msgid "{name} would like access to a document!"
msgstr "{name} verzoekt toegang tot een document!"
-#: build/lib/core/models.py:1259 core/models.py:1259
+#: build/lib/core/models.py:1266 core/models.py:1266
#, python-brace-format
msgid "{name} would like access to the following document:"
msgstr "{name} verzoekt toegang tot het volgende document:"
-#: build/lib/core/models.py:1265 core/models.py:1265
+#: build/lib/core/models.py:1272 core/models.py:1272
#, python-brace-format
msgid "{name} is asking for access to the document: {title}"
msgstr "{name} verzoekt toegang tot het document: {title}"
-#: build/lib/core/models.py:1277 core/models.py:1277
+#: build/lib/core/models.py:1314 core/models.py:1314
+msgid "Thread"
+msgstr "Kanaal"
+
+#: build/lib/core/models.py:1315 core/models.py:1315
+msgid "Threads"
+msgstr "Kanalen"
+
+#: build/lib/core/models.py:1318 build/lib/core/models.py:1370
+#: core/models.py:1318 core/models.py:1370
+msgid "Anonymous"
+msgstr "Anoniem"
+
+#: build/lib/core/models.py:1365 core/models.py:1365
+msgid "Comment"
+msgstr "Reactie"
+
+#: build/lib/core/models.py:1366 core/models.py:1366
+msgid "Comments"
+msgstr "Reacties"
+
+#: build/lib/core/models.py:1415 core/models.py:1415
+msgid "This emoji has already been reacted to this comment."
+msgstr "Deze emoji is al op deze opmerking gereageerd."
+
+#: build/lib/core/models.py:1419 core/models.py:1419
+msgid "Reaction"
+msgstr "Reactie"
+
+#: build/lib/core/models.py:1420 core/models.py:1420
+msgid "Reactions"
+msgstr "Reacties"
+
+#: build/lib/core/models.py:1431 core/models.py:1431
msgid "description"
msgstr "omschrijving"
-#: build/lib/core/models.py:1278 core/models.py:1278
+#: build/lib/core/models.py:1432 core/models.py:1432
msgid "code"
msgstr "code"
-#: build/lib/core/models.py:1279 core/models.py:1279
+#: build/lib/core/models.py:1433 core/models.py:1433
msgid "css"
msgstr "css"
-#: build/lib/core/models.py:1281 core/models.py:1281
+#: build/lib/core/models.py:1435 core/models.py:1435
msgid "public"
msgstr "publiek"
-#: build/lib/core/models.py:1283 core/models.py:1283
+#: build/lib/core/models.py:1437 core/models.py:1437
msgid "Whether this template is public for anyone to use."
msgstr "Of dit sjabloon door iedereen publiekelijk te gebruiken is."
-#: build/lib/core/models.py:1289 core/models.py:1289
+#: build/lib/core/models.py:1443 core/models.py:1443
msgid "Template"
msgstr "Sjabloon"
-#: build/lib/core/models.py:1290 core/models.py:1290
+#: build/lib/core/models.py:1444 core/models.py:1444
msgid "Templates"
msgstr "Sjabloon"
-#: build/lib/core/models.py:1343 core/models.py:1343
+#: build/lib/core/models.py:1497 core/models.py:1497
msgid "Template/user relation"
msgstr "Sjabloon/gebruiker relatie"
-#: build/lib/core/models.py:1344 core/models.py:1344
+#: build/lib/core/models.py:1498 core/models.py:1498
msgid "Template/user relations"
msgstr "Sjabloon/gebruiker relaties"
-#: build/lib/core/models.py:1350 core/models.py:1350
+#: build/lib/core/models.py:1504 core/models.py:1504
msgid "This user is already in this template."
msgstr "De gebruiker bestaat al in dit sjabloon."
-#: build/lib/core/models.py:1356 core/models.py:1356
+#: build/lib/core/models.py:1510 core/models.py:1510
msgid "This team is already in this template."
msgstr "Het team bestaat al in dit sjabloon."
-#: build/lib/core/models.py:1433 core/models.py:1433
+#: build/lib/core/models.py:1587 core/models.py:1587
msgid "email address"
msgstr "e-mailadres"
-#: build/lib/core/models.py:1452 core/models.py:1452
+#: build/lib/core/models.py:1606 core/models.py:1606
msgid "Document invitation"
msgstr "Document uitnodiging"
-#: build/lib/core/models.py:1453 core/models.py:1453
+#: build/lib/core/models.py:1607 core/models.py:1607
msgid "Document invitations"
msgstr "Document uitnodigingen"
-#: build/lib/core/models.py:1473 core/models.py:1473
+#: build/lib/core/models.py:1627 core/models.py:1627
msgid "This email is already associated to a registered user."
msgstr "Deze email is al geassocieerd met een geregistreerde gebruiker."
diff --git a/src/backend/locale/pt_PT/LC_MESSAGES/django.po b/src/backend/locale/pt_PT/LC_MESSAGES/django.po
index e2087edd70..2070cb5c91 100644
--- a/src/backend/locale/pt_PT/LC_MESSAGES/django.po
+++ b/src/backend/locale/pt_PT/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: lasuite-docs\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2025-11-17 08:04+0000\n"
-"PO-Revision-Date: 2025-11-19 10:13\n"
+"POT-Creation-Date: 2025-11-20 14:08+0000\n"
+"PO-Revision-Date: 2025-11-26 13:33\n"
"Last-Translator: \n"
"Language-Team: Portuguese\n"
"Language: pt_PT\n"
@@ -50,67 +50,72 @@ msgstr ""
msgid "Favorite"
msgstr "Favorito"
-#: build/lib/core/api/serializers.py:496 core/api/serializers.py:496
+#: build/lib/core/api/serializers.py:497 core/api/serializers.py:497
msgid "A new document was created on your behalf!"
msgstr "Um novo documento foi criado em seu nome!"
-#: build/lib/core/api/serializers.py:500 core/api/serializers.py:500
+#: build/lib/core/api/serializers.py:501 core/api/serializers.py:501
msgid "You have been granted ownership of a new document:"
msgstr "A propriedade de um novo documento foi concedida a você:"
-#: build/lib/core/api/serializers.py:536 core/api/serializers.py:536
+#: build/lib/core/api/serializers.py:537 core/api/serializers.py:537
msgid "This field is required."
msgstr ""
-#: build/lib/core/api/serializers.py:547 core/api/serializers.py:547
+#: build/lib/core/api/serializers.py:548 core/api/serializers.py:548
#, python-format
msgid "Link reach '%(link_reach)s' is not allowed based on parent document configuration."
msgstr ""
-#: build/lib/core/api/serializers.py:693 core/api/serializers.py:693
+#: build/lib/core/api/serializers.py:694 core/api/serializers.py:694
msgid "Body"
msgstr "Corpo"
-#: build/lib/core/api/serializers.py:696 core/api/serializers.py:696
+#: build/lib/core/api/serializers.py:697 core/api/serializers.py:697
msgid "Body type"
msgstr "Tipo de corpo"
-#: build/lib/core/api/serializers.py:702 core/api/serializers.py:702
+#: build/lib/core/api/serializers.py:703 core/api/serializers.py:703
msgid "Format"
msgstr "Formato"
-#: build/lib/core/api/viewsets.py:1003 core/api/viewsets.py:1003
+#: build/lib/core/api/viewsets.py:1004 core/api/viewsets.py:1004
#, python-brace-format
msgid "copy of {title}"
msgstr "cópia de {title}"
-#: build/lib/core/choices.py:35 build/lib/core/choices.py:42 core/choices.py:35
-#: core/choices.py:42
+#: build/lib/core/choices.py:35 build/lib/core/choices.py:43 core/choices.py:35
+#: core/choices.py:43
msgid "Reader"
msgstr "Leitor"
-#: build/lib/core/choices.py:36 build/lib/core/choices.py:43 core/choices.py:36
-#: core/choices.py:43
+#: build/lib/core/choices.py:36 build/lib/core/choices.py:44 core/choices.py:36
+#: core/choices.py:44
+msgid "Commenter"
+msgstr ""
+
+#: build/lib/core/choices.py:37 build/lib/core/choices.py:45 core/choices.py:37
+#: core/choices.py:45
msgid "Editor"
msgstr "Editor"
-#: build/lib/core/choices.py:44 core/choices.py:44
+#: build/lib/core/choices.py:46 core/choices.py:46
msgid "Administrator"
msgstr "Administrador"
-#: build/lib/core/choices.py:45 core/choices.py:45
+#: build/lib/core/choices.py:47 core/choices.py:47
msgid "Owner"
msgstr "Dono"
-#: build/lib/core/choices.py:56 core/choices.py:56
+#: build/lib/core/choices.py:58 core/choices.py:58
msgid "Restricted"
msgstr "Restrito"
-#: build/lib/core/choices.py:60 core/choices.py:60
+#: build/lib/core/choices.py:62 core/choices.py:62
msgid "Authenticated"
msgstr "Autenticado"
-#: build/lib/core/choices.py:62 core/choices.py:62
+#: build/lib/core/choices.py:64 core/choices.py:64
msgid "Public"
msgstr "Público"
@@ -234,8 +239,8 @@ msgstr ""
msgid "users"
msgstr ""
-#: build/lib/core/models.py:361 build/lib/core/models.py:1276
-#: core/models.py:361 core/models.py:1276
+#: build/lib/core/models.py:361 build/lib/core/models.py:1430
+#: core/models.py:361 core/models.py:1430
msgid "title"
msgstr ""
@@ -251,155 +256,188 @@ msgstr ""
msgid "Documents"
msgstr ""
-#: build/lib/core/models.py:424 build/lib/core/models.py:822 core/models.py:424
-#: core/models.py:822
+#: build/lib/core/models.py:424 build/lib/core/models.py:824 core/models.py:424
+#: core/models.py:824
msgid "Untitled Document"
msgstr ""
-#: build/lib/core/models.py:857 core/models.py:857
+#: build/lib/core/models.py:859 core/models.py:859
#, python-brace-format
msgid "{name} shared a document with you!"
msgstr ""
-#: build/lib/core/models.py:861 core/models.py:861
+#: build/lib/core/models.py:863 core/models.py:863
#, python-brace-format
msgid "{name} invited you with the role \"{role}\" on the following document:"
msgstr ""
-#: build/lib/core/models.py:867 core/models.py:867
+#: build/lib/core/models.py:869 core/models.py:869
#, python-brace-format
msgid "{name} shared a document with you: {title}"
msgstr ""
-#: build/lib/core/models.py:967 core/models.py:967
+#: build/lib/core/models.py:969 core/models.py:969
msgid "Document/user link trace"
msgstr ""
-#: build/lib/core/models.py:968 core/models.py:968
+#: build/lib/core/models.py:970 core/models.py:970
msgid "Document/user link traces"
msgstr ""
-#: build/lib/core/models.py:974 core/models.py:974
+#: build/lib/core/models.py:976 core/models.py:976
msgid "A link trace already exists for this document/user."
msgstr ""
-#: build/lib/core/models.py:997 core/models.py:997
+#: build/lib/core/models.py:999 core/models.py:999
msgid "Document favorite"
msgstr ""
-#: build/lib/core/models.py:998 core/models.py:998
+#: build/lib/core/models.py:1000 core/models.py:1000
msgid "Document favorites"
msgstr ""
-#: build/lib/core/models.py:1004 core/models.py:1004
+#: build/lib/core/models.py:1006 core/models.py:1006
msgid "This document is already targeted by a favorite relation instance for the same user."
msgstr ""
-#: build/lib/core/models.py:1026 core/models.py:1026
+#: build/lib/core/models.py:1028 core/models.py:1028
msgid "Document/user relation"
msgstr ""
-#: build/lib/core/models.py:1027 core/models.py:1027
+#: build/lib/core/models.py:1029 core/models.py:1029
msgid "Document/user relations"
msgstr ""
-#: build/lib/core/models.py:1033 core/models.py:1033
+#: build/lib/core/models.py:1035 core/models.py:1035
msgid "This user is already in this document."
msgstr ""
-#: build/lib/core/models.py:1039 core/models.py:1039
+#: build/lib/core/models.py:1041 core/models.py:1041
msgid "This team is already in this document."
msgstr ""
-#: build/lib/core/models.py:1045 build/lib/core/models.py:1362
-#: core/models.py:1045 core/models.py:1362
+#: build/lib/core/models.py:1047 build/lib/core/models.py:1516
+#: core/models.py:1047 core/models.py:1516
msgid "Either user or team must be set, not both."
msgstr ""
-#: build/lib/core/models.py:1191 core/models.py:1191
+#: build/lib/core/models.py:1198 core/models.py:1198
msgid "Document ask for access"
msgstr ""
-#: build/lib/core/models.py:1192 core/models.py:1192
+#: build/lib/core/models.py:1199 core/models.py:1199
msgid "Document ask for accesses"
msgstr ""
-#: build/lib/core/models.py:1198 core/models.py:1198
+#: build/lib/core/models.py:1205 core/models.py:1205
msgid "This user has already asked for access to this document."
msgstr ""
-#: build/lib/core/models.py:1255 core/models.py:1255
+#: build/lib/core/models.py:1262 core/models.py:1262
#, python-brace-format
msgid "{name} would like access to a document!"
msgstr ""
-#: build/lib/core/models.py:1259 core/models.py:1259
+#: build/lib/core/models.py:1266 core/models.py:1266
#, python-brace-format
msgid "{name} would like access to the following document:"
msgstr ""
-#: build/lib/core/models.py:1265 core/models.py:1265
+#: build/lib/core/models.py:1272 core/models.py:1272
#, python-brace-format
msgid "{name} is asking for access to the document: {title}"
msgstr ""
-#: build/lib/core/models.py:1277 core/models.py:1277
+#: build/lib/core/models.py:1314 core/models.py:1314
+msgid "Thread"
+msgstr ""
+
+#: build/lib/core/models.py:1315 core/models.py:1315
+msgid "Threads"
+msgstr ""
+
+#: build/lib/core/models.py:1318 build/lib/core/models.py:1370
+#: core/models.py:1318 core/models.py:1370
+msgid "Anonymous"
+msgstr ""
+
+#: build/lib/core/models.py:1365 core/models.py:1365
+msgid "Comment"
+msgstr ""
+
+#: build/lib/core/models.py:1366 core/models.py:1366
+msgid "Comments"
+msgstr ""
+
+#: build/lib/core/models.py:1415 core/models.py:1415
+msgid "This emoji has already been reacted to this comment."
+msgstr ""
+
+#: build/lib/core/models.py:1419 core/models.py:1419
+msgid "Reaction"
+msgstr ""
+
+#: build/lib/core/models.py:1420 core/models.py:1420
+msgid "Reactions"
+msgstr ""
+
+#: build/lib/core/models.py:1431 core/models.py:1431
msgid "description"
msgstr ""
-#: build/lib/core/models.py:1278 core/models.py:1278
+#: build/lib/core/models.py:1432 core/models.py:1432
msgid "code"
msgstr ""
-#: build/lib/core/models.py:1279 core/models.py:1279
+#: build/lib/core/models.py:1433 core/models.py:1433
msgid "css"
msgstr ""
-#: build/lib/core/models.py:1281 core/models.py:1281
+#: build/lib/core/models.py:1435 core/models.py:1435
msgid "public"
msgstr ""
-#: build/lib/core/models.py:1283 core/models.py:1283
+#: build/lib/core/models.py:1437 core/models.py:1437
msgid "Whether this template is public for anyone to use."
msgstr ""
-#: build/lib/core/models.py:1289 core/models.py:1289
+#: build/lib/core/models.py:1443 core/models.py:1443
msgid "Template"
msgstr ""
-#: build/lib/core/models.py:1290 core/models.py:1290
+#: build/lib/core/models.py:1444 core/models.py:1444
msgid "Templates"
msgstr ""
-#: build/lib/core/models.py:1343 core/models.py:1343
+#: build/lib/core/models.py:1497 core/models.py:1497
msgid "Template/user relation"
msgstr ""
-#: build/lib/core/models.py:1344 core/models.py:1344
+#: build/lib/core/models.py:1498 core/models.py:1498
msgid "Template/user relations"
msgstr ""
-#: build/lib/core/models.py:1350 core/models.py:1350
+#: build/lib/core/models.py:1504 core/models.py:1504
msgid "This user is already in this template."
msgstr ""
-#: build/lib/core/models.py:1356 core/models.py:1356
+#: build/lib/core/models.py:1510 core/models.py:1510
msgid "This team is already in this template."
msgstr ""
-#: build/lib/core/models.py:1433 core/models.py:1433
+#: build/lib/core/models.py:1587 core/models.py:1587
msgid "email address"
msgstr ""
-#: build/lib/core/models.py:1452 core/models.py:1452
+#: build/lib/core/models.py:1606 core/models.py:1606
msgid "Document invitation"
msgstr ""
-#: build/lib/core/models.py:1453 core/models.py:1453
+#: build/lib/core/models.py:1607 core/models.py:1607
msgid "Document invitations"
msgstr ""
-#: build/lib/core/models.py:1473 core/models.py:1473
+#: build/lib/core/models.py:1627 core/models.py:1627
msgid "This email is already associated to a registered user."
msgstr ""
diff --git a/src/backend/locale/ru_RU/LC_MESSAGES/django.po b/src/backend/locale/ru_RU/LC_MESSAGES/django.po
index 3201b3cd0e..b35ddb5744 100644
--- a/src/backend/locale/ru_RU/LC_MESSAGES/django.po
+++ b/src/backend/locale/ru_RU/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: lasuite-docs\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2025-11-17 08:04+0000\n"
-"PO-Revision-Date: 2025-11-19 10:13\n"
+"POT-Creation-Date: 2025-11-20 14:08+0000\n"
+"PO-Revision-Date: 2025-11-26 13:33\n"
"Last-Translator: \n"
"Language-Team: Russian\n"
"Language: ru_RU\n"
@@ -50,67 +50,72 @@ msgstr "Скрытый"
msgid "Favorite"
msgstr "Избранное"
-#: build/lib/core/api/serializers.py:496 core/api/serializers.py:496
+#: build/lib/core/api/serializers.py:497 core/api/serializers.py:497
msgid "A new document was created on your behalf!"
msgstr "Новый документ был создан от вашего имени!"
-#: build/lib/core/api/serializers.py:500 core/api/serializers.py:500
+#: build/lib/core/api/serializers.py:501 core/api/serializers.py:501
msgid "You have been granted ownership of a new document:"
msgstr "Вы назначены владельцем для нового документа:"
-#: build/lib/core/api/serializers.py:536 core/api/serializers.py:536
+#: build/lib/core/api/serializers.py:537 core/api/serializers.py:537
msgid "This field is required."
msgstr "Это поле обязательное."
-#: build/lib/core/api/serializers.py:547 core/api/serializers.py:547
+#: build/lib/core/api/serializers.py:548 core/api/serializers.py:548
#, python-format
msgid "Link reach '%(link_reach)s' is not allowed based on parent document configuration."
msgstr "Доступ по ссылке '%(link_reach)s' запрещён в соответствии с настройками родительского документа."
-#: build/lib/core/api/serializers.py:693 core/api/serializers.py:693
+#: build/lib/core/api/serializers.py:694 core/api/serializers.py:694
msgid "Body"
msgstr "Текст сообщения"
-#: build/lib/core/api/serializers.py:696 core/api/serializers.py:696
+#: build/lib/core/api/serializers.py:697 core/api/serializers.py:697
msgid "Body type"
msgstr "Тип сообщения"
-#: build/lib/core/api/serializers.py:702 core/api/serializers.py:702
+#: build/lib/core/api/serializers.py:703 core/api/serializers.py:703
msgid "Format"
msgstr "Формат"
-#: build/lib/core/api/viewsets.py:1003 core/api/viewsets.py:1003
+#: build/lib/core/api/viewsets.py:1004 core/api/viewsets.py:1004
#, python-brace-format
msgid "copy of {title}"
msgstr "копия {title}"
-#: build/lib/core/choices.py:35 build/lib/core/choices.py:42 core/choices.py:35
-#: core/choices.py:42
+#: build/lib/core/choices.py:35 build/lib/core/choices.py:43 core/choices.py:35
+#: core/choices.py:43
msgid "Reader"
msgstr "Читатель"
-#: build/lib/core/choices.py:36 build/lib/core/choices.py:43 core/choices.py:36
-#: core/choices.py:43
+#: build/lib/core/choices.py:36 build/lib/core/choices.py:44 core/choices.py:36
+#: core/choices.py:44
+msgid "Commenter"
+msgstr "Комментатор"
+
+#: build/lib/core/choices.py:37 build/lib/core/choices.py:45 core/choices.py:37
+#: core/choices.py:45
msgid "Editor"
msgstr "Редактор"
-#: build/lib/core/choices.py:44 core/choices.py:44
+#: build/lib/core/choices.py:46 core/choices.py:46
msgid "Administrator"
msgstr "Администратор"
-#: build/lib/core/choices.py:45 core/choices.py:45
+#: build/lib/core/choices.py:47 core/choices.py:47
msgid "Owner"
msgstr "Владелец"
-#: build/lib/core/choices.py:56 core/choices.py:56
+#: build/lib/core/choices.py:58 core/choices.py:58
msgid "Restricted"
msgstr "Доступ ограничен"
-#: build/lib/core/choices.py:60 core/choices.py:60
+#: build/lib/core/choices.py:62 core/choices.py:62
msgid "Authenticated"
msgstr "Аутентификация выполнена"
-#: build/lib/core/choices.py:62 core/choices.py:62
+#: build/lib/core/choices.py:64 core/choices.py:64
msgid "Public"
msgstr "Доступно всем"
@@ -234,8 +239,8 @@ msgstr "пользователь"
msgid "users"
msgstr "пользователи"
-#: build/lib/core/models.py:361 build/lib/core/models.py:1276
-#: core/models.py:361 core/models.py:1276
+#: build/lib/core/models.py:361 build/lib/core/models.py:1430
+#: core/models.py:361 core/models.py:1430
msgid "title"
msgstr "заголовок"
@@ -251,155 +256,188 @@ msgstr "Документ"
msgid "Documents"
msgstr "Документы"
-#: build/lib/core/models.py:424 build/lib/core/models.py:822 core/models.py:424
-#: core/models.py:822
+#: build/lib/core/models.py:424 build/lib/core/models.py:824 core/models.py:424
+#: core/models.py:824
msgid "Untitled Document"
msgstr "Безымянный документ"
-#: build/lib/core/models.py:857 core/models.py:857
+#: build/lib/core/models.py:859 core/models.py:859
#, python-brace-format
msgid "{name} shared a document with you!"
msgstr "{name} делится с вами документом!"
-#: build/lib/core/models.py:861 core/models.py:861
+#: build/lib/core/models.py:863 core/models.py:863
#, python-brace-format
msgid "{name} invited you with the role \"{role}\" on the following document:"
msgstr "{name} приглашает вас присоединиться к следующему документу с ролью \"{role}\":"
-#: build/lib/core/models.py:867 core/models.py:867
+#: build/lib/core/models.py:869 core/models.py:869
#, python-brace-format
msgid "{name} shared a document with you: {title}"
msgstr "{name} делится с вами документом: {title}"
-#: build/lib/core/models.py:967 core/models.py:967
+#: build/lib/core/models.py:969 core/models.py:969
msgid "Document/user link trace"
msgstr "Трассировка связи документ/пользователь"
-#: build/lib/core/models.py:968 core/models.py:968
+#: build/lib/core/models.py:970 core/models.py:970
msgid "Document/user link traces"
msgstr "Трассировка связей документ/пользователь"
-#: build/lib/core/models.py:974 core/models.py:974
+#: build/lib/core/models.py:976 core/models.py:976
msgid "A link trace already exists for this document/user."
msgstr "Для этого документа/пользователя уже существует трассировка ссылки."
-#: build/lib/core/models.py:997 core/models.py:997
+#: build/lib/core/models.py:999 core/models.py:999
msgid "Document favorite"
msgstr "Избранный документ"
-#: build/lib/core/models.py:998 core/models.py:998
+#: build/lib/core/models.py:1000 core/models.py:1000
msgid "Document favorites"
msgstr "Избранные документы"
-#: build/lib/core/models.py:1004 core/models.py:1004
+#: build/lib/core/models.py:1006 core/models.py:1006
msgid "This document is already targeted by a favorite relation instance for the same user."
msgstr "Этот документ уже помечен как избранный для этого пользователя."
-#: build/lib/core/models.py:1026 core/models.py:1026
+#: build/lib/core/models.py:1028 core/models.py:1028
msgid "Document/user relation"
msgstr "Отношение документ/пользователь"
-#: build/lib/core/models.py:1027 core/models.py:1027
+#: build/lib/core/models.py:1029 core/models.py:1029
msgid "Document/user relations"
msgstr "Отношения документ/пользователь"
-#: build/lib/core/models.py:1033 core/models.py:1033
+#: build/lib/core/models.py:1035 core/models.py:1035
msgid "This user is already in this document."
msgstr "Этот пользователь уже имеет доступ к этому документу."
-#: build/lib/core/models.py:1039 core/models.py:1039
+#: build/lib/core/models.py:1041 core/models.py:1041
msgid "This team is already in this document."
msgstr "Эта команда уже имеет доступ к этому документу."
-#: build/lib/core/models.py:1045 build/lib/core/models.py:1362
-#: core/models.py:1045 core/models.py:1362
+#: build/lib/core/models.py:1047 build/lib/core/models.py:1516
+#: core/models.py:1047 core/models.py:1516
msgid "Either user or team must be set, not both."
msgstr "Может быть выбран либо пользователь, либо команда, но не оба варианта сразу."
-#: build/lib/core/models.py:1191 core/models.py:1191
+#: build/lib/core/models.py:1198 core/models.py:1198
msgid "Document ask for access"
msgstr "Документ запрашивает доступ"
-#: build/lib/core/models.py:1192 core/models.py:1192
+#: build/lib/core/models.py:1199 core/models.py:1199
msgid "Document ask for accesses"
msgstr "Документ запрашивает доступы"
-#: build/lib/core/models.py:1198 core/models.py:1198
+#: build/lib/core/models.py:1205 core/models.py:1205
msgid "This user has already asked for access to this document."
msgstr "Этот пользователь уже запросил доступ к этому документу."
-#: build/lib/core/models.py:1255 core/models.py:1255
+#: build/lib/core/models.py:1262 core/models.py:1262
#, python-brace-format
msgid "{name} would like access to a document!"
msgstr "{name} хочет получить доступ к документу!"
-#: build/lib/core/models.py:1259 core/models.py:1259
+#: build/lib/core/models.py:1266 core/models.py:1266
#, python-brace-format
msgid "{name} would like access to the following document:"
msgstr "{name} хочет получить доступ к следующему документу:"
-#: build/lib/core/models.py:1265 core/models.py:1265
+#: build/lib/core/models.py:1272 core/models.py:1272
#, python-brace-format
msgid "{name} is asking for access to the document: {title}"
msgstr "{name} запрашивает доступ к документу: {title}"
-#: build/lib/core/models.py:1277 core/models.py:1277
+#: build/lib/core/models.py:1314 core/models.py:1314
+msgid "Thread"
+msgstr "Обсуждение"
+
+#: build/lib/core/models.py:1315 core/models.py:1315
+msgid "Threads"
+msgstr "Обсуждения"
+
+#: build/lib/core/models.py:1318 build/lib/core/models.py:1370
+#: core/models.py:1318 core/models.py:1370
+msgid "Anonymous"
+msgstr "Аноним"
+
+#: build/lib/core/models.py:1365 core/models.py:1365
+msgid "Comment"
+msgstr "Комментарий"
+
+#: build/lib/core/models.py:1366 core/models.py:1366
+msgid "Comments"
+msgstr "Комментарии"
+
+#: build/lib/core/models.py:1415 core/models.py:1415
+msgid "This emoji has already been reacted to this comment."
+msgstr "Этот эмодзи уже использован в этом комментарии."
+
+#: build/lib/core/models.py:1419 core/models.py:1419
+msgid "Reaction"
+msgstr "Реакция"
+
+#: build/lib/core/models.py:1420 core/models.py:1420
+msgid "Reactions"
+msgstr "Реакции"
+
+#: build/lib/core/models.py:1431 core/models.py:1431
msgid "description"
msgstr "описание"
-#: build/lib/core/models.py:1278 core/models.py:1278
+#: build/lib/core/models.py:1432 core/models.py:1432
msgid "code"
msgstr "код"
-#: build/lib/core/models.py:1279 core/models.py:1279
+#: build/lib/core/models.py:1433 core/models.py:1433
msgid "css"
msgstr "css"
-#: build/lib/core/models.py:1281 core/models.py:1281
+#: build/lib/core/models.py:1435 core/models.py:1435
msgid "public"
msgstr "доступно всем"
-#: build/lib/core/models.py:1283 core/models.py:1283
+#: build/lib/core/models.py:1437 core/models.py:1437
msgid "Whether this template is public for anyone to use."
msgstr "Этот шаблон доступен всем пользователям."
-#: build/lib/core/models.py:1289 core/models.py:1289
+#: build/lib/core/models.py:1443 core/models.py:1443
msgid "Template"
msgstr "Шаблон"
-#: build/lib/core/models.py:1290 core/models.py:1290
+#: build/lib/core/models.py:1444 core/models.py:1444
msgid "Templates"
msgstr "Шаблоны"
-#: build/lib/core/models.py:1343 core/models.py:1343
+#: build/lib/core/models.py:1497 core/models.py:1497
msgid "Template/user relation"
msgstr "Отношение шаблон/пользователь"
-#: build/lib/core/models.py:1344 core/models.py:1344
+#: build/lib/core/models.py:1498 core/models.py:1498
msgid "Template/user relations"
msgstr "Отношения шаблон/пользователь"
-#: build/lib/core/models.py:1350 core/models.py:1350
+#: build/lib/core/models.py:1504 core/models.py:1504
msgid "This user is already in this template."
msgstr "Этот пользователь уже указан в этом шаблоне."
-#: build/lib/core/models.py:1356 core/models.py:1356
+#: build/lib/core/models.py:1510 core/models.py:1510
msgid "This team is already in this template."
msgstr "Эта команда уже указана в этом шаблоне."
-#: build/lib/core/models.py:1433 core/models.py:1433
+#: build/lib/core/models.py:1587 core/models.py:1587
msgid "email address"
msgstr "адрес электронной почты"
-#: build/lib/core/models.py:1452 core/models.py:1452
+#: build/lib/core/models.py:1606 core/models.py:1606
msgid "Document invitation"
msgstr "Приглашение для документа"
-#: build/lib/core/models.py:1453 core/models.py:1453
+#: build/lib/core/models.py:1607 core/models.py:1607
msgid "Document invitations"
msgstr "Приглашения для документов"
-#: build/lib/core/models.py:1473 core/models.py:1473
+#: build/lib/core/models.py:1627 core/models.py:1627
msgid "This email is already associated to a registered user."
msgstr "Этот адрес уже связан с зарегистрированным пользователем."
diff --git a/src/backend/locale/sl_SI/LC_MESSAGES/django.po b/src/backend/locale/sl_SI/LC_MESSAGES/django.po
index 37a77cef5c..36f0255e94 100644
--- a/src/backend/locale/sl_SI/LC_MESSAGES/django.po
+++ b/src/backend/locale/sl_SI/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: lasuite-docs\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2025-11-17 08:04+0000\n"
-"PO-Revision-Date: 2025-11-19 10:13\n"
+"POT-Creation-Date: 2025-11-20 14:08+0000\n"
+"PO-Revision-Date: 2025-11-26 13:33\n"
"Last-Translator: \n"
"Language-Team: Slovenian\n"
"Language: sl_SI\n"
@@ -50,67 +50,72 @@ msgstr ""
msgid "Favorite"
msgstr "Priljubljena"
-#: build/lib/core/api/serializers.py:496 core/api/serializers.py:496
+#: build/lib/core/api/serializers.py:497 core/api/serializers.py:497
msgid "A new document was created on your behalf!"
msgstr "Nov dokument je bil ustvarjen v vašem imenu!"
-#: build/lib/core/api/serializers.py:500 core/api/serializers.py:500
+#: build/lib/core/api/serializers.py:501 core/api/serializers.py:501
msgid "You have been granted ownership of a new document:"
msgstr "Dodeljeno vam je bilo lastništvo nad novim dokumentom:"
-#: build/lib/core/api/serializers.py:536 core/api/serializers.py:536
+#: build/lib/core/api/serializers.py:537 core/api/serializers.py:537
msgid "This field is required."
msgstr ""
-#: build/lib/core/api/serializers.py:547 core/api/serializers.py:547
+#: build/lib/core/api/serializers.py:548 core/api/serializers.py:548
#, python-format
msgid "Link reach '%(link_reach)s' is not allowed based on parent document configuration."
msgstr ""
-#: build/lib/core/api/serializers.py:693 core/api/serializers.py:693
+#: build/lib/core/api/serializers.py:694 core/api/serializers.py:694
msgid "Body"
msgstr "Telo"
-#: build/lib/core/api/serializers.py:696 core/api/serializers.py:696
+#: build/lib/core/api/serializers.py:697 core/api/serializers.py:697
msgid "Body type"
msgstr "Vrsta telesa"
-#: build/lib/core/api/serializers.py:702 core/api/serializers.py:702
+#: build/lib/core/api/serializers.py:703 core/api/serializers.py:703
msgid "Format"
msgstr "Oblika"
-#: build/lib/core/api/viewsets.py:1003 core/api/viewsets.py:1003
+#: build/lib/core/api/viewsets.py:1004 core/api/viewsets.py:1004
#, python-brace-format
msgid "copy of {title}"
msgstr ""
-#: build/lib/core/choices.py:35 build/lib/core/choices.py:42 core/choices.py:35
-#: core/choices.py:42
+#: build/lib/core/choices.py:35 build/lib/core/choices.py:43 core/choices.py:35
+#: core/choices.py:43
msgid "Reader"
msgstr "Bralec"
-#: build/lib/core/choices.py:36 build/lib/core/choices.py:43 core/choices.py:36
-#: core/choices.py:43
+#: build/lib/core/choices.py:36 build/lib/core/choices.py:44 core/choices.py:36
+#: core/choices.py:44
+msgid "Commenter"
+msgstr ""
+
+#: build/lib/core/choices.py:37 build/lib/core/choices.py:45 core/choices.py:37
+#: core/choices.py:45
msgid "Editor"
msgstr "Urednik"
-#: build/lib/core/choices.py:44 core/choices.py:44
+#: build/lib/core/choices.py:46 core/choices.py:46
msgid "Administrator"
msgstr "Skrbnik"
-#: build/lib/core/choices.py:45 core/choices.py:45
+#: build/lib/core/choices.py:47 core/choices.py:47
msgid "Owner"
msgstr "Lastnik"
-#: build/lib/core/choices.py:56 core/choices.py:56
+#: build/lib/core/choices.py:58 core/choices.py:58
msgid "Restricted"
msgstr "Omejeno"
-#: build/lib/core/choices.py:60 core/choices.py:60
+#: build/lib/core/choices.py:62 core/choices.py:62
msgid "Authenticated"
msgstr "Preverjeno"
-#: build/lib/core/choices.py:62 core/choices.py:62
+#: build/lib/core/choices.py:64 core/choices.py:64
msgid "Public"
msgstr "Javno"
@@ -234,8 +239,8 @@ msgstr "uporabnik"
msgid "users"
msgstr "uporabniki"
-#: build/lib/core/models.py:361 build/lib/core/models.py:1276
-#: core/models.py:361 core/models.py:1276
+#: build/lib/core/models.py:361 build/lib/core/models.py:1430
+#: core/models.py:361 core/models.py:1430
msgid "title"
msgstr "naslov"
@@ -251,155 +256,188 @@ msgstr "Dokument"
msgid "Documents"
msgstr "Dokumenti"
-#: build/lib/core/models.py:424 build/lib/core/models.py:822 core/models.py:424
-#: core/models.py:822
+#: build/lib/core/models.py:424 build/lib/core/models.py:824 core/models.py:424
+#: core/models.py:824
msgid "Untitled Document"
msgstr "Dokument brez naslova"
-#: build/lib/core/models.py:857 core/models.py:857
+#: build/lib/core/models.py:859 core/models.py:859
#, python-brace-format
msgid "{name} shared a document with you!"
msgstr "{name} je delil dokument z vami!"
-#: build/lib/core/models.py:861 core/models.py:861
+#: build/lib/core/models.py:863 core/models.py:863
#, python-brace-format
msgid "{name} invited you with the role \"{role}\" on the following document:"
msgstr "{name} vas je povabil z vlogo \"{role}\" na naslednjem dokumentu:"
-#: build/lib/core/models.py:867 core/models.py:867
+#: build/lib/core/models.py:869 core/models.py:869
#, python-brace-format
msgid "{name} shared a document with you: {title}"
msgstr "{name} je delil dokument z vami: {title}"
-#: build/lib/core/models.py:967 core/models.py:967
+#: build/lib/core/models.py:969 core/models.py:969
msgid "Document/user link trace"
msgstr "Dokument/sled povezave uporabnika"
-#: build/lib/core/models.py:968 core/models.py:968
+#: build/lib/core/models.py:970 core/models.py:970
msgid "Document/user link traces"
msgstr "Sledi povezav dokumenta/uporabnika"
-#: build/lib/core/models.py:974 core/models.py:974
+#: build/lib/core/models.py:976 core/models.py:976
msgid "A link trace already exists for this document/user."
msgstr "Za ta dokument/uporabnika že obstaja sled povezave."
-#: build/lib/core/models.py:997 core/models.py:997
+#: build/lib/core/models.py:999 core/models.py:999
msgid "Document favorite"
msgstr "Priljubljeni dokument"
-#: build/lib/core/models.py:998 core/models.py:998
+#: build/lib/core/models.py:1000 core/models.py:1000
msgid "Document favorites"
msgstr "Priljubljeni dokumenti"
-#: build/lib/core/models.py:1004 core/models.py:1004
+#: build/lib/core/models.py:1006 core/models.py:1006
msgid "This document is already targeted by a favorite relation instance for the same user."
msgstr "Ta dokument je že ciljno usmerjen s priljubljenim primerkom relacije za istega uporabnika."
-#: build/lib/core/models.py:1026 core/models.py:1026
+#: build/lib/core/models.py:1028 core/models.py:1028
msgid "Document/user relation"
msgstr "Odnos dokument/uporabnik"
-#: build/lib/core/models.py:1027 core/models.py:1027
+#: build/lib/core/models.py:1029 core/models.py:1029
msgid "Document/user relations"
msgstr "Odnosi dokument/uporabnik"
-#: build/lib/core/models.py:1033 core/models.py:1033
+#: build/lib/core/models.py:1035 core/models.py:1035
msgid "This user is already in this document."
msgstr "Ta uporabnik je že v tem dokumentu."
-#: build/lib/core/models.py:1039 core/models.py:1039
+#: build/lib/core/models.py:1041 core/models.py:1041
msgid "This team is already in this document."
msgstr "Ta ekipa je že v tem dokumentu."
-#: build/lib/core/models.py:1045 build/lib/core/models.py:1362
-#: core/models.py:1045 core/models.py:1362
+#: build/lib/core/models.py:1047 build/lib/core/models.py:1516
+#: core/models.py:1047 core/models.py:1516
msgid "Either user or team must be set, not both."
msgstr "Nastaviti je treba bodisi uporabnika ali ekipo, a ne obojega."
-#: build/lib/core/models.py:1191 core/models.py:1191
+#: build/lib/core/models.py:1198 core/models.py:1198
msgid "Document ask for access"
msgstr ""
-#: build/lib/core/models.py:1192 core/models.py:1192
+#: build/lib/core/models.py:1199 core/models.py:1199
msgid "Document ask for accesses"
msgstr ""
-#: build/lib/core/models.py:1198 core/models.py:1198
+#: build/lib/core/models.py:1205 core/models.py:1205
msgid "This user has already asked for access to this document."
msgstr ""
-#: build/lib/core/models.py:1255 core/models.py:1255
+#: build/lib/core/models.py:1262 core/models.py:1262
#, python-brace-format
msgid "{name} would like access to a document!"
msgstr ""
-#: build/lib/core/models.py:1259 core/models.py:1259
+#: build/lib/core/models.py:1266 core/models.py:1266
#, python-brace-format
msgid "{name} would like access to the following document:"
msgstr ""
-#: build/lib/core/models.py:1265 core/models.py:1265
+#: build/lib/core/models.py:1272 core/models.py:1272
#, python-brace-format
msgid "{name} is asking for access to the document: {title}"
msgstr ""
-#: build/lib/core/models.py:1277 core/models.py:1277
+#: build/lib/core/models.py:1314 core/models.py:1314
+msgid "Thread"
+msgstr ""
+
+#: build/lib/core/models.py:1315 core/models.py:1315
+msgid "Threads"
+msgstr ""
+
+#: build/lib/core/models.py:1318 build/lib/core/models.py:1370
+#: core/models.py:1318 core/models.py:1370
+msgid "Anonymous"
+msgstr ""
+
+#: build/lib/core/models.py:1365 core/models.py:1365
+msgid "Comment"
+msgstr ""
+
+#: build/lib/core/models.py:1366 core/models.py:1366
+msgid "Comments"
+msgstr ""
+
+#: build/lib/core/models.py:1415 core/models.py:1415
+msgid "This emoji has already been reacted to this comment."
+msgstr ""
+
+#: build/lib/core/models.py:1419 core/models.py:1419
+msgid "Reaction"
+msgstr ""
+
+#: build/lib/core/models.py:1420 core/models.py:1420
+msgid "Reactions"
+msgstr ""
+
+#: build/lib/core/models.py:1431 core/models.py:1431
msgid "description"
msgstr "opis"
-#: build/lib/core/models.py:1278 core/models.py:1278
+#: build/lib/core/models.py:1432 core/models.py:1432
msgid "code"
msgstr "koda"
-#: build/lib/core/models.py:1279 core/models.py:1279
+#: build/lib/core/models.py:1433 core/models.py:1433
msgid "css"
msgstr "css"
-#: build/lib/core/models.py:1281 core/models.py:1281
+#: build/lib/core/models.py:1435 core/models.py:1435
msgid "public"
msgstr "javno"
-#: build/lib/core/models.py:1283 core/models.py:1283
+#: build/lib/core/models.py:1437 core/models.py:1437
msgid "Whether this template is public for anyone to use."
msgstr "Ali je ta predloga javna za uporabo."
-#: build/lib/core/models.py:1289 core/models.py:1289
+#: build/lib/core/models.py:1443 core/models.py:1443
msgid "Template"
msgstr "Predloga"
-#: build/lib/core/models.py:1290 core/models.py:1290
+#: build/lib/core/models.py:1444 core/models.py:1444
msgid "Templates"
msgstr "Predloge"
-#: build/lib/core/models.py:1343 core/models.py:1343
+#: build/lib/core/models.py:1497 core/models.py:1497
msgid "Template/user relation"
msgstr "Odnos predloga/uporabnik"
-#: build/lib/core/models.py:1344 core/models.py:1344
+#: build/lib/core/models.py:1498 core/models.py:1498
msgid "Template/user relations"
msgstr "Odnosi med predlogo in uporabnikom"
-#: build/lib/core/models.py:1350 core/models.py:1350
+#: build/lib/core/models.py:1504 core/models.py:1504
msgid "This user is already in this template."
msgstr "Ta uporabnik je že v tej predlogi."
-#: build/lib/core/models.py:1356 core/models.py:1356
+#: build/lib/core/models.py:1510 core/models.py:1510
msgid "This team is already in this template."
msgstr "Ta ekipa je že v tej predlogi."
-#: build/lib/core/models.py:1433 core/models.py:1433
+#: build/lib/core/models.py:1587 core/models.py:1587
msgid "email address"
msgstr "elektronski naslov"
-#: build/lib/core/models.py:1452 core/models.py:1452
+#: build/lib/core/models.py:1606 core/models.py:1606
msgid "Document invitation"
msgstr "Vabilo na dokument"
-#: build/lib/core/models.py:1453 core/models.py:1453
+#: build/lib/core/models.py:1607 core/models.py:1607
msgid "Document invitations"
msgstr "Vabila na dokument"
-#: build/lib/core/models.py:1473 core/models.py:1473
+#: build/lib/core/models.py:1627 core/models.py:1627
msgid "This email is already associated to a registered user."
msgstr "Ta e-poštni naslov je že povezan z registriranim uporabnikom."
diff --git a/src/backend/locale/sv_SE/LC_MESSAGES/django.po b/src/backend/locale/sv_SE/LC_MESSAGES/django.po
index bc8d627be4..2dd328a36c 100644
--- a/src/backend/locale/sv_SE/LC_MESSAGES/django.po
+++ b/src/backend/locale/sv_SE/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: lasuite-docs\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2025-11-17 08:04+0000\n"
-"PO-Revision-Date: 2025-11-19 10:13\n"
+"POT-Creation-Date: 2025-11-20 14:08+0000\n"
+"PO-Revision-Date: 2025-11-26 13:33\n"
"Last-Translator: \n"
"Language-Team: Swedish\n"
"Language: sv_SE\n"
@@ -50,67 +50,72 @@ msgstr ""
msgid "Favorite"
msgstr "Favoriter"
-#: build/lib/core/api/serializers.py:496 core/api/serializers.py:496
+#: build/lib/core/api/serializers.py:497 core/api/serializers.py:497
msgid "A new document was created on your behalf!"
msgstr "Ett nytt dokument skapades åt dig!"
-#: build/lib/core/api/serializers.py:500 core/api/serializers.py:500
+#: build/lib/core/api/serializers.py:501 core/api/serializers.py:501
msgid "You have been granted ownership of a new document:"
msgstr "Du har beviljats äganderätt till ett nytt dokument:"
-#: build/lib/core/api/serializers.py:536 core/api/serializers.py:536
+#: build/lib/core/api/serializers.py:537 core/api/serializers.py:537
msgid "This field is required."
msgstr ""
-#: build/lib/core/api/serializers.py:547 core/api/serializers.py:547
+#: build/lib/core/api/serializers.py:548 core/api/serializers.py:548
#, python-format
msgid "Link reach '%(link_reach)s' is not allowed based on parent document configuration."
msgstr ""
-#: build/lib/core/api/serializers.py:693 core/api/serializers.py:693
+#: build/lib/core/api/serializers.py:694 core/api/serializers.py:694
msgid "Body"
msgstr ""
-#: build/lib/core/api/serializers.py:696 core/api/serializers.py:696
+#: build/lib/core/api/serializers.py:697 core/api/serializers.py:697
msgid "Body type"
msgstr ""
-#: build/lib/core/api/serializers.py:702 core/api/serializers.py:702
+#: build/lib/core/api/serializers.py:703 core/api/serializers.py:703
msgid "Format"
msgstr "Format"
-#: build/lib/core/api/viewsets.py:1003 core/api/viewsets.py:1003
+#: build/lib/core/api/viewsets.py:1004 core/api/viewsets.py:1004
#, python-brace-format
msgid "copy of {title}"
msgstr ""
-#: build/lib/core/choices.py:35 build/lib/core/choices.py:42 core/choices.py:35
-#: core/choices.py:42
+#: build/lib/core/choices.py:35 build/lib/core/choices.py:43 core/choices.py:35
+#: core/choices.py:43
msgid "Reader"
msgstr ""
-#: build/lib/core/choices.py:36 build/lib/core/choices.py:43 core/choices.py:36
-#: core/choices.py:43
+#: build/lib/core/choices.py:36 build/lib/core/choices.py:44 core/choices.py:36
+#: core/choices.py:44
+msgid "Commenter"
+msgstr ""
+
+#: build/lib/core/choices.py:37 build/lib/core/choices.py:45 core/choices.py:37
+#: core/choices.py:45
msgid "Editor"
msgstr ""
-#: build/lib/core/choices.py:44 core/choices.py:44
+#: build/lib/core/choices.py:46 core/choices.py:46
msgid "Administrator"
msgstr "Administratör"
-#: build/lib/core/choices.py:45 core/choices.py:45
+#: build/lib/core/choices.py:47 core/choices.py:47
msgid "Owner"
msgstr ""
-#: build/lib/core/choices.py:56 core/choices.py:56
+#: build/lib/core/choices.py:58 core/choices.py:58
msgid "Restricted"
msgstr ""
-#: build/lib/core/choices.py:60 core/choices.py:60
+#: build/lib/core/choices.py:62 core/choices.py:62
msgid "Authenticated"
msgstr ""
-#: build/lib/core/choices.py:62 core/choices.py:62
+#: build/lib/core/choices.py:64 core/choices.py:64
msgid "Public"
msgstr "Publik"
@@ -234,8 +239,8 @@ msgstr ""
msgid "users"
msgstr ""
-#: build/lib/core/models.py:361 build/lib/core/models.py:1276
-#: core/models.py:361 core/models.py:1276
+#: build/lib/core/models.py:361 build/lib/core/models.py:1430
+#: core/models.py:361 core/models.py:1430
msgid "title"
msgstr ""
@@ -251,155 +256,188 @@ msgstr ""
msgid "Documents"
msgstr ""
-#: build/lib/core/models.py:424 build/lib/core/models.py:822 core/models.py:424
-#: core/models.py:822
+#: build/lib/core/models.py:424 build/lib/core/models.py:824 core/models.py:424
+#: core/models.py:824
msgid "Untitled Document"
msgstr ""
-#: build/lib/core/models.py:857 core/models.py:857
+#: build/lib/core/models.py:859 core/models.py:859
#, python-brace-format
msgid "{name} shared a document with you!"
msgstr ""
-#: build/lib/core/models.py:861 core/models.py:861
+#: build/lib/core/models.py:863 core/models.py:863
#, python-brace-format
msgid "{name} invited you with the role \"{role}\" on the following document:"
msgstr ""
-#: build/lib/core/models.py:867 core/models.py:867
+#: build/lib/core/models.py:869 core/models.py:869
#, python-brace-format
msgid "{name} shared a document with you: {title}"
msgstr ""
-#: build/lib/core/models.py:967 core/models.py:967
+#: build/lib/core/models.py:969 core/models.py:969
msgid "Document/user link trace"
msgstr ""
-#: build/lib/core/models.py:968 core/models.py:968
+#: build/lib/core/models.py:970 core/models.py:970
msgid "Document/user link traces"
msgstr ""
-#: build/lib/core/models.py:974 core/models.py:974
+#: build/lib/core/models.py:976 core/models.py:976
msgid "A link trace already exists for this document/user."
msgstr ""
-#: build/lib/core/models.py:997 core/models.py:997
+#: build/lib/core/models.py:999 core/models.py:999
msgid "Document favorite"
msgstr ""
-#: build/lib/core/models.py:998 core/models.py:998
+#: build/lib/core/models.py:1000 core/models.py:1000
msgid "Document favorites"
msgstr ""
-#: build/lib/core/models.py:1004 core/models.py:1004
+#: build/lib/core/models.py:1006 core/models.py:1006
msgid "This document is already targeted by a favorite relation instance for the same user."
msgstr ""
-#: build/lib/core/models.py:1026 core/models.py:1026
+#: build/lib/core/models.py:1028 core/models.py:1028
msgid "Document/user relation"
msgstr ""
-#: build/lib/core/models.py:1027 core/models.py:1027
+#: build/lib/core/models.py:1029 core/models.py:1029
msgid "Document/user relations"
msgstr ""
-#: build/lib/core/models.py:1033 core/models.py:1033
+#: build/lib/core/models.py:1035 core/models.py:1035
msgid "This user is already in this document."
msgstr ""
-#: build/lib/core/models.py:1039 core/models.py:1039
+#: build/lib/core/models.py:1041 core/models.py:1041
msgid "This team is already in this document."
msgstr ""
-#: build/lib/core/models.py:1045 build/lib/core/models.py:1362
-#: core/models.py:1045 core/models.py:1362
+#: build/lib/core/models.py:1047 build/lib/core/models.py:1516
+#: core/models.py:1047 core/models.py:1516
msgid "Either user or team must be set, not both."
msgstr ""
-#: build/lib/core/models.py:1191 core/models.py:1191
+#: build/lib/core/models.py:1198 core/models.py:1198
msgid "Document ask for access"
msgstr ""
-#: build/lib/core/models.py:1192 core/models.py:1192
+#: build/lib/core/models.py:1199 core/models.py:1199
msgid "Document ask for accesses"
msgstr ""
-#: build/lib/core/models.py:1198 core/models.py:1198
+#: build/lib/core/models.py:1205 core/models.py:1205
msgid "This user has already asked for access to this document."
msgstr ""
-#: build/lib/core/models.py:1255 core/models.py:1255
+#: build/lib/core/models.py:1262 core/models.py:1262
#, python-brace-format
msgid "{name} would like access to a document!"
msgstr ""
-#: build/lib/core/models.py:1259 core/models.py:1259
+#: build/lib/core/models.py:1266 core/models.py:1266
#, python-brace-format
msgid "{name} would like access to the following document:"
msgstr ""
-#: build/lib/core/models.py:1265 core/models.py:1265
+#: build/lib/core/models.py:1272 core/models.py:1272
#, python-brace-format
msgid "{name} is asking for access to the document: {title}"
msgstr ""
-#: build/lib/core/models.py:1277 core/models.py:1277
+#: build/lib/core/models.py:1314 core/models.py:1314
+msgid "Thread"
+msgstr ""
+
+#: build/lib/core/models.py:1315 core/models.py:1315
+msgid "Threads"
+msgstr ""
+
+#: build/lib/core/models.py:1318 build/lib/core/models.py:1370
+#: core/models.py:1318 core/models.py:1370
+msgid "Anonymous"
+msgstr ""
+
+#: build/lib/core/models.py:1365 core/models.py:1365
+msgid "Comment"
+msgstr ""
+
+#: build/lib/core/models.py:1366 core/models.py:1366
+msgid "Comments"
+msgstr ""
+
+#: build/lib/core/models.py:1415 core/models.py:1415
+msgid "This emoji has already been reacted to this comment."
+msgstr ""
+
+#: build/lib/core/models.py:1419 core/models.py:1419
+msgid "Reaction"
+msgstr ""
+
+#: build/lib/core/models.py:1420 core/models.py:1420
+msgid "Reactions"
+msgstr ""
+
+#: build/lib/core/models.py:1431 core/models.py:1431
msgid "description"
msgstr ""
-#: build/lib/core/models.py:1278 core/models.py:1278
+#: build/lib/core/models.py:1432 core/models.py:1432
msgid "code"
msgstr ""
-#: build/lib/core/models.py:1279 core/models.py:1279
+#: build/lib/core/models.py:1433 core/models.py:1433
msgid "css"
msgstr ""
-#: build/lib/core/models.py:1281 core/models.py:1281
+#: build/lib/core/models.py:1435 core/models.py:1435
msgid "public"
msgstr ""
-#: build/lib/core/models.py:1283 core/models.py:1283
+#: build/lib/core/models.py:1437 core/models.py:1437
msgid "Whether this template is public for anyone to use."
msgstr ""
-#: build/lib/core/models.py:1289 core/models.py:1289
+#: build/lib/core/models.py:1443 core/models.py:1443
msgid "Template"
msgstr ""
-#: build/lib/core/models.py:1290 core/models.py:1290
+#: build/lib/core/models.py:1444 core/models.py:1444
msgid "Templates"
msgstr ""
-#: build/lib/core/models.py:1343 core/models.py:1343
+#: build/lib/core/models.py:1497 core/models.py:1497
msgid "Template/user relation"
msgstr ""
-#: build/lib/core/models.py:1344 core/models.py:1344
+#: build/lib/core/models.py:1498 core/models.py:1498
msgid "Template/user relations"
msgstr ""
-#: build/lib/core/models.py:1350 core/models.py:1350
+#: build/lib/core/models.py:1504 core/models.py:1504
msgid "This user is already in this template."
msgstr ""
-#: build/lib/core/models.py:1356 core/models.py:1356
+#: build/lib/core/models.py:1510 core/models.py:1510
msgid "This team is already in this template."
msgstr ""
-#: build/lib/core/models.py:1433 core/models.py:1433
+#: build/lib/core/models.py:1587 core/models.py:1587
msgid "email address"
msgstr "e-postadress"
-#: build/lib/core/models.py:1452 core/models.py:1452
+#: build/lib/core/models.py:1606 core/models.py:1606
msgid "Document invitation"
msgstr "Bjud in dokument"
-#: build/lib/core/models.py:1453 core/models.py:1453
+#: build/lib/core/models.py:1607 core/models.py:1607
msgid "Document invitations"
msgstr "Inbjudningar dokument"
-#: build/lib/core/models.py:1473 core/models.py:1473
+#: build/lib/core/models.py:1627 core/models.py:1627
msgid "This email is already associated to a registered user."
msgstr "Denna e-postadress är redan associerad med en registrerad användare."
diff --git a/src/backend/locale/tr_TR/LC_MESSAGES/django.po b/src/backend/locale/tr_TR/LC_MESSAGES/django.po
index a18abec0ee..b6ddd5c008 100644
--- a/src/backend/locale/tr_TR/LC_MESSAGES/django.po
+++ b/src/backend/locale/tr_TR/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: lasuite-docs\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2025-11-17 08:04+0000\n"
-"PO-Revision-Date: 2025-11-19 10:13\n"
+"POT-Creation-Date: 2025-11-20 14:08+0000\n"
+"PO-Revision-Date: 2025-11-26 13:33\n"
"Last-Translator: \n"
"Language-Team: Turkish\n"
"Language: tr_TR\n"
@@ -50,67 +50,72 @@ msgstr ""
msgid "Favorite"
msgstr ""
-#: build/lib/core/api/serializers.py:496 core/api/serializers.py:496
+#: build/lib/core/api/serializers.py:497 core/api/serializers.py:497
msgid "A new document was created on your behalf!"
msgstr ""
-#: build/lib/core/api/serializers.py:500 core/api/serializers.py:500
+#: build/lib/core/api/serializers.py:501 core/api/serializers.py:501
msgid "You have been granted ownership of a new document:"
msgstr ""
-#: build/lib/core/api/serializers.py:536 core/api/serializers.py:536
+#: build/lib/core/api/serializers.py:537 core/api/serializers.py:537
msgid "This field is required."
msgstr ""
-#: build/lib/core/api/serializers.py:547 core/api/serializers.py:547
+#: build/lib/core/api/serializers.py:548 core/api/serializers.py:548
#, python-format
msgid "Link reach '%(link_reach)s' is not allowed based on parent document configuration."
msgstr ""
-#: build/lib/core/api/serializers.py:693 core/api/serializers.py:693
+#: build/lib/core/api/serializers.py:694 core/api/serializers.py:694
msgid "Body"
msgstr ""
-#: build/lib/core/api/serializers.py:696 core/api/serializers.py:696
+#: build/lib/core/api/serializers.py:697 core/api/serializers.py:697
msgid "Body type"
msgstr ""
-#: build/lib/core/api/serializers.py:702 core/api/serializers.py:702
+#: build/lib/core/api/serializers.py:703 core/api/serializers.py:703
msgid "Format"
msgstr ""
-#: build/lib/core/api/viewsets.py:1003 core/api/viewsets.py:1003
+#: build/lib/core/api/viewsets.py:1004 core/api/viewsets.py:1004
#, python-brace-format
msgid "copy of {title}"
msgstr ""
-#: build/lib/core/choices.py:35 build/lib/core/choices.py:42 core/choices.py:35
-#: core/choices.py:42
+#: build/lib/core/choices.py:35 build/lib/core/choices.py:43 core/choices.py:35
+#: core/choices.py:43
msgid "Reader"
msgstr ""
-#: build/lib/core/choices.py:36 build/lib/core/choices.py:43 core/choices.py:36
-#: core/choices.py:43
+#: build/lib/core/choices.py:36 build/lib/core/choices.py:44 core/choices.py:36
+#: core/choices.py:44
+msgid "Commenter"
+msgstr ""
+
+#: build/lib/core/choices.py:37 build/lib/core/choices.py:45 core/choices.py:37
+#: core/choices.py:45
msgid "Editor"
msgstr ""
-#: build/lib/core/choices.py:44 core/choices.py:44
+#: build/lib/core/choices.py:46 core/choices.py:46
msgid "Administrator"
msgstr ""
-#: build/lib/core/choices.py:45 core/choices.py:45
+#: build/lib/core/choices.py:47 core/choices.py:47
msgid "Owner"
msgstr ""
-#: build/lib/core/choices.py:56 core/choices.py:56
+#: build/lib/core/choices.py:58 core/choices.py:58
msgid "Restricted"
msgstr ""
-#: build/lib/core/choices.py:60 core/choices.py:60
+#: build/lib/core/choices.py:62 core/choices.py:62
msgid "Authenticated"
msgstr ""
-#: build/lib/core/choices.py:62 core/choices.py:62
+#: build/lib/core/choices.py:64 core/choices.py:64
msgid "Public"
msgstr ""
@@ -234,8 +239,8 @@ msgstr ""
msgid "users"
msgstr ""
-#: build/lib/core/models.py:361 build/lib/core/models.py:1276
-#: core/models.py:361 core/models.py:1276
+#: build/lib/core/models.py:361 build/lib/core/models.py:1430
+#: core/models.py:361 core/models.py:1430
msgid "title"
msgstr ""
@@ -251,155 +256,188 @@ msgstr ""
msgid "Documents"
msgstr ""
-#: build/lib/core/models.py:424 build/lib/core/models.py:822 core/models.py:424
-#: core/models.py:822
+#: build/lib/core/models.py:424 build/lib/core/models.py:824 core/models.py:424
+#: core/models.py:824
msgid "Untitled Document"
msgstr ""
-#: build/lib/core/models.py:857 core/models.py:857
+#: build/lib/core/models.py:859 core/models.py:859
#, python-brace-format
msgid "{name} shared a document with you!"
msgstr ""
-#: build/lib/core/models.py:861 core/models.py:861
+#: build/lib/core/models.py:863 core/models.py:863
#, python-brace-format
msgid "{name} invited you with the role \"{role}\" on the following document:"
msgstr ""
-#: build/lib/core/models.py:867 core/models.py:867
+#: build/lib/core/models.py:869 core/models.py:869
#, python-brace-format
msgid "{name} shared a document with you: {title}"
msgstr ""
-#: build/lib/core/models.py:967 core/models.py:967
+#: build/lib/core/models.py:969 core/models.py:969
msgid "Document/user link trace"
msgstr ""
-#: build/lib/core/models.py:968 core/models.py:968
+#: build/lib/core/models.py:970 core/models.py:970
msgid "Document/user link traces"
msgstr ""
-#: build/lib/core/models.py:974 core/models.py:974
+#: build/lib/core/models.py:976 core/models.py:976
msgid "A link trace already exists for this document/user."
msgstr ""
-#: build/lib/core/models.py:997 core/models.py:997
+#: build/lib/core/models.py:999 core/models.py:999
msgid "Document favorite"
msgstr ""
-#: build/lib/core/models.py:998 core/models.py:998
+#: build/lib/core/models.py:1000 core/models.py:1000
msgid "Document favorites"
msgstr ""
-#: build/lib/core/models.py:1004 core/models.py:1004
+#: build/lib/core/models.py:1006 core/models.py:1006
msgid "This document is already targeted by a favorite relation instance for the same user."
msgstr ""
-#: build/lib/core/models.py:1026 core/models.py:1026
+#: build/lib/core/models.py:1028 core/models.py:1028
msgid "Document/user relation"
msgstr ""
-#: build/lib/core/models.py:1027 core/models.py:1027
+#: build/lib/core/models.py:1029 core/models.py:1029
msgid "Document/user relations"
msgstr ""
-#: build/lib/core/models.py:1033 core/models.py:1033
+#: build/lib/core/models.py:1035 core/models.py:1035
msgid "This user is already in this document."
msgstr ""
-#: build/lib/core/models.py:1039 core/models.py:1039
+#: build/lib/core/models.py:1041 core/models.py:1041
msgid "This team is already in this document."
msgstr ""
-#: build/lib/core/models.py:1045 build/lib/core/models.py:1362
-#: core/models.py:1045 core/models.py:1362
+#: build/lib/core/models.py:1047 build/lib/core/models.py:1516
+#: core/models.py:1047 core/models.py:1516
msgid "Either user or team must be set, not both."
msgstr ""
-#: build/lib/core/models.py:1191 core/models.py:1191
+#: build/lib/core/models.py:1198 core/models.py:1198
msgid "Document ask for access"
msgstr ""
-#: build/lib/core/models.py:1192 core/models.py:1192
+#: build/lib/core/models.py:1199 core/models.py:1199
msgid "Document ask for accesses"
msgstr ""
-#: build/lib/core/models.py:1198 core/models.py:1198
+#: build/lib/core/models.py:1205 core/models.py:1205
msgid "This user has already asked for access to this document."
msgstr ""
-#: build/lib/core/models.py:1255 core/models.py:1255
+#: build/lib/core/models.py:1262 core/models.py:1262
#, python-brace-format
msgid "{name} would like access to a document!"
msgstr ""
-#: build/lib/core/models.py:1259 core/models.py:1259
+#: build/lib/core/models.py:1266 core/models.py:1266
#, python-brace-format
msgid "{name} would like access to the following document:"
msgstr ""
-#: build/lib/core/models.py:1265 core/models.py:1265
+#: build/lib/core/models.py:1272 core/models.py:1272
#, python-brace-format
msgid "{name} is asking for access to the document: {title}"
msgstr ""
-#: build/lib/core/models.py:1277 core/models.py:1277
+#: build/lib/core/models.py:1314 core/models.py:1314
+msgid "Thread"
+msgstr ""
+
+#: build/lib/core/models.py:1315 core/models.py:1315
+msgid "Threads"
+msgstr ""
+
+#: build/lib/core/models.py:1318 build/lib/core/models.py:1370
+#: core/models.py:1318 core/models.py:1370
+msgid "Anonymous"
+msgstr ""
+
+#: build/lib/core/models.py:1365 core/models.py:1365
+msgid "Comment"
+msgstr ""
+
+#: build/lib/core/models.py:1366 core/models.py:1366
+msgid "Comments"
+msgstr ""
+
+#: build/lib/core/models.py:1415 core/models.py:1415
+msgid "This emoji has already been reacted to this comment."
+msgstr ""
+
+#: build/lib/core/models.py:1419 core/models.py:1419
+msgid "Reaction"
+msgstr ""
+
+#: build/lib/core/models.py:1420 core/models.py:1420
+msgid "Reactions"
+msgstr ""
+
+#: build/lib/core/models.py:1431 core/models.py:1431
msgid "description"
msgstr ""
-#: build/lib/core/models.py:1278 core/models.py:1278
+#: build/lib/core/models.py:1432 core/models.py:1432
msgid "code"
msgstr ""
-#: build/lib/core/models.py:1279 core/models.py:1279
+#: build/lib/core/models.py:1433 core/models.py:1433
msgid "css"
msgstr ""
-#: build/lib/core/models.py:1281 core/models.py:1281
+#: build/lib/core/models.py:1435 core/models.py:1435
msgid "public"
msgstr ""
-#: build/lib/core/models.py:1283 core/models.py:1283
+#: build/lib/core/models.py:1437 core/models.py:1437
msgid "Whether this template is public for anyone to use."
msgstr ""
-#: build/lib/core/models.py:1289 core/models.py:1289
+#: build/lib/core/models.py:1443 core/models.py:1443
msgid "Template"
msgstr ""
-#: build/lib/core/models.py:1290 core/models.py:1290
+#: build/lib/core/models.py:1444 core/models.py:1444
msgid "Templates"
msgstr ""
-#: build/lib/core/models.py:1343 core/models.py:1343
+#: build/lib/core/models.py:1497 core/models.py:1497
msgid "Template/user relation"
msgstr ""
-#: build/lib/core/models.py:1344 core/models.py:1344
+#: build/lib/core/models.py:1498 core/models.py:1498
msgid "Template/user relations"
msgstr ""
-#: build/lib/core/models.py:1350 core/models.py:1350
+#: build/lib/core/models.py:1504 core/models.py:1504
msgid "This user is already in this template."
msgstr ""
-#: build/lib/core/models.py:1356 core/models.py:1356
+#: build/lib/core/models.py:1510 core/models.py:1510
msgid "This team is already in this template."
msgstr ""
-#: build/lib/core/models.py:1433 core/models.py:1433
+#: build/lib/core/models.py:1587 core/models.py:1587
msgid "email address"
msgstr ""
-#: build/lib/core/models.py:1452 core/models.py:1452
+#: build/lib/core/models.py:1606 core/models.py:1606
msgid "Document invitation"
msgstr ""
-#: build/lib/core/models.py:1453 core/models.py:1453
+#: build/lib/core/models.py:1607 core/models.py:1607
msgid "Document invitations"
msgstr ""
-#: build/lib/core/models.py:1473 core/models.py:1473
+#: build/lib/core/models.py:1627 core/models.py:1627
msgid "This email is already associated to a registered user."
msgstr ""
diff --git a/src/backend/locale/uk_UA/LC_MESSAGES/django.po b/src/backend/locale/uk_UA/LC_MESSAGES/django.po
index 6b90d5d5fc..336d168d22 100644
--- a/src/backend/locale/uk_UA/LC_MESSAGES/django.po
+++ b/src/backend/locale/uk_UA/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: lasuite-docs\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2025-11-17 08:04+0000\n"
-"PO-Revision-Date: 2025-11-19 10:13\n"
+"POT-Creation-Date: 2025-11-20 14:08+0000\n"
+"PO-Revision-Date: 2025-11-26 13:33\n"
"Last-Translator: \n"
"Language-Team: Ukrainian\n"
"Language: uk_UA\n"
@@ -50,67 +50,72 @@ msgstr "Приховано"
msgid "Favorite"
msgstr "Обране"
-#: build/lib/core/api/serializers.py:496 core/api/serializers.py:496
+#: build/lib/core/api/serializers.py:497 core/api/serializers.py:497
msgid "A new document was created on your behalf!"
msgstr "Новий документ був створений від вашого імені!"
-#: build/lib/core/api/serializers.py:500 core/api/serializers.py:500
+#: build/lib/core/api/serializers.py:501 core/api/serializers.py:501
msgid "You have been granted ownership of a new document:"
msgstr "Ви тепер є власником нового документа:"
-#: build/lib/core/api/serializers.py:536 core/api/serializers.py:536
+#: build/lib/core/api/serializers.py:537 core/api/serializers.py:537
msgid "This field is required."
msgstr "Це поле є обов’язковим."
-#: build/lib/core/api/serializers.py:547 core/api/serializers.py:547
+#: build/lib/core/api/serializers.py:548 core/api/serializers.py:548
#, python-format
msgid "Link reach '%(link_reach)s' is not allowed based on parent document configuration."
msgstr "Доступ до посилання '%(link_reach)s' заборонено на основі конфігурації батьківського документа."
-#: build/lib/core/api/serializers.py:693 core/api/serializers.py:693
+#: build/lib/core/api/serializers.py:694 core/api/serializers.py:694
msgid "Body"
msgstr "Вміст"
-#: build/lib/core/api/serializers.py:696 core/api/serializers.py:696
+#: build/lib/core/api/serializers.py:697 core/api/serializers.py:697
msgid "Body type"
msgstr "Тип вмісту"
-#: build/lib/core/api/serializers.py:702 core/api/serializers.py:702
+#: build/lib/core/api/serializers.py:703 core/api/serializers.py:703
msgid "Format"
msgstr "Формат"
-#: build/lib/core/api/viewsets.py:1003 core/api/viewsets.py:1003
+#: build/lib/core/api/viewsets.py:1004 core/api/viewsets.py:1004
#, python-brace-format
msgid "copy of {title}"
msgstr "копія {title}"
-#: build/lib/core/choices.py:35 build/lib/core/choices.py:42 core/choices.py:35
-#: core/choices.py:42
+#: build/lib/core/choices.py:35 build/lib/core/choices.py:43 core/choices.py:35
+#: core/choices.py:43
msgid "Reader"
msgstr "Читач"
-#: build/lib/core/choices.py:36 build/lib/core/choices.py:43 core/choices.py:36
-#: core/choices.py:43
+#: build/lib/core/choices.py:36 build/lib/core/choices.py:44 core/choices.py:36
+#: core/choices.py:44
+msgid "Commenter"
+msgstr "Комментар"
+
+#: build/lib/core/choices.py:37 build/lib/core/choices.py:45 core/choices.py:37
+#: core/choices.py:45
msgid "Editor"
msgstr "Редактор"
-#: build/lib/core/choices.py:44 core/choices.py:44
+#: build/lib/core/choices.py:46 core/choices.py:46
msgid "Administrator"
msgstr "Адміністратор"
-#: build/lib/core/choices.py:45 core/choices.py:45
+#: build/lib/core/choices.py:47 core/choices.py:47
msgid "Owner"
msgstr "Власник"
-#: build/lib/core/choices.py:56 core/choices.py:56
+#: build/lib/core/choices.py:58 core/choices.py:58
msgid "Restricted"
msgstr "Обмежено"
-#: build/lib/core/choices.py:60 core/choices.py:60
+#: build/lib/core/choices.py:62 core/choices.py:62
msgid "Authenticated"
msgstr "Підтверджено"
-#: build/lib/core/choices.py:62 core/choices.py:62
+#: build/lib/core/choices.py:64 core/choices.py:64
msgid "Public"
msgstr "Публічне"
@@ -234,8 +239,8 @@ msgstr "користувач"
msgid "users"
msgstr "користувачі"
-#: build/lib/core/models.py:361 build/lib/core/models.py:1276
-#: core/models.py:361 core/models.py:1276
+#: build/lib/core/models.py:361 build/lib/core/models.py:1430
+#: core/models.py:361 core/models.py:1430
msgid "title"
msgstr "заголовок"
@@ -251,155 +256,188 @@ msgstr "Документ"
msgid "Documents"
msgstr "Документи"
-#: build/lib/core/models.py:424 build/lib/core/models.py:822 core/models.py:424
-#: core/models.py:822
+#: build/lib/core/models.py:424 build/lib/core/models.py:824 core/models.py:424
+#: core/models.py:824
msgid "Untitled Document"
msgstr "Документ без назви"
-#: build/lib/core/models.py:857 core/models.py:857
+#: build/lib/core/models.py:859 core/models.py:859
#, python-brace-format
msgid "{name} shared a document with you!"
msgstr "{name} ділиться з вами документом!"
-#: build/lib/core/models.py:861 core/models.py:861
+#: build/lib/core/models.py:863 core/models.py:863
#, python-brace-format
msgid "{name} invited you with the role \"{role}\" on the following document:"
msgstr "{name} запрошує вас для роботи з документом із роллю \"{role}\":"
-#: build/lib/core/models.py:867 core/models.py:867
+#: build/lib/core/models.py:869 core/models.py:869
#, python-brace-format
msgid "{name} shared a document with you: {title}"
msgstr "{name} ділиться з вами документом: {title}"
-#: build/lib/core/models.py:967 core/models.py:967
+#: build/lib/core/models.py:969 core/models.py:969
msgid "Document/user link trace"
msgstr "Трасування посилання Документ/користувач"
-#: build/lib/core/models.py:968 core/models.py:968
+#: build/lib/core/models.py:970 core/models.py:970
msgid "Document/user link traces"
msgstr "Трасування посилань Документ/користувач"
-#: build/lib/core/models.py:974 core/models.py:974
+#: build/lib/core/models.py:976 core/models.py:976
msgid "A link trace already exists for this document/user."
msgstr "Відстеження вже існуючих посилань для цього документа/користувача."
-#: build/lib/core/models.py:997 core/models.py:997
+#: build/lib/core/models.py:999 core/models.py:999
msgid "Document favorite"
msgstr "Обраний документ"
-#: build/lib/core/models.py:998 core/models.py:998
+#: build/lib/core/models.py:1000 core/models.py:1000
msgid "Document favorites"
msgstr "Обрані документи"
-#: build/lib/core/models.py:1004 core/models.py:1004
+#: build/lib/core/models.py:1006 core/models.py:1006
msgid "This document is already targeted by a favorite relation instance for the same user."
msgstr "Цей документ вже вказаний як обраний для одного користувача."
-#: build/lib/core/models.py:1026 core/models.py:1026
+#: build/lib/core/models.py:1028 core/models.py:1028
msgid "Document/user relation"
msgstr "Відносини документ/користувач"
-#: build/lib/core/models.py:1027 core/models.py:1027
+#: build/lib/core/models.py:1029 core/models.py:1029
msgid "Document/user relations"
msgstr "Відносини документ/користувач"
-#: build/lib/core/models.py:1033 core/models.py:1033
+#: build/lib/core/models.py:1035 core/models.py:1035
msgid "This user is already in this document."
msgstr "Цей користувач вже має доступ до цього документу."
-#: build/lib/core/models.py:1039 core/models.py:1039
+#: build/lib/core/models.py:1041 core/models.py:1041
msgid "This team is already in this document."
msgstr "Ця команда вже має доступ до цього документа."
-#: build/lib/core/models.py:1045 build/lib/core/models.py:1362
-#: core/models.py:1045 core/models.py:1362
+#: build/lib/core/models.py:1047 build/lib/core/models.py:1516
+#: core/models.py:1047 core/models.py:1516
msgid "Either user or team must be set, not both."
msgstr "Вкажіть користувача або команду, а не обох."
-#: build/lib/core/models.py:1191 core/models.py:1191
+#: build/lib/core/models.py:1198 core/models.py:1198
msgid "Document ask for access"
msgstr "Запит доступу до документа"
-#: build/lib/core/models.py:1192 core/models.py:1192
+#: build/lib/core/models.py:1199 core/models.py:1199
msgid "Document ask for accesses"
msgstr "Запит доступу для документа"
-#: build/lib/core/models.py:1198 core/models.py:1198
+#: build/lib/core/models.py:1205 core/models.py:1205
msgid "This user has already asked for access to this document."
msgstr "Цей користувач вже попросив доступ до цього документа."
-#: build/lib/core/models.py:1255 core/models.py:1255
+#: build/lib/core/models.py:1262 core/models.py:1262
#, python-brace-format
msgid "{name} would like access to a document!"
msgstr "{name} хоче отримати доступ до документа!"
-#: build/lib/core/models.py:1259 core/models.py:1259
+#: build/lib/core/models.py:1266 core/models.py:1266
#, python-brace-format
msgid "{name} would like access to the following document:"
msgstr "{name} бажає отримати доступ до наступного документа:"
-#: build/lib/core/models.py:1265 core/models.py:1265
+#: build/lib/core/models.py:1272 core/models.py:1272
#, python-brace-format
msgid "{name} is asking for access to the document: {title}"
msgstr "{name} запитує доступ до документа: {title}"
-#: build/lib/core/models.py:1277 core/models.py:1277
+#: build/lib/core/models.py:1314 core/models.py:1314
+msgid "Thread"
+msgstr "Обговорення"
+
+#: build/lib/core/models.py:1315 core/models.py:1315
+msgid "Threads"
+msgstr "Обговорення"
+
+#: build/lib/core/models.py:1318 build/lib/core/models.py:1370
+#: core/models.py:1318 core/models.py:1370
+msgid "Anonymous"
+msgstr "Анонім"
+
+#: build/lib/core/models.py:1365 core/models.py:1365
+msgid "Comment"
+msgstr "Коментар"
+
+#: build/lib/core/models.py:1366 core/models.py:1366
+msgid "Comments"
+msgstr "Коментарі"
+
+#: build/lib/core/models.py:1415 core/models.py:1415
+msgid "This emoji has already been reacted to this comment."
+msgstr "Цим емодзі вже відреагували на цей коментар."
+
+#: build/lib/core/models.py:1419 core/models.py:1419
+msgid "Reaction"
+msgstr "Реакція"
+
+#: build/lib/core/models.py:1420 core/models.py:1420
+msgid "Reactions"
+msgstr "Реакції"
+
+#: build/lib/core/models.py:1431 core/models.py:1431
msgid "description"
msgstr "опис"
-#: build/lib/core/models.py:1278 core/models.py:1278
+#: build/lib/core/models.py:1432 core/models.py:1432
msgid "code"
msgstr "код"
-#: build/lib/core/models.py:1279 core/models.py:1279
+#: build/lib/core/models.py:1433 core/models.py:1433
msgid "css"
msgstr "css"
-#: build/lib/core/models.py:1281 core/models.py:1281
+#: build/lib/core/models.py:1435 core/models.py:1435
msgid "public"
msgstr "публічне"
-#: build/lib/core/models.py:1283 core/models.py:1283
+#: build/lib/core/models.py:1437 core/models.py:1437
msgid "Whether this template is public for anyone to use."
msgstr "Чи є цей шаблон публічним для будь-кого користувача."
-#: build/lib/core/models.py:1289 core/models.py:1289
+#: build/lib/core/models.py:1443 core/models.py:1443
msgid "Template"
msgstr "Шаблон"
-#: build/lib/core/models.py:1290 core/models.py:1290
+#: build/lib/core/models.py:1444 core/models.py:1444
msgid "Templates"
msgstr "Шаблони"
-#: build/lib/core/models.py:1343 core/models.py:1343
+#: build/lib/core/models.py:1497 core/models.py:1497
msgid "Template/user relation"
msgstr "Відношення шаблон/користувач"
-#: build/lib/core/models.py:1344 core/models.py:1344
+#: build/lib/core/models.py:1498 core/models.py:1498
msgid "Template/user relations"
msgstr "Відношення шаблон/користувач"
-#: build/lib/core/models.py:1350 core/models.py:1350
+#: build/lib/core/models.py:1504 core/models.py:1504
msgid "This user is already in this template."
msgstr "Цей користувач вже має доступ до цього шаблону."
-#: build/lib/core/models.py:1356 core/models.py:1356
+#: build/lib/core/models.py:1510 core/models.py:1510
msgid "This team is already in this template."
msgstr "Ця команда вже має доступ до цього шаблону."
-#: build/lib/core/models.py:1433 core/models.py:1433
+#: build/lib/core/models.py:1587 core/models.py:1587
msgid "email address"
msgstr "електронна адреса"
-#: build/lib/core/models.py:1452 core/models.py:1452
+#: build/lib/core/models.py:1606 core/models.py:1606
msgid "Document invitation"
msgstr "Запрошення до редагування документа"
-#: build/lib/core/models.py:1453 core/models.py:1453
+#: build/lib/core/models.py:1607 core/models.py:1607
msgid "Document invitations"
msgstr "Запрошення до редагування документів"
-#: build/lib/core/models.py:1473 core/models.py:1473
+#: build/lib/core/models.py:1627 core/models.py:1627
msgid "This email is already associated to a registered user."
msgstr "Ця електронна пошта вже пов'язана з зареєстрованим користувачем."
diff --git a/src/backend/locale/zh_CN/LC_MESSAGES/django.po b/src/backend/locale/zh_CN/LC_MESSAGES/django.po
index bf10ae2719..eb9d4b8e81 100644
--- a/src/backend/locale/zh_CN/LC_MESSAGES/django.po
+++ b/src/backend/locale/zh_CN/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: lasuite-docs\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2025-11-17 08:04+0000\n"
-"PO-Revision-Date: 2025-11-19 10:13\n"
+"POT-Creation-Date: 2025-11-20 14:08+0000\n"
+"PO-Revision-Date: 2025-11-26 13:33\n"
"Last-Translator: \n"
"Language-Team: Chinese Simplified\n"
"Language: zh_CN\n"
@@ -50,67 +50,72 @@ msgstr "已屏蔽"
msgid "Favorite"
msgstr "收藏"
-#: build/lib/core/api/serializers.py:496 core/api/serializers.py:496
+#: build/lib/core/api/serializers.py:497 core/api/serializers.py:497
msgid "A new document was created on your behalf!"
msgstr "已为您创建了一份新文档!"
-#: build/lib/core/api/serializers.py:500 core/api/serializers.py:500
+#: build/lib/core/api/serializers.py:501 core/api/serializers.py:501
msgid "You have been granted ownership of a new document:"
msgstr "您已被授予新文档的所有权:"
-#: build/lib/core/api/serializers.py:536 core/api/serializers.py:536
+#: build/lib/core/api/serializers.py:537 core/api/serializers.py:537
msgid "This field is required."
msgstr "必填字段。"
-#: build/lib/core/api/serializers.py:547 core/api/serializers.py:547
+#: build/lib/core/api/serializers.py:548 core/api/serializers.py:548
#, python-format
msgid "Link reach '%(link_reach)s' is not allowed based on parent document configuration."
msgstr ""
-#: build/lib/core/api/serializers.py:693 core/api/serializers.py:693
+#: build/lib/core/api/serializers.py:694 core/api/serializers.py:694
msgid "Body"
msgstr "正文"
-#: build/lib/core/api/serializers.py:696 core/api/serializers.py:696
+#: build/lib/core/api/serializers.py:697 core/api/serializers.py:697
msgid "Body type"
msgstr "正文类型"
-#: build/lib/core/api/serializers.py:702 core/api/serializers.py:702
+#: build/lib/core/api/serializers.py:703 core/api/serializers.py:703
msgid "Format"
msgstr "格式"
-#: build/lib/core/api/viewsets.py:1003 core/api/viewsets.py:1003
+#: build/lib/core/api/viewsets.py:1004 core/api/viewsets.py:1004
#, python-brace-format
msgid "copy of {title}"
msgstr "{title} 的副本"
-#: build/lib/core/choices.py:35 build/lib/core/choices.py:42 core/choices.py:35
-#: core/choices.py:42
+#: build/lib/core/choices.py:35 build/lib/core/choices.py:43 core/choices.py:35
+#: core/choices.py:43
msgid "Reader"
msgstr "阅读者"
-#: build/lib/core/choices.py:36 build/lib/core/choices.py:43 core/choices.py:36
-#: core/choices.py:43
+#: build/lib/core/choices.py:36 build/lib/core/choices.py:44 core/choices.py:36
+#: core/choices.py:44
+msgid "Commenter"
+msgstr ""
+
+#: build/lib/core/choices.py:37 build/lib/core/choices.py:45 core/choices.py:37
+#: core/choices.py:45
msgid "Editor"
msgstr "编辑者"
-#: build/lib/core/choices.py:44 core/choices.py:44
+#: build/lib/core/choices.py:46 core/choices.py:46
msgid "Administrator"
msgstr "超级管理员"
-#: build/lib/core/choices.py:45 core/choices.py:45
+#: build/lib/core/choices.py:47 core/choices.py:47
msgid "Owner"
msgstr "所有者"
-#: build/lib/core/choices.py:56 core/choices.py:56
+#: build/lib/core/choices.py:58 core/choices.py:58
msgid "Restricted"
msgstr "受限的"
-#: build/lib/core/choices.py:60 core/choices.py:60
+#: build/lib/core/choices.py:62 core/choices.py:62
msgid "Authenticated"
msgstr "已验证"
-#: build/lib/core/choices.py:62 core/choices.py:62
+#: build/lib/core/choices.py:64 core/choices.py:64
msgid "Public"
msgstr "公开"
@@ -234,8 +239,8 @@ msgstr "用户"
msgid "users"
msgstr "个用户"
-#: build/lib/core/models.py:361 build/lib/core/models.py:1276
-#: core/models.py:361 core/models.py:1276
+#: build/lib/core/models.py:361 build/lib/core/models.py:1430
+#: core/models.py:361 core/models.py:1430
msgid "title"
msgstr "标题"
@@ -251,155 +256,188 @@ msgstr "文档"
msgid "Documents"
msgstr "个文档"
-#: build/lib/core/models.py:424 build/lib/core/models.py:822 core/models.py:424
-#: core/models.py:822
+#: build/lib/core/models.py:424 build/lib/core/models.py:824 core/models.py:424
+#: core/models.py:824
msgid "Untitled Document"
msgstr "未命名文档"
-#: build/lib/core/models.py:857 core/models.py:857
+#: build/lib/core/models.py:859 core/models.py:859
#, python-brace-format
msgid "{name} shared a document with you!"
msgstr "{name} 与您共享了一个文档!"
-#: build/lib/core/models.py:861 core/models.py:861
+#: build/lib/core/models.py:863 core/models.py:863
#, python-brace-format
msgid "{name} invited you with the role \"{role}\" on the following document:"
msgstr "{name} 邀请您以“{role}”角色访问以下文档:"
-#: build/lib/core/models.py:867 core/models.py:867
+#: build/lib/core/models.py:869 core/models.py:869
#, python-brace-format
msgid "{name} shared a document with you: {title}"
msgstr "{name} 与您共享了一个文档:{title}"
-#: build/lib/core/models.py:967 core/models.py:967
+#: build/lib/core/models.py:969 core/models.py:969
msgid "Document/user link trace"
msgstr "文档/用户链接跟踪"
-#: build/lib/core/models.py:968 core/models.py:968
+#: build/lib/core/models.py:970 core/models.py:970
msgid "Document/user link traces"
msgstr "个文档/用户链接跟踪"
-#: build/lib/core/models.py:974 core/models.py:974
+#: build/lib/core/models.py:976 core/models.py:976
msgid "A link trace already exists for this document/user."
msgstr "此文档/用户的链接跟踪已存在。"
-#: build/lib/core/models.py:997 core/models.py:997
+#: build/lib/core/models.py:999 core/models.py:999
msgid "Document favorite"
msgstr "文档收藏"
-#: build/lib/core/models.py:998 core/models.py:998
+#: build/lib/core/models.py:1000 core/models.py:1000
msgid "Document favorites"
msgstr "文档收藏夹"
-#: build/lib/core/models.py:1004 core/models.py:1004
+#: build/lib/core/models.py:1006 core/models.py:1006
msgid "This document is already targeted by a favorite relation instance for the same user."
msgstr "该文档已被同一用户的收藏关系实例关联。"
-#: build/lib/core/models.py:1026 core/models.py:1026
+#: build/lib/core/models.py:1028 core/models.py:1028
msgid "Document/user relation"
msgstr "文档/用户关系"
-#: build/lib/core/models.py:1027 core/models.py:1027
+#: build/lib/core/models.py:1029 core/models.py:1029
msgid "Document/user relations"
msgstr "文档/用户关系集"
-#: build/lib/core/models.py:1033 core/models.py:1033
+#: build/lib/core/models.py:1035 core/models.py:1035
msgid "This user is already in this document."
msgstr "该用户已在此文档中。"
-#: build/lib/core/models.py:1039 core/models.py:1039
+#: build/lib/core/models.py:1041 core/models.py:1041
msgid "This team is already in this document."
msgstr "该团队已在此文档中。"
-#: build/lib/core/models.py:1045 build/lib/core/models.py:1362
-#: core/models.py:1045 core/models.py:1362
+#: build/lib/core/models.py:1047 build/lib/core/models.py:1516
+#: core/models.py:1047 core/models.py:1516
msgid "Either user or team must be set, not both."
msgstr "必须设置用户或团队之一,不能同时设置两者。"
-#: build/lib/core/models.py:1191 core/models.py:1191
+#: build/lib/core/models.py:1198 core/models.py:1198
msgid "Document ask for access"
msgstr "文档需要访问权限"
-#: build/lib/core/models.py:1192 core/models.py:1192
+#: build/lib/core/models.py:1199 core/models.py:1199
msgid "Document ask for accesses"
msgstr "文档需要访问权限"
-#: build/lib/core/models.py:1198 core/models.py:1198
+#: build/lib/core/models.py:1205 core/models.py:1205
msgid "This user has already asked for access to this document."
msgstr "用户已申请该文档的访问权限。"
-#: build/lib/core/models.py:1255 core/models.py:1255
+#: build/lib/core/models.py:1262 core/models.py:1262
#, python-brace-format
msgid "{name} would like access to a document!"
msgstr "{name} 申请访问文档!"
-#: build/lib/core/models.py:1259 core/models.py:1259
+#: build/lib/core/models.py:1266 core/models.py:1266
#, python-brace-format
msgid "{name} would like access to the following document:"
msgstr "{name} 申请访问以下文档:"
-#: build/lib/core/models.py:1265 core/models.py:1265
+#: build/lib/core/models.py:1272 core/models.py:1272
#, python-brace-format
msgid "{name} is asking for access to the document: {title}"
msgstr "{name}申请文档:{title}的访问权限"
-#: build/lib/core/models.py:1277 core/models.py:1277
+#: build/lib/core/models.py:1314 core/models.py:1314
+msgid "Thread"
+msgstr ""
+
+#: build/lib/core/models.py:1315 core/models.py:1315
+msgid "Threads"
+msgstr ""
+
+#: build/lib/core/models.py:1318 build/lib/core/models.py:1370
+#: core/models.py:1318 core/models.py:1370
+msgid "Anonymous"
+msgstr ""
+
+#: build/lib/core/models.py:1365 core/models.py:1365
+msgid "Comment"
+msgstr ""
+
+#: build/lib/core/models.py:1366 core/models.py:1366
+msgid "Comments"
+msgstr ""
+
+#: build/lib/core/models.py:1415 core/models.py:1415
+msgid "This emoji has already been reacted to this comment."
+msgstr ""
+
+#: build/lib/core/models.py:1419 core/models.py:1419
+msgid "Reaction"
+msgstr ""
+
+#: build/lib/core/models.py:1420 core/models.py:1420
+msgid "Reactions"
+msgstr ""
+
+#: build/lib/core/models.py:1431 core/models.py:1431
msgid "description"
msgstr "说明"
-#: build/lib/core/models.py:1278 core/models.py:1278
+#: build/lib/core/models.py:1432 core/models.py:1432
msgid "code"
msgstr "代码"
-#: build/lib/core/models.py:1279 core/models.py:1279
+#: build/lib/core/models.py:1433 core/models.py:1433
msgid "css"
msgstr "css"
-#: build/lib/core/models.py:1281 core/models.py:1281
+#: build/lib/core/models.py:1435 core/models.py:1435
msgid "public"
msgstr "公开"
-#: build/lib/core/models.py:1283 core/models.py:1283
+#: build/lib/core/models.py:1437 core/models.py:1437
msgid "Whether this template is public for anyone to use."
msgstr "该模板是否公开供任何人使用。"
-#: build/lib/core/models.py:1289 core/models.py:1289
+#: build/lib/core/models.py:1443 core/models.py:1443
msgid "Template"
msgstr "模板"
-#: build/lib/core/models.py:1290 core/models.py:1290
+#: build/lib/core/models.py:1444 core/models.py:1444
msgid "Templates"
msgstr "模板"
-#: build/lib/core/models.py:1343 core/models.py:1343
+#: build/lib/core/models.py:1497 core/models.py:1497
msgid "Template/user relation"
msgstr "模板/用户关系"
-#: build/lib/core/models.py:1344 core/models.py:1344
+#: build/lib/core/models.py:1498 core/models.py:1498
msgid "Template/user relations"
msgstr "模板/用户关系集"
-#: build/lib/core/models.py:1350 core/models.py:1350
+#: build/lib/core/models.py:1504 core/models.py:1504
msgid "This user is already in this template."
msgstr "该用户已在此模板中。"
-#: build/lib/core/models.py:1356 core/models.py:1356
+#: build/lib/core/models.py:1510 core/models.py:1510
msgid "This team is already in this template."
msgstr "该团队已在此模板中。"
-#: build/lib/core/models.py:1433 core/models.py:1433
+#: build/lib/core/models.py:1587 core/models.py:1587
msgid "email address"
msgstr "电子邮件地址"
-#: build/lib/core/models.py:1452 core/models.py:1452
+#: build/lib/core/models.py:1606 core/models.py:1606
msgid "Document invitation"
msgstr "文档邀请"
-#: build/lib/core/models.py:1453 core/models.py:1453
+#: build/lib/core/models.py:1607 core/models.py:1607
msgid "Document invitations"
msgstr "文档邀请"
-#: build/lib/core/models.py:1473 core/models.py:1473
+#: build/lib/core/models.py:1627 core/models.py:1627
msgid "This email is already associated to a registered user."
msgstr "此电子邮件已经与现有注册用户关联。"
diff --git a/src/frontend/apps/impress/src/i18n/translations.json b/src/frontend/apps/impress/src/i18n/translations.json
index 0199fed2ee..ab2bc01c32 100644
--- a/src/frontend/apps/impress/src/i18n/translations.json
+++ b/src/frontend/apps/impress/src/i18n/translations.json
@@ -328,14 +328,12 @@
"Document sections": "Linke Seitenleiste",
"Document title": "Titel des Dokuments",
"Document tree": "Dokumentenbaum",
- "Document version viewer": "Dokumentenversion-Betrachter",
"Document visibility": "Sichtbarkeit",
"Documents grid": "Dokumentenübersicht",
"Docx": "Docx",
"Download": "Herunterladen",
"Download anyway": "Trotzdem herunterladen",
"Download your document in a .docx, .odt or .pdf format.": "Dokument als DOCX-, ODT- oder PDF-Datei exportieren.",
- "Drag and drop status": "Drag and Drop Status",
"Duplicate": "Duplizieren",
"Edit document emoji": "Dokumenten-Symbol bearbeiten",
"Editing": "Bearbeiten",
@@ -412,7 +410,6 @@
"Open Source": "Open Source",
"Open document {{title}}": "Öffne Dokument: {{title}}",
"Open document: {{title}}": "Öffne Dokument: {{title}}",
- "Open invitation actions menu": "Öffne Freigabemenü",
"Open root document": "Öffne Wurzel-Dokument",
"Open the document options": "Öffnen Sie die Dokumentoptionen",
"Open the header menu": "Öffne das Kopfzeilen-Menü",
@@ -742,6 +739,8 @@
"Cancel": "Annuler",
"Cancel the deletion": "Annuler la suppression",
"Cancel the download": "Annuler le téléchargement",
+ "Change role for {{email}}": "Changer le rôle pour {{email}}",
+ "Change role for {{name}}": "Changer le rôle pour {{name}}",
"Close the access request modal": "Fermer la fenêtre modale de demande d'accès",
"Close the delete modal": "Fermer la fenêtre modale de suppression",
"Close the download modal": "Fermer la fenêtre modale de téléchargement",
@@ -751,6 +750,7 @@
"Collaborate": "Collaborer",
"Collaborate and write in real time, without layout constraints.": "Collaborez et rédigez en temps réel, sans contrainte de mise en page.",
"Collaborative writing, Simplified.": "L'écriture collaborative simplifiée.",
+ "Comment": "Commentaire",
"Confirm": "Confirmez",
"Connected": "Connecté",
"Contains {{count}} sub-documents_many": "Contient {{count}} sous-documents",
@@ -789,14 +789,14 @@
"Document sections": "Sections du document",
"Document title": "Titre du document",
"Document tree": "Arborescence du document",
- "Document version viewer": "Visionneuse de version du document",
+ "Document viewer": "Visualiseur de document",
"Document visibility": "Visibilité du document",
"Documents grid": "Grille des documents",
"Docx": "Docx",
"Download": "Télécharger",
"Download anyway": "Télécharger malgré tout",
"Download your document in a .docx, .odt or .pdf format.": "Téléchargez votre document au format .docx, .odt ou .pdf.",
- "Drag and drop status": "État du glisser-déposer",
+ "Drag and drop status": "État du glisser-déposer",
"Duplicate": "Dupliquer",
"Edit document emoji": "Modifier l'émoticône du document",
"Editing": "Édition",
@@ -830,6 +830,11 @@
"Image: {{title}}": "Image : {{title}}",
"Insufficient access rights to view the document.": "Droits d'accès insuffisants pour voir le document.",
"Invite": "Inviter",
+ "Invite new members": "Inviter de nouveaux membres",
+ "Invite {{count}} members_many": "Inviter {{count}} membres",
+ "Invite {{count}} members_one": "Inviter {{count}} membres",
+ "Invite {{count}} members_other": "Inviter {{count}} membres",
+ "Invite {{name}}": "Inviter {{name}}",
"It is the card information about the document.": "Il s'agit de la carte d'information du document.",
"It is the document title": "Il s'agit du titre du document",
"It seems that the page you are looking for does not exist or cannot be displayed correctly.": "Il semble que la page que vous cherchez n'existe pas ou ne puisse pas être affichée correctement.",
@@ -873,7 +878,6 @@
"Open Source": "Open Source",
"Open document {{title}}": "Ouvrir le document {{title}}",
"Open document: {{title}}": "Ouvrir le document : {{title}}",
- "Open invitation actions menu": "Menu des actions d'ouverture d'une invitation",
"Open root document": "Ouvrir le document racine",
"Open the document options": "Ouvrir les options du document",
"Open the header menu": "Ouvrir le menu d'en-tête",
@@ -899,6 +903,7 @@
"Reading": "Lecture seule",
"Remove access": "Supprimer l'accès",
"Remove emoji": "Supprimer les emojis",
+ "Remove {{name}} from the invite list": "Retirer {{name}} de la liste d'invitation",
"Rename": "Renommer",
"Rephrase": "Reformuler",
"Request access": "Demander l'accès",
@@ -980,7 +985,10 @@
"home-content-open-source-part1": "Docs est construit sur <2>Django Rest Framework2> et <6>Next.js6>. Nous utilisons également <9>Yjs9> et <13>BlockNote.js13>, deux projets que nous sommes fiers de sponsoriser.",
"home-content-open-source-part2": "Vous pouvez facilement auto-héberger Docs (consultez notre <2>documentation2> d'installation).
Docs utilise une <7>licence7> (MIT) adaptée à l'innovation et aux entreprises.
Les contributions sont les bienvenues (consultez notre feuille de route <13>ici13>).",
"home-content-open-source-part3": "Docs est le résultat d'un effort conjoint mené par les gouvernements français 🇫🇷🥖 <1>(DINUM)1> et allemand 🇩🇪🥨 <5>(ZenDiS)5>.",
- "pdf": "pdf"
+ "pdf": "pdf",
+ "{{action}}, current role: {{role}}": "{{action}}, rôle actuel : {{role}}",
+ "{{name}} added to invite list. Add more members or press Tab to select role and invite.": "{{name}} a été ajouté à la liste d'invitation. Ajoutez plus de membres ou appuyez sur Tab pour sélectionner le rôle et inviter.",
+ "{{name}} removed from invite list": "{{name}} a été retiré de la liste d'invitation"
}
},
"it": {
@@ -1175,6 +1183,7 @@
"Collaborate": "Samenwerken",
"Collaborate and write in real time, without layout constraints.": "Samenwerken en schrijven in realtime, zonder lay-outbeperkingen.",
"Collaborative writing, Simplified.": "Gezamenlijk schrijven, Vereenvoudigd.",
+ "Comment": "Reactie",
"Confirm": "Bevestigen",
"Connected": "Ingelogd",
"Contains {{count}} sub-documents_many": "Bevat {{count}} subdocumenten",
@@ -1213,14 +1222,12 @@
"Document sections": "Document secties",
"Document title": "Documenttitel",
"Document tree": "Boomstructuur document",
- "Document version viewer": "Document versie viewer",
"Document visibility": "Document toegankelijkheid",
"Documents grid": "Documenten overzicht",
"Docx": "Docx",
"Download": "Download",
"Download anyway": "Download alsnog",
"Download your document in a .docx, .odt or .pdf format.": "Download uw document in een .docx, .odt of .pdf formaat.",
- "Drag and drop status": "Drag & drop status",
"Duplicate": "Dupliceer",
"Edit document emoji": "Bewerk document emoji",
"Editing": "Bewerken",
@@ -1254,6 +1261,10 @@
"Image: {{title}}": "Afbeelding: {{title}}",
"Insufficient access rights to view the document.": "Onvoldoende toegangsrechten om het document te bekijken.",
"Invite": "Uitnodigen",
+ "Invite {{count}} members_many": "Nodig {{count}} leden uit",
+ "Invite {{count}} members_one": "Nodig {{count}} leden uit",
+ "Invite {{count}} members_other": "Nodig {{count}} leden uit",
+ "Invite {{name}}": "Nodig {{name}} uit",
"It is the card information about the document.": "Het is een informatie kaart over het document.",
"It is the document title": "Het is de titel van het document",
"It seems that the page you are looking for does not exist or cannot be displayed correctly.": "Het lijkt erop dat de pagina die u zoekt niet bestaat of niet correct kan worden weergegeven.",
@@ -1297,7 +1308,6 @@
"Open Source": "Open Source",
"Open document {{title}}": "Open document {{title}}",
"Open document: {{title}}": "Open document: {{title}}",
- "Open invitation actions menu": "Open uitnodigingsactiemenu",
"Open root document": "Open hoofddocument",
"Open the document options": "Open document opties",
"Open the header menu": "Open het hoofdmenu",
@@ -1323,6 +1333,7 @@
"Reading": "Lezen",
"Remove access": "Toegang verwijderen",
"Remove emoji": "Emoji verwijderen",
+ "Remove {{name}} from the invite list": "Verwijder {{name}} uit de uitnodigingslijst",
"Rename": "Hernoem",
"Rephrase": "Herschrijf",
"Request access": "Toegang aanvragen",
@@ -1450,6 +1461,8 @@
"Cancel": "Отмена",
"Cancel the deletion": "Отменить удаление",
"Cancel the download": "Отменить загрузку",
+ "Change role for {{email}}": "Изменить роль для {{email}}",
+ "Change role for {{name}}": "Изменить роль для {{name}}",
"Close the access request modal": "Закрыть окно запроса доступа",
"Close the delete modal": "Закрыть окно удаления",
"Close the download modal": "Закрыть окно загрузки",
@@ -1459,6 +1472,7 @@
"Collaborate": "Совместный доступ",
"Collaborate and write in real time, without layout constraints.": "Совместная работа и сохранение в реальном времени, без ограничений.",
"Collaborative writing, Simplified.": "Простой совместный доступ к документам.",
+ "Comment": "Комментарий",
"Confirm": "Подтвердить",
"Connected": "Подключённая",
"Contains {{count}} sub-documents_many": "Содержит {{count}} вложенных документов",
@@ -1497,14 +1511,14 @@
"Document sections": "Разделы документа",
"Document title": "Заголовок документа",
"Document tree": "Иерархия документа",
- "Document version viewer": "Просмотрщик версий документа",
+ "Document viewer": "Просмотрщик документа",
"Document visibility": "Видимость документа",
"Documents grid": "Сетка документов",
"Docx": "Docx",
"Download": "Загрузить",
"Download anyway": "Всё равно загрузить",
"Download your document in a .docx, .odt or .pdf format.": "Загрузить документ в формате .docx, .odt или .pdf.",
- "Drag and drop status": "Состояние перетаскивания",
+ "Drag and drop status": "Состояние перетаскивания",
"Duplicate": "Дублировать",
"Edit document emoji": "Изменить документ emoji",
"Editing": "Редактирование",
@@ -1538,6 +1552,11 @@
"Image: {{title}}": "Изображение: {{title}}",
"Insufficient access rights to view the document.": "Недостаточно прав доступа для просмотра документа.",
"Invite": "Приглашение",
+ "Invite new members": "Пригласить новых участников",
+ "Invite {{count}} members_many": "Пригласить {{count}} участников",
+ "Invite {{count}} members_one": "Пригласить {{count}} участников",
+ "Invite {{count}} members_other": "Пригласить {{count}} участников",
+ "Invite {{name}}": "Пригласить {{name}}",
"It is the card information about the document.": "Это информационная карта документа.",
"It is the document title": "Это заголовок документа",
"It seems that the page you are looking for does not exist or cannot be displayed correctly.": "Похоже, страница, которую вы ищете, не существует или не может быть правильно отображена.",
@@ -1581,7 +1600,6 @@
"Open Source": "Open Source",
"Open document {{title}}": "Открыть документ {{title}}",
"Open document: {{title}}": "Открыть документ: {{title}}",
- "Open invitation actions menu": "Меню действий открытия приглашения",
"Open root document": "Открыть корневой документ",
"Open the document options": "Открыть параметры документа",
"Open the header menu": "Открыть меню заголовка",
@@ -1607,6 +1625,7 @@
"Reading": "Чтение",
"Remove access": "Отменить доступ",
"Remove emoji": "Убрать эмодзи",
+ "Remove {{name}} from the invite list": "Удалить {{name}} из списка приглашений",
"Rename": "Переименовать",
"Rephrase": "Переформулировать",
"Request access": "Запрос доступа",
@@ -1685,10 +1704,13 @@
"document": "документ",
"embed": "вложение",
"file": "файл",
- "home-content-open-source-part1": "текст ещё не готов",
- "home-content-open-source-part2": "текст ещё не готов",
- "home-content-open-source-part3": "текст ещё не готов",
- "pdf": "pdf"
+ "home-content-open-source-part1": "Docs создаётся на основе <2>Django Rest Framework2> и <6>Next.js6>. Мы также используем <9>Yjs9> и <13>BlockNote.js13> — два проекта, которые мы с гордостью спонсируем.",
+ "home-content-open-source-part2": "Вы можете легко разместить Docs у себя (см. нашу <2>документацию по установке2>).
Docs использует <7>лицензию7> (MIT), подходящую для инноваций и бизнеса.
Мы приветствуем ваши вклады (см. наш план разработки <13>здесь13>).",
+ "home-content-open-source-part3": "Docs — это результат совместных усилий правительств Франции 🇫🇷🥖 <1>(DINUM)1> и Германии 🇩🇪🥨 <5>(ZenDiS)5>.",
+ "pdf": "pdf",
+ "{{action}}, current role: {{role}}": "{{action}}, текущая роль: {{role}}",
+ "{{name}} added to invite list. Add more members or press Tab to select role and invite.": "{{name}} добавлен(а) в список приглашённых. Добавьте других участников или нажмите Tab, чтобы выбрать роль и пригласить.",
+ "{{name}} removed from invite list": "{{name}} удален(а) из списка приглашений"
}
},
"sl": {
@@ -1837,6 +1859,8 @@
"Cancel": "Скасувати",
"Cancel the deletion": "Скасувати видалення",
"Cancel the download": "Скасувати завантаження",
+ "Change role for {{email}}": "Змінити роль для {{email}}",
+ "Change role for {{name}}": "Змінити роль для {{name}}",
"Close the access request modal": "Закрити вікно запиту доступу",
"Close the delete modal": "Закрити вікно видалення",
"Close the download modal": "Закрити вікно завантаження",
@@ -1846,6 +1870,7 @@
"Collaborate": "Спільна робота",
"Collaborate and write in real time, without layout constraints.": "Сумісна робота і збереження результатів у реальному часі, без обмеження макета.",
"Collaborative writing, Simplified.": "Простий спільний доступ до документів.",
+ "Comment": "Коментар",
"Confirm": "Підтвердити",
"Connected": "Під'єднане",
"Contains {{count}} sub-documents_many": "Містить {{count}} вкладених документів",
@@ -1884,14 +1909,14 @@
"Document sections": "Розділи документу",
"Document title": "Назва документа",
"Document tree": "Дерево документа",
- "Document version viewer": "Переглядач версії документа",
+ "Document viewer": "Переглядач документа",
"Document visibility": "Видимість документа",
"Documents grid": "Сітка документів",
"Docx": "Docx",
"Download": "Завантажити",
"Download anyway": "Все одно завантажити",
"Download your document in a .docx, .odt or .pdf format.": "Завантажити документ у форматі .docx, .odt або .pdf.",
- "Drag and drop status": "Стан перетягування",
+ "Drag and drop status": "Стан перетягування",
"Duplicate": "Дублювати",
"Edit document emoji": "Редагувати документ емодзі",
"Editing": "Редагування",
@@ -1925,6 +1950,11 @@
"Image: {{title}}": "Зображення: {{title}}",
"Insufficient access rights to view the document.": "Недостатньо прав для перегляду документа.",
"Invite": "Запрошення",
+ "Invite new members": "Запросити нових учасників",
+ "Invite {{count}} members_many": "Запросити {{count}} учасників",
+ "Invite {{count}} members_one": "Запросити {{count}} учасників",
+ "Invite {{count}} members_other": "Запросити {{count}} учасників",
+ "Invite {{name}}": "Запросити {{name}}",
"It is the card information about the document.": "Це інформаційна картка документу.",
"It is the document title": "Це заголовок документа",
"It seems that the page you are looking for does not exist or cannot be displayed correctly.": "Схоже, що сторінка, яку ви шукаєте, не існує або не може бути показаною правильно.",
@@ -1968,7 +1998,6 @@
"Open Source": "Open Source",
"Open document {{title}}": "Відкрити документ {{title}}",
"Open document: {{title}}": "Відкрити документ: {{title}}",
- "Open invitation actions menu": "Меню дій відкриття запрошення",
"Open root document": "Відкрити кореневий документ",
"Open the document options": "Відкрити параметри документа",
"Open the header menu": "Відкрити меню заголовка",
@@ -1994,6 +2023,7 @@
"Reading": "Читання",
"Remove access": "Вилучити доступ",
"Remove emoji": "Прибрати емодзі",
+ "Remove {{name}} from the invite list": "Видалити {{name}} зі списку запрошень",
"Rename": "Перейменувати",
"Rephrase": "Перефразувати",
"Request access": "Запит доступу",
@@ -2072,10 +2102,13 @@
"document": "документ",
"embed": "вкладення",
"file": "файл",
- "home-content-open-source-part1": "текст ще не готовий",
- "home-content-open-source-part2": "текст ще не готовий",
- "home-content-open-source-part3": "текст ще не готовий",
- "pdf": "pdf"
+ "home-content-open-source-part1": "Docs створюється на основі <2>Django Rest Framework2> і <6>Next.js6>. Ми також використовуємо <9>Yjs9> і <13>BlockNote.js13>, два проекти, які ми з гордістю спонсоруємо.",
+ "home-content-open-source-part2": "Ви можете легко самостійно розмістити Docs (див. нашу <2>документацію з встановлення2>).
Docs використовує <7>ліцензію7> (MIT), що підходить для інновацій та бізнесу.
Внески вітаються (див. наш план розробки <13>тут13>).",
+ "home-content-open-source-part3": "Docs є результатом спільних зусиль, очолюваних урядами Франції 🇫🇷🥖 <1>(DINUM)1> та Німеччини 🇩🇪🥨 <5>(ZenDiS)5>.",
+ "pdf": "pdf",
+ "{{action}}, current role: {{role}}": "{{action}}, поточна роль: {{role}}",
+ "{{name}} added to invite list. Add more members or press Tab to select role and invite.": "{{name}} додано до списку запрошень. Додайте більше учасників або натисніть Tab, щоб вибрати роль та надіслати запрошення.",
+ "{{name}} removed from invite list": "{{name}} видалено зі списку запрошень"
}
},
"zh": {
From 6c291d5ce4a2abf1baa4ead620eaa24705924710 Mon Sep 17 00:00:00 2001
From: Anthony LC
Date: Mon, 1 Dec 2025 10:49:38 +0100
Subject: [PATCH 2/2] =?UTF-8?q?=F0=9F=94=96(major)=20release=204.0.0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Added:
- ✨ Add comments feature to the editor
- ✨(backend) Comments on text editor
Changed:
- ⚡️(sw) stop to cache external resources likes videos
- 💥(frontend) upgrade to ui-kit v2
- ⚡️(frontend) improve perf on upload and table of contents
- ♿(frontend) improve accessibility:
- ♿(frontend) improve share modal button accessibility
- ♿(frontend) improve screen reader support in DocShare modal
Fixed:
- 🐛(frontend) fix toolbar not activated when reader
- 🐛(frontend) preserve left panel width on window resize
- 🐛(frontend) prevent duplicate as first character in title
---
CHANGELOG.md | 13 +++++++----
UPGRADE.md | 23 +++++++++++++++++++
src/backend/pyproject.toml | 2 +-
src/frontend/apps/e2e/package.json | 2 +-
src/frontend/apps/impress/package.json | 2 +-
src/frontend/package.json | 2 +-
.../packages/eslint-plugin-docs/package.json | 2 +-
src/frontend/packages/i18n/package.json | 2 +-
src/frontend/servers/y-provider/package.json | 2 +-
src/helm/helmfile.yaml.gotmpl | 4 ++--
src/helm/impress/Chart.yaml | 2 +-
src/mail/package.json | 2 +-
12 files changed, 42 insertions(+), 16 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index b1905aa8f0..bae77c3bd2 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -6,6 +6,8 @@ and this project adheres to
## [Unreleased]
+## [4.0.0] - 2025-12-01
+
### Added
- ✨ Add comments feature to the editor #1330
@@ -14,14 +16,14 @@ and this project adheres to
### Changed
- ⚡️(sw) stop to cache external resources likes videos #1655
-- 💥(frontend) upgrade to ui-kit v2
+- 💥(frontend) upgrade to ui-kit v2 #1605
- ⚡️(frontend) improve perf on upload and table of contents #1662
-
-### Fixed
-
- ♿(frontend) improve accessibility:
- ♿(frontend) improve share modal button accessibility #1626
- ♿(frontend) improve screen reader support in DocShare modal #1628
+
+### Fixed
+
- 🐛(frontend) fix toolbar not activated when reader #1640
- 🐛(frontend) preserve left panel width on window resize #1588
- 🐛(frontend) prevent duplicate as first character in title #1595
@@ -897,7 +899,8 @@ and this project adheres to
- ✨(frontend) Coming Soon page (#67)
- 🚀 Impress, project to manage your documents easily and collaboratively.
-[unreleased]: https://github.com/suitenumerique/docs/compare/v3.10.0...main
+[unreleased]: https://github.com/suitenumerique/docs/compare/v4.0.0...main
+[v4.0.0]: https://github.com/suitenumerique/docs/releases/v4.0.0
[v3.10.0]: https://github.com/suitenumerique/docs/releases/v3.10.0
[v3.9.0]: https://github.com/suitenumerique/docs/releases/v3.9.0
[v3.8.2]: https://github.com/suitenumerique/docs/releases/v3.8.2
diff --git a/UPGRADE.md b/UPGRADE.md
index c167db3c2f..3fe48c1568 100644
--- a/UPGRADE.md
+++ b/UPGRADE.md
@@ -16,6 +16,29 @@ the following command inside your docker container:
## [Unreleased]
+## [4.0.0] - 2025-11-26
+
+- ⚠️ We updated `@gouvfr-lasuite/ui-kit` to `0.18.0`, so if you are customizing Docs with a css layer or with a custom template, you need to update your customization to follow the new design system structure.
+More information about the changes in the design system can be found here:
+ - https://suitenumerique.github.io/cunningham/storybook/?path=/docs/migrating-from-v3-to-v4--docs
+ - https://github.com/suitenumerique/docs/pull/1605
+ - https://github.com/suitenumerique/docs/blob/main/docs/theming.md
+
+- If you were using the `THEME_CUSTOMIZATION_FILE_PATH` and have overridden the header logo, you need to update your customization file to follow the new structure of the header, it is now:
+ ```json
+ {
+ ...,
+ "header": {
+ "icon": {
+ "src": "your_logo_src",
+ "width": "your_logo_width",
+ "height": "your_logo_height"
+ }
+ }
+ }
+ ```
+
+
## [3.3.0] - 2025-05-22
⚠️ For some advanced features (ex: Export as PDF) Docs relies on XL packages from BlockNote. These are licenced under AGPL-3.0 and are not MIT compatible. You can perfectly use Docs without these packages by setting the environment variable `PUBLISH_AS_MIT` to true. That way you'll build an image of the application without the features that are not MIT compatible. Read the [environment variables documentation](/docs/env.md) for more information.
diff --git a/src/backend/pyproject.toml b/src/backend/pyproject.toml
index d648ab0b85..be7c4817b9 100644
--- a/src/backend/pyproject.toml
+++ b/src/backend/pyproject.toml
@@ -7,7 +7,7 @@ build-backend = "setuptools.build_meta"
[project]
name = "impress"
-version = "3.10.0"
+version = "4.0.0"
authors = [{ "name" = "DINUM", "email" = "dev@mail.numerique.gouv.fr" }]
classifiers = [
"Development Status :: 5 - Production/Stable",
diff --git a/src/frontend/apps/e2e/package.json b/src/frontend/apps/e2e/package.json
index c19ded02f9..f7fdc64045 100644
--- a/src/frontend/apps/e2e/package.json
+++ b/src/frontend/apps/e2e/package.json
@@ -1,6 +1,6 @@
{
"name": "app-e2e",
- "version": "3.10.0",
+ "version": "4.0.0",
"repository": "https://github.com/suitenumerique/docs",
"author": "DINUM",
"license": "MIT",
diff --git a/src/frontend/apps/impress/package.json b/src/frontend/apps/impress/package.json
index f3d29e55c0..9a5692d94f 100644
--- a/src/frontend/apps/impress/package.json
+++ b/src/frontend/apps/impress/package.json
@@ -1,6 +1,6 @@
{
"name": "app-impress",
- "version": "3.10.0",
+ "version": "4.0.0",
"repository": "https://github.com/suitenumerique/docs",
"author": "DINUM",
"license": "MIT",
diff --git a/src/frontend/package.json b/src/frontend/package.json
index 70ff4f2027..0f38296e48 100644
--- a/src/frontend/package.json
+++ b/src/frontend/package.json
@@ -1,6 +1,6 @@
{
"name": "impress",
- "version": "3.10.0",
+ "version": "4.0.0",
"private": true,
"repository": "https://github.com/suitenumerique/docs",
"author": "DINUM",
diff --git a/src/frontend/packages/eslint-plugin-docs/package.json b/src/frontend/packages/eslint-plugin-docs/package.json
index 204eac744a..334fcc65f4 100644
--- a/src/frontend/packages/eslint-plugin-docs/package.json
+++ b/src/frontend/packages/eslint-plugin-docs/package.json
@@ -1,6 +1,6 @@
{
"name": "eslint-plugin-docs",
- "version": "3.10.0",
+ "version": "4.0.0",
"repository": "https://github.com/suitenumerique/docs",
"author": "DINUM",
"license": "MIT",
diff --git a/src/frontend/packages/i18n/package.json b/src/frontend/packages/i18n/package.json
index 9236666e5e..1363e9d68a 100644
--- a/src/frontend/packages/i18n/package.json
+++ b/src/frontend/packages/i18n/package.json
@@ -1,6 +1,6 @@
{
"name": "packages-i18n",
- "version": "3.10.0",
+ "version": "4.0.0",
"repository": "https://github.com/suitenumerique/docs",
"author": "DINUM",
"license": "MIT",
diff --git a/src/frontend/servers/y-provider/package.json b/src/frontend/servers/y-provider/package.json
index 086e083078..95e05a9bb7 100644
--- a/src/frontend/servers/y-provider/package.json
+++ b/src/frontend/servers/y-provider/package.json
@@ -1,6 +1,6 @@
{
"name": "server-y-provider",
- "version": "3.10.0",
+ "version": "4.0.0",
"description": "Y.js provider for docs",
"repository": "https://github.com/suitenumerique/docs",
"license": "MIT",
diff --git a/src/helm/helmfile.yaml.gotmpl b/src/helm/helmfile.yaml.gotmpl
index 9db4a45282..5ec646426e 100644
--- a/src/helm/helmfile.yaml.gotmpl
+++ b/src/helm/helmfile.yaml.gotmpl
@@ -1,10 +1,10 @@
environments:
dev:
values:
- - version: 3.10.0
+ - version: 4.0.0
feature:
values:
- - version: 3.10.0
+ - version: 4.0.0
feature: ci
domain: example.com
imageTag: demo
diff --git a/src/helm/impress/Chart.yaml b/src/helm/impress/Chart.yaml
index 68c1d58e0a..ff723e02fa 100644
--- a/src/helm/impress/Chart.yaml
+++ b/src/helm/impress/Chart.yaml
@@ -1,5 +1,5 @@
apiVersion: v2
type: application
name: docs
-version: 3.10.0
+version: 4.0.0
appVersion: latest
diff --git a/src/mail/package.json b/src/mail/package.json
index 72c0a6aee0..6ba8977aae 100644
--- a/src/mail/package.json
+++ b/src/mail/package.json
@@ -1,6 +1,6 @@
{
"name": "mail_mjml",
- "version": "3.10.0",
+ "version": "4.0.0",
"description": "An util to generate html and text django's templates from mjml templates",
"type": "module",
"dependencies": {