diff --git a/frontend/src/i18n.ts b/frontend/src/i18n.ts
index d3c4095..f67c79c 100644
--- a/frontend/src/i18n.ts
+++ b/frontend/src/i18n.ts
@@ -143,7 +143,12 @@ const resources = {
"legalInfo": "Information according to § 5 TMG:",
"contact": "Contact",
"responsible": "Responsible for content according to § 55 Abs. 2 RStV:",
- "disclaimerTitle": "Legal Disclaimer"
+ "disclaimerTitle": "Legal Disclaimer",
+ "region": "Germany",
+ "liabilityContentTitle": "Liability for Content:",
+ "liabilityContentDesc": "As a service provider, we are responsible for our own content on these pages in accordance with general laws according to § 7 Para. 1 TMG. According to §§ 8 to 10 TMG, however, we as service providers are not obliged to monitor transmitted or stored third-party information.",
+ "copyrightTitle": "Copyright:",
+ "copyrightDesc": "The content and works created by the site operators on these pages are subject to German copyright law. The reproduction, processing, distribution and any kind of exploitation outside the limits of copyright law require the written consent of the respective author."
}
}
},
@@ -287,7 +292,12 @@ const resources = {
"legalInfo": "Angaben gemäß § 5 TMG:",
"contact": "Kontakt",
"responsible": "Verantwortlich für den Inhalt nach § 55 Abs. 2 RStV:",
- "disclaimerTitle": "Haftungsausschluss"
+ "disclaimerTitle": "Haftungsausschluss",
+ "region": "Deutschland",
+ "liabilityContentTitle": "Haftung für Inhalte:",
+ "liabilityContentDesc": "Als Diensteanbieter sind wir gemäß § 7 Abs.1 TMG für eigene Inhalte auf diesen Seiten nach den allgemeinen Gesetzen verantwortlich. Nach §§ 8 bis 10 TMG sind wir als Diensteanbieter jedoch nicht verpflichtet, übermittelte oder gespeicherte fremde Informationen zu überwachen.",
+ "copyrightTitle": "Urheberrecht:",
+ "copyrightDesc": "Die durch die Seitenbetreiber erstellten Inhalte und Werke auf diesen Seiten unterliegen dem deutschen Urheberrecht. Die Vervielfältigung, Bearbeitung, Verbreitung und jede Art der Verwertung außerhalb der Grenzen des Urheberrechtes bedürfen der schriftlichen Zustimmung des jeweiligen Autors."
}
}
}
diff --git a/frontend/src/pages/About.tsx b/frontend/src/pages/About.tsx
index f7d8524..8e12e1d 100644
--- a/frontend/src/pages/About.tsx
+++ b/frontend/src/pages/About.tsx
@@ -50,7 +50,7 @@ const About: React.FC = () => {
{import.meta.env.VITE_IMPRESSUM_NAME || '[Your Name or Project Name]'}
{import.meta.env.VITE_IMPRESSUM_STREET || '[Your Street Address]'}
{import.meta.env.VITE_IMPRESSUM_CITY || '[Postal Code and City]'}
- Germany
+ {t('about.region')}
@@ -76,14 +76,10 @@ const About: React.FC = () => {
{t('about.disclaimerTitle')}
- Haftung für Inhalte: Als Diensteanbieter sind wir gemäß § 7 Abs.1 TMG für eigene Inhalte
- auf diesen Seiten nach den allgemeinen Gesetzen verantwortlich. Nach §§ 8 bis 10 TMG sind wir als Diensteanbieter
- jedoch nicht verpflichtet, übermittelte oder gespeicherte fremde Informationen zu überwachen.
+ {t('about.liabilityContentTitle')} {t('about.liabilityContentDesc')}
- Urheberrecht: Die durch die Seitenbetreiber erstellten Inhalte und Werke auf diesen Seiten
- unterliegen dem deutschen Urheberrecht. Die Vervielfältigung, Bearbeitung, Verbreitung und jede Art der
- Verwertung außerhalb der Grenzen des Urheberrechtes bedürfen der schriftlichen Zustimmung des jeweiligen Autors.
+ {t('about.copyrightTitle')} {t('about.copyrightDesc')}
diff --git a/frontend/src/pages/Privacy.tsx b/frontend/src/pages/Privacy.tsx
index f3808ba..c455ae2 100644
--- a/frontend/src/pages/Privacy.tsx
+++ b/frontend/src/pages/Privacy.tsx
@@ -1,14 +1,22 @@
-import React, { useState } from 'react';
+import React from 'react';
import { Typography, Box, Container, Paper, Button, ToggleButton, ToggleButtonGroup, useMediaQuery } from '@mui/material';
import { Link } from 'react-router-dom';
import ArrowBackIcon from '@mui/icons-material/ArrowBack';
import { useTitle } from '../hooks/useTitle';
+import { useTranslation } from 'react-i18next';
const Privacy: React.FC = () => {
- useTitle('Privacy Policy / Datenschutzerklärung');
- const [lang, setLang] = useState<'de' | 'en'>('de');
+ const { t, i18n } = useTranslation();
+ const lang = i18n.language.startsWith('de') ? 'de' : 'en';
+ useTitle(lang === 'de' ? 'Datenschutzerklärung' : 'Privacy Policy');
const isMobile = useMediaQuery('(max-width:600px)');
+ const handleLangChange = (_: any, newLang: string | null) => {
+ if (newLang) {
+ i18n.changeLanguage(newLang);
+ }
+ };
+
return (
@@ -19,13 +27,13 @@ const Privacy: React.FC = () => {
startIcon={}
sx={{ textTransform: 'none', borderRadius: 2 }}
>
- {lang === 'de' ? 'Zurück' : 'Back'}
+ {t('common.back')}
v && setLang(v)}
+ onChange={handleLangChange}
size="small"
>
Deutsch