diff --git a/languages/de.yml b/languages/de.yml
index 77a905fe..b0eb6a74 100644
--- a/languages/de.yml
+++ b/languages/de.yml
@@ -468,8 +468,11 @@ invalid_value_file_too_big: 'Die Datei ist zu groß (maximale Größe: %s).'
invalid_value_duplicate: Doppelter Wert
livechat_configuration_channel_emojis_title: Kanal-Emojis
livechat_emojis_shortname: Kurzname
-livechat_emojis_shortname_desc: "Sie können Emojis mit \":Kurzname:\" verwenden.\n
- Der Kurzname darf nur alphanumerische Zeichen, Unterstriche und Bindestriche enthalten.\n"
+livechat_emojis_shortname_desc: "Sie können Emojis im Chat mit \":Kurzname:\" verwenden.\n
+ Der Kurzname kann mit einem Doppelpunkt (:) beginnen und/oder enden und darf nur
+ alphanumerische Zeichen, Unterstriche und Bindestriche enthalten.\nEs wird dringend
+ empfohlen, sie mit einem Doppelpunkt zu beginnen, damit die Benutzer die automatische
+ Vervollständigung nutzen können (indem sie \":\" eingeben und dann TAB drücken).\n"
livechat_configuration_channel_emojis_desc: "Sie können benutzerdefinierte Emojis
für Ihren Kanal konfigurieren.\nDiese Emojis werden in der Emoji-Auswahl verfügbar
sein.\nBenutzer können sie auch mit ihrem Kurznamen verwenden (z. B. indem sie \"\
@@ -519,3 +522,12 @@ livechat_configuration_channel_mute_anonymous_desc: "Standardwert für neue Chat
Für bestehende Chaträume können Sie die Funktion im Raumkonfigurationsformular ändern.\n
Wenn diese Funktion aktiviert ist, können anonyme Benutzer den Chat nur lesen, aber
keine Nachrichten senden.\n"
+chat_terms_label: Nutzungsbedingungen
+chat_terms_description: "Diese Nutzungsbedingungen werden allen Nutzern angezeigt,
+ wenn sie Chaträumen beitreten.\nStreamer können auch Bedingungen für ihre Kanäle
+ konfigurieren, die direkt nach diesen globalen Bedingungen angezeigt werden.\n"
+invalid_value_too_long: Wert zu lang
+livechat_configuration_channel_terms_label: Chat Nutzungsbedingungen und Konditionen
+ des Kanals
+livechat_configuration_channel_terms_desc: "Sie können eine \"Nutzungsbedingungen\"\
+ -Nachricht konfigurieren, die Benutzern angezeigt wird, die Ihren Chaträumen beitreten.\n"
diff --git a/languages/hr.yml b/languages/hr.yml
index 27f7f4dc..acae6a4d 100644
--- a/languages/hr.yml
+++ b/languages/hr.yml
@@ -274,3 +274,4 @@ action_export: Izvezi
share_chat_embed: Ugradi
token_label: Oznaka
auth_description: "
Autentifikacija
\n"
+chat_terms_label: Uvjeti i odredbe
diff --git a/prosody-modules/mod_muc_peertubelivechat_terms/mod_muc_peertubelivechat_terms.lua b/prosody-modules/mod_muc_peertubelivechat_terms/mod_muc_peertubelivechat_terms.lua
index 11daf5eb..cdb6ebf7 100644
--- a/prosody-modules/mod_muc_peertubelivechat_terms/mod_muc_peertubelivechat_terms.lua
+++ b/prosody-modules/mod_muc_peertubelivechat_terms/mod_muc_peertubelivechat_terms.lua
@@ -116,3 +116,11 @@ module:hook("muc-occupant-groupchat", function(event)
return child;
end);
end, 100);
+
+-- don't save terms messages in history
+module:hook("muc-message-is-historic", function(event)
+ local stanza = event.stanza;
+ if (stanza:get_child("x-livechat-terms")) then
+ return false, "hint";
+ end
+end, 1);
diff --git a/support/documentation/content/en/technical/terms.md b/support/documentation/content/en/technical/terms.md
index eecd4365..9c23217c 100644
--- a/support/documentation/content/en/technical/terms.md
+++ b/support/documentation/content/en/technical/terms.md
@@ -49,6 +49,10 @@ This also ensure clients will not drop the message because there is no occupant
When muc terms are updated, the new terms will be broadcasted.
+To avoid anyone spoofing terms & conditions, incoming message stanza are filtered, and any `x-livechat-terms` tag will be removed.
+
+Message history is disabled for message containing the `x-livechat-terms`, so that messages broadcasted when the terms change are not stored by muc_mam modume ("Message Archiving Management").
+
## Frontend
For standard XMPP clients, terms will be shown as delayed messages.
diff --git a/support/documentation/po/livechat.de.po b/support/documentation/po/livechat.de.po
index 06f9287d..7af33656 100644
--- a/support/documentation/po/livechat.de.po
+++ b/support/documentation/po/livechat.de.po
@@ -8,8 +8,9 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"POT-Creation-Date: 2024-06-25 17:22+0200\n"
-"PO-Revision-Date: 2024-06-25 15:37+0000\n"
-"Last-Translator: John Livingston \n"
+"PO-Revision-Date: 2024-06-26 12:40+0000\n"
+"Last-Translator: Victor Hampel "
+"\n"
"Language-Team: German \n"
"Language: de\n"
@@ -1945,15 +1946,18 @@ msgstr "Dieser Abschnitt beschreibt die Seite mit den Plugin Einstellungen."
#. type: Plain text
#: build/documentation/pot_in/documentation/admin/settings.md
-#, fuzzy
-#| msgid "To access this page, check the [channel configuration documentation](/peertube-plugin-livechat/documentation/user/streamers/channel)."
msgid "For more information on this feature, check the documentation for [channel's terms & conditions](/peertube-plugin-livechat/documentation/user/streamers/terms)."
-msgstr "Um auf diese Seite zuzugreifen, sehen Sie sich die [Kanal Konfigurations Dokumentation](/peertube-plugin-livechat/de/documentation/user/streamers/channel) an."
+msgstr ""
+"Weitere Informationen zu dieser Funktion finden Sie in der Dokumentation zu "
+"den [Kanal-Nutzungsbedingungen](/peertube-plugin-livechat/de/documentation/"
+"user/streamers/terms)."
#. type: Plain text
#: build/documentation/pot_in/documentation/admin/settings.md
msgid "Changing this setting will restart the chat server, and all users will be disconnected for a short time."
msgstr ""
+"Wenn Sie diese Einstellung ändern, wird der Chatserver neu gestartet, und "
+"alle Benutzer werden für kurze Zeit getrennt."
#. type: Plain text
#: build/documentation/pot_in/documentation/admin/settings.md
@@ -3094,10 +3098,10 @@ msgstr "Hier können Sie konfigurieren:"
#. type: Bullet: '* '
#: support/documentation/content/en/documentation/user/streamers/channel.md
-#, fuzzy
-#| msgid "[{{% livechat_label livechat_configuration_channel_mute_anonymous_label %}}](/peertube-plugin-livechat/documentation/user/streamers/moderation) default value"
msgid "[{{% livechat_label livechat_configuration_channel_terms_label %}}](/peertube-plugin-livechat/documentation/user/streamers/terms)"
-msgstr "[{{% livechat_label livechat_configuration_channel_mute_anonymous_label %}}](/peertube-plugin-livechat/de/documentation/user/streamers/moderation) Standardwert"
+msgstr ""
+"[{{% livechat_label livechat_configuration_channel_terms_label "
+"%}}](/peertube-plugin-livechat/de/documentation/user/streamers/terms)"
#. type: Bullet: '* '
#: support/documentation/content/en/documentation/user/streamers/channel.md
@@ -3716,91 +3720,110 @@ msgstr "Mit dieser Funktion können Sie z. B. Ihre Moderatoren bitten, alle Chat
#. type: Yaml Front Matter Hash Value: description
#: support/documentation/content/en/documentation/user/streamers/terms.md
-#, fuzzy, no-wrap
-#| msgid "Peertube channel chatrooms configuration"
+#, no-wrap
msgid "Configure channel's chat terms & conditions"
-msgstr "Peertube Kanal Chaträume Konfiguration"
+msgstr "Konfigurieren Sie die Chat-Nutzungsbedingungen für den Kanal"
#. type: Yaml Front Matter Hash Value: title
#: support/documentation/content/en/documentation/user/streamers/terms.md
#, no-wrap
msgid "Terms & conditions"
-msgstr ""
+msgstr "Nutzungsbedingungen"
#. type: Title ##
#: support/documentation/content/en/documentation/user/streamers/terms.md
-#, fuzzy, no-wrap
-#| msgid "Channel configuration"
+#, no-wrap
msgid "Configuration"
-msgstr "Kanalkonfiguration"
+msgstr "Konfiguration"
#. type: Plain text
#: support/documentation/content/en/documentation/user/streamers/terms.md
msgid "You can add terms & conditions to your channel. These terms will be shown to all users joining the chat."
msgstr ""
+"Sie können Ihrem Kanal Nutzungsbedingungen hinzufügen. Diese "
+"Nutzungsbedingungen werden allen Benutzern angezeigt, die den Chat betreten."
#. type: Plain text
#: support/documentation/content/en/documentation/user/streamers/terms.md
-#, fuzzy
-#| msgid "To access this page, check the [channel configuration documentation](/peertube-plugin-livechat/documentation/user/streamers/channel)."
msgid "To configure the terms & conditions, go to the [channel configuration page](/peertube-plugin-livechat/documentation/user/streamers/channel):"
-msgstr "Um auf diese Seite zuzugreifen, sehen Sie sich die [Kanal Konfigurations Dokumentation](/peertube-plugin-livechat/de/documentation/user/streamers/channel) an."
+msgstr ""
+"Um die Nutzungsbedingungen zu konfigurieren, gehen Sie auf die [Kanal-"
+"Konfigurationsseite](/peertube-plugin-livechat/de/documentation/user/"
+"streamers/channel):"
#. type: Plain text
#: support/documentation/content/en/documentation/user/streamers/terms.md
-#, fuzzy
-#| msgid "![Channel configuration](/peertube-plugin-livechat/images/channel_configuration.png?classes=shadow,border&height=400px)"
msgid "![Channel configuration / Terms](/peertube-plugin-livechat/images/channel_terms_config.png?classes=shadow,border&height=400px)"
-msgstr "![Kanalkonfiguration](/peertube-plugin-livechat/images/channel_configuration.png?classes=shadow,border&height=400px)"
+msgstr ""
+"![Kanalkonfiguration / Nutzungsbedingungen](/peertube-plugin-livechat/images/"
+"channel_terms_config.png?classes=shadow,border&height=400px)"
#. type: Plain text
#: support/documentation/content/en/documentation/user/streamers/terms.md
msgid "URL in the message will be clickable. You can also do some styling: [Message Styling](https://xmpp.org/extensions/xep-0393.html)."
msgstr ""
+"Die URL in der Nachricht wird anklickbar sein. Sie können die Nachricht "
+"auch etwas gestalten: [Message Styling](https://xmpp.org/extensions/xep-0393."
+"html)."
#. type: Title ##
#: support/documentation/content/en/documentation/user/streamers/terms.md
-#, fuzzy, no-wrap
-#| msgid "For viewers"
+#, no-wrap
msgid "Viewers"
-msgstr "Für Zuschauer"
+msgstr "Zuschauer"
#. type: Plain text
#: support/documentation/content/en/documentation/user/streamers/terms.md
msgid "When joining the chat, viewers will see the terms:"
-msgstr ""
+msgstr "Wenn Sie dem Chat beitreten, sehen die Zuschauer die Bedingungen:"
#. type: Plain text
#: support/documentation/content/en/documentation/user/streamers/terms.md
-#, fuzzy
-#| msgid "![Birds](/peertube-plugin-livechat/images/avatar_bird.png?classes=shadow,border&height=40px)"
msgid "![Terms](/peertube-plugin-livechat/images/terms.png?classes=shadow,border&height=400px)"
-msgstr "![Vögel](/peertube-plugin-livechat/images/avatar_bird.png?classes=shadow,border&height=40px)"
+msgstr ""
+"![Bedingungen](/peertube-plugin-livechat/images/terms."
+"png?classes=shadow,border&height=400px)"
#. type: Plain text
#: support/documentation/content/en/documentation/user/streamers/terms.md
msgid "Peertube instance's admin can also set global terms & conditions. If so, these terms will be shown above your channel's terms."
msgstr ""
+"Der Administrator der Peertube-Instanz kann auch globale Nutzungsbedingungen "
+"festlegen. Wenn dies der Fall ist, werden diese Bedingungen über den "
+"Bedingungen Ihres Kanals angezeigt."
#. type: Plain text
#: support/documentation/content/en/documentation/user/streamers/terms.md
msgid "Anonymous users will only see the terms & conditions once they have chosen their nickname (in other words: once they are able to talk)."
msgstr ""
+"Anonyme Nutzer sehen die Nutzungsbedingungen erst, wenn sie ihren Nickname "
+"gewählt haben (mit anderen Worten: wenn sie schreiben können)."
#. type: Plain text
#: support/documentation/content/en/documentation/user/streamers/terms.md
msgid "You can change the terms content at any time, it will be instantly updated for all viewers."
msgstr ""
+"Sie können den Inhalt der Nutzungsbedingungen jederzeit ändern, er wird dann "
+"sofort für alle Betrachter aktualisiert."
#. type: Plain text
#: support/documentation/content/en/documentation/user/streamers/terms.md
msgid "Users can hide the terms & conditions. When doing so, terms won't be shown again, unless you change the content."
msgstr ""
+"Benutzer können die Nutzungsbedingungen ausblenden. Wenn Sie dies tun, "
+"werden die Bedingungen nicht mehr angezeigt, es sei denn, Sie ändern den "
+"Inhalt."
#. type: Plain text
#: support/documentation/content/en/documentation/user/streamers/terms.md
msgid "If your Peertube instance allows joining chat with [XMPP clients](https://livingston.frama.io/peertube-plugin-livechat/documentation/admin/advanced/xmpp_clients/), users using such clients will see the terms as chat messages, comming from a \"Peertube\" account. When you update terms, they will receive a new message with the update terms content."
msgstr ""
+"Wenn Ihre Peertube-Instanz die Teilnahme am Chat mit [XMPP-Clients] "
+"(https://livingston.frama.io/peertube-plugin-livechat/de/documentation/admin/"
+"advanced/xmpp_clients/) erlaubt, sehen die Benutzer, die solche Clients "
+"verwenden, die Bedingungen als Chat-Nachrichten, die von einem \"Peertube\"-"
+"Konto kommen. Wenn Sie die Bedingungen aktualisieren, erhalten sie eine "
+"neue Nachricht mit dem Inhalt der aktualisierten Bedingungen."
#. type: Yaml Front Matter Hash Value: description
#: support/documentation/content/en/documentation/user/viewers.md
diff --git a/support/documentation/po/livechat.hr.po b/support/documentation/po/livechat.hr.po
index cbfaf743..cffb1f48 100644
--- a/support/documentation/po/livechat.hr.po
+++ b/support/documentation/po/livechat.hr.po
@@ -7,15 +7,17 @@ msgid ""
msgstr ""
"Project-Id-Version: peertube-plugin-livechat-documentation VERSION\n"
"POT-Creation-Date: 2024-06-25 17:22+0200\n"
-"PO-Revision-Date: 2024-06-18 20:10+0000\n"
+"PO-Revision-Date: 2024-06-25 19:17+0000\n"
"Last-Translator: Milo Ivir \n"
-"Language-Team: Croatian \n"
+"Language-Team: Croatian \n"
"Language: hr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
-"X-Generator: Weblate 5.5.5\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
+"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"X-Generator: Weblate 5.6.1\n"
#. type: Yaml Front Matter Hash Value: description
#: support/documentation/content/en/contact/_index.md
@@ -1905,10 +1907,9 @@ msgstr ""
#. type: Title ##
#: build/documentation/pot_in/documentation/admin/settings.md
-#, fuzzy, no-wrap
-#| msgid "Documentation"
+#, no-wrap
msgid "Authentication"
-msgstr "Dokumentacija"
+msgstr "Autentifikacija"
#. type: Plain text
#: build/documentation/pot_in/documentation/admin/settings.md
@@ -1929,7 +1930,7 @@ msgstr ""
#: build/documentation/pot_in/documentation/admin/settings.md
#, no-wrap
msgid "Channel advanced configuration"
-msgstr ""
+msgstr "Napredna konfiguracija kanala"
#. type: Plain text
#: build/documentation/pot_in/documentation/admin/settings.md
@@ -2081,7 +2082,7 @@ msgstr ""
#: build/documentation/pot_in/documentation/admin/settings.md
#, no-wrap
msgid "Chat server advanced settings"
-msgstr ""
+msgstr "Napredne postavke chat servera"
#. type: Plain text
#: build/documentation/pot_in/documentation/admin/settings.md
@@ -2132,10 +2133,9 @@ msgstr ""
#. type: Yaml Front Matter Hash Value: description
#: support/documentation/content/en/documentation/_index.md
-#, fuzzy, no-wrap
-#| msgid "Write documentation"
+#, no-wrap
msgid "Plugin documentation"
-msgstr "Piši dokumentaciju"
+msgstr "Dokumentacija dodataka"
#. type: Yaml Front Matter Hash Value: description
#: support/documentation/content/en/documentation/installation/cpu_compatibility.md
@@ -2307,7 +2307,7 @@ msgstr ""
#: support/documentation/content/en/documentation/installation/troubleshooting.md
#, no-wrap
msgid "Diagnostic tool"
-msgstr ""
+msgstr "Alat za dijagnozu"
#. type: Plain text
#: support/documentation/content/en/documentation/installation/troubleshooting.md
@@ -2359,10 +2359,10 @@ msgstr ""
#. type: Plain text
#: support/documentation/content/en/documentation/installation/troubleshooting.md
-#, fuzzy
-#| msgid "[Custom emojis](/peertube-plugin-livechat/documentation/user/streamers/emojis)"
msgid "Check the help for [this setting](/peertube-plugin-livechat/documentation/admin/settings/) for more information."
-msgstr "[Prilagođeni emojiji](/peertube-plugin-livechat/documentation/user/streamers/emojis)"
+msgstr ""
+"Za više informacija pogledaj stranicu pomoći za [ovu postavku](/peertube-"
+"plugin-livechat/documentation/admin/settings/)."
#. type: Title ###
#: support/documentation/content/en/documentation/installation/troubleshooting.md
@@ -2401,7 +2401,7 @@ msgstr ""
#: support/documentation/content/en/documentation/installation/upgrade_before_6.0.0.md
#, no-wrap
msgid "IMPORTANT NOTE"
-msgstr ""
+msgstr "VAŽNA NAPOMENA"
#. type: Plain text
#: support/documentation/content/en/documentation/installation/upgrade_before_6.0.0.md
@@ -3634,14 +3634,13 @@ msgstr ""
#: support/documentation/content/en/documentation/user/streamers/terms.md
#, no-wrap
msgid "Terms & conditions"
-msgstr ""
+msgstr "Uvjeti i odredbe"
#. type: Title ##
#: support/documentation/content/en/documentation/user/streamers/terms.md
-#, fuzzy, no-wrap
-#| msgid "Channel configuration"
+#, no-wrap
msgid "Configuration"
-msgstr "Konfiguracija kanala"
+msgstr "Konfiguracija"
#. type: Plain text
#: support/documentation/content/en/documentation/user/streamers/terms.md
@@ -3650,10 +3649,10 @@ msgstr ""
#. type: Plain text
#: support/documentation/content/en/documentation/user/streamers/terms.md
-#, fuzzy
-#| msgid "[Custom emojis](/peertube-plugin-livechat/documentation/user/streamers/emojis)"
msgid "To configure the terms & conditions, go to the [channel configuration page](/peertube-plugin-livechat/documentation/user/streamers/channel):"
-msgstr "[Prilagođeni emojiji](/peertube-plugin-livechat/documentation/user/streamers/emojis)"
+msgstr ""
+"Za konfiguriranje uvjeta i odredbi idi na [stranicu za konfiguraciju kanala"
+"](/peertube-plugin-livechat/documentation/user/streamers/channel):"
#. type: Plain text
#: support/documentation/content/en/documentation/user/streamers/terms.md