]> git.localhorst.tv Git - alttp.git/commitdiff
discord legal pages master
authorDaniel Karbach <daniel.karbach@localhorst.tv>
Thu, 31 Jul 2025 10:07:33 +0000 (12:07 +0200)
committerDaniel Karbach <daniel.karbach@localhorst.tv>
Thu, 31 Jul 2025 10:07:33 +0000 (12:07 +0200)
resources/js/app/Routes.jsx
resources/js/i18n/de.js
resources/js/i18n/en.js
resources/js/pages/DiscordPrivacy.jsx [new file with mode: 0644]
resources/js/pages/DiscordTerms.jsx [new file with mode: 0644]

index abfeee4491e5aeff296ba79b52e44bbd6b0b391b..f5aa150dad6bcc8834acdcbd579d5fecd8c49eda 100644 (file)
@@ -24,6 +24,20 @@ const router = createBrowserRouter(
                                                '../pages/DiscordBot'
                                        )}
                                />
+                               <Route
+                                       path="discord-privacy"
+                                       lazy={() => import(
+                                               /* webpackChunkName: "discord" */
+                                               '../pages/DiscordPrivacy'
+                                       )}
+                               />
+                               <Route
+                                       path="discord-terms"
+                                       lazy={() => import(
+                                               /* webpackChunkName: "discord" */
+                                               '../pages/DiscordTerms'
+                                       )}
+                               />
                                <Route
                                        path="dungeons"
                                        element={<Techniques namespace="dungeons" type="dungeon" />}
index b3e2dd4ed5891e9110527419f8da0dfb95c5805d..a28d86db75b30d552012a032dd2ce62d288faf83 100644 (file)
@@ -203,6 +203,18 @@ export default {
                        userSubscriptions: 'Abonnierte Benutzer',
                        userUnsubError: 'Fehler beim Kündigen',
                },
+               discordPrivacy: {
+                       date: 'Letzte Änderung: {{ date, LL }}',
+                       heading: 'Discord Bot Datenschutzbestimmungen',
+                       p1: 'Wenn du den Discord Bot auf deinen Server einlädst, läd er die Channel-Liste, Rollen-Liste und User-Liste. Das wird benutzt, um die Steuerelemente auf der Weboberfläche zu füllen.',
+                       p2: 'Daten im Zusammenhang mit DMs und Interaktionen werden nur zur Abhandlung im Arbeitsspeicher behalten und NICHT permanent gespeichert.',
+               },
+               discordTerms: {
+                       date: 'Letzte Änderung: {{ date, LL }}',
+                       heading: 'Discord Bot Nutzungsbedingungen',
+                       p1: 'Jedem steht frei, den Discord Bot einzuladen und die bereitgestellten Funktionen zu nutzen.',
+                       p2: 'Die Nützlichkeit ebbt jedoch stark ab, wenn man nicht an Retro Speedrun und Randomizer Races interessiert ist.',
+               },
                episodes: {
                        addPlayer: 'Spieler hinzufügen',
                        addRestream: 'Neuer Restream',
index 5e63ab9d04467cff6544754dd86bf486cc7bdb35..fd7d9f6762ecbe97bfe6ba38b74d303ce5ae7390 100644 (file)
@@ -203,6 +203,18 @@ export default {
                        userSubscriptions: 'User subscriptions',
                        userUnsubError: 'Error unsubscribing',
                },
+               discordPrivacy: {
+                       date: 'Last changed: {{ date, LL }}',
+                       heading: 'Discord Bot Privacy Policy',
+                       p1: 'When you add this bot to your server, it loads the channel list, role list and user list. This is to populate the control elements on the web interface.',
+                       p2: 'Data involved in handling DMs and interactions are processed in RAM and are NOT stored on disk.',
+               },
+               discordTerms: {
+                       date: 'Last changed: {{ date, LL }}',
+                       heading: 'Discord Bot Terms of Service',
+                       p1: 'Anyone is free to invite this bot to their discord server and use its functions as they see fit.',
+                       p2: 'Its usefulness, however, greatly decreases if you\'re not into retro speedrun and randomizer races.',
+               },
                episodes: {
                        addPlayer: 'Add player',
                        addRestream: 'Add Restream',
diff --git a/resources/js/pages/DiscordPrivacy.jsx b/resources/js/pages/DiscordPrivacy.jsx
new file mode 100644 (file)
index 0000000..eb4e604
--- /dev/null
@@ -0,0 +1,20 @@
+import React from 'react';
+import { Container } from 'react-bootstrap';
+import { Helmet } from 'react-helmet';
+import { useTranslation } from 'react-i18next';
+
+const TERMS_DATE = new Date('2025-07-31T10:00:00Z');
+
+export const Component = () => {
+       const { t } = useTranslation();
+
+       return <Container>
+               <h1>{t('discordPrivacy.heading')}</h1>
+               <Helmet>
+                       <title>{t('discordPrivacy.heading')}</title>
+               </Helmet>
+               <p>{t('discordPrivacy.p1')}</p>
+               <p>{t('discordPrivacy.p2')}</p>
+               <p className="text-muted">{t('discordPrivacy.date', { date: TERMS_DATE })}</p>
+       </Container>;
+};
diff --git a/resources/js/pages/DiscordTerms.jsx b/resources/js/pages/DiscordTerms.jsx
new file mode 100644 (file)
index 0000000..9e097ae
--- /dev/null
@@ -0,0 +1,20 @@
+import React from 'react';
+import { Container } from 'react-bootstrap';
+import { Helmet } from 'react-helmet';
+import { useTranslation } from 'react-i18next';
+
+const PRIVACY_DATE = new Date('2025-07-31T10:00:00Z');
+
+export const Component = () => {
+       const { t } = useTranslation();
+
+       return <Container>
+               <h1>{t('discordTerms.heading')}</h1>
+               <Helmet>
+                       <title>{t('discordTerms.heading')}</title>
+               </Helmet>
+               <p>{t('discordTerms.p1')}</p>
+               <p>{t('discordTerms.p2')}</p>
+               <p className="text-muted">{t('discordTerms.date', { date: PRIVACY_DATE })}</p>
+       </Container>;
+};