feat: update legal document translations and add new language support

- Replaced the existing legal document files with more specific ones for delivery, payment, and consumer rights.
- Added new legal documents related to data protection, including basic, customer, Google orders, newsletter, chatbot, cookies, and rights.
- Introduced Albanian language support in the translation files and language switcher component.
- Enhanced the translation functions to ensure structural files are copied correctly for new languages.
This commit is contained in:
sebseb7
2025-08-05 18:17:08 +02:00
parent 9f707737b4
commit c1d2205e6c
18 changed files with 290 additions and 162 deletions

View File

@@ -4,8 +4,16 @@ import { initReactI18next } from 'react-i18next';
// Only import German translations by default
import translationDE from './locales/de/index.js';
import legalAgbDE from './locales/de/legal-agb.js';
import legalDatenschutzDE from './locales/de/legal-datenschutz.js';
import legalAgbDeliveryDE from './locales/de/legal-agb-delivery.js';
import legalAgbPaymentDE from './locales/de/legal-agb-payment.js';
import legalAgbConsumerDE from './locales/de/legal-agb-consumer.js';
import legalDatenschutzBasicDE from './locales/de/legal-datenschutz-basic.js';
import legalDatenschutzCustomerDE from './locales/de/legal-datenschutz-customer.js';
import legalDatenschutzGoogleOrdersDE from './locales/de/legal-datenschutz-google-orders.js';
import legalDatenschutzNewsletterDE from './locales/de/legal-datenschutz-newsletter.js';
import legalDatenschutzChatbotDE from './locales/de/legal-datenschutz-chatbot.js';
import legalDatenschutzCookiesPaymentDE from './locales/de/legal-datenschutz-cookies-payment.js';
import legalDatenschutzRightsDE from './locales/de/legal-datenschutz-rights.js';
import legalImpressumDE from './locales/de/legal-impressum.js';
import legalWiderrufDE from './locales/de/legal-widerruf.js';
import legalBatterieDE from './locales/de/legal-batterie.js';
@@ -31,15 +39,31 @@ const loadLanguage = async (language) => {
// Dynamic imports for lazy loading
const [
translation,
legalAgb,
legalDatenschutz,
legalAgbDelivery,
legalAgbPayment,
legalAgbConsumer,
legalDatenschutzBasic,
legalDatenschutzCustomer,
legalDatenschutzGoogleOrders,
legalDatenschutzNewsletter,
legalDatenschutzChatbot,
legalDatenschutzCookiesPayment,
legalDatenschutzRights,
legalImpressum,
legalWiderruf,
legalBatterie
] = await Promise.all([
import(`./locales/${language}/index.js`),
import(`./locales/${language}/legal-agb.js`),
import(`./locales/${language}/legal-datenschutz.js`),
import(`./locales/${language}/legal-agb-delivery.js`),
import(`./locales/${language}/legal-agb-payment.js`),
import(`./locales/${language}/legal-agb-consumer.js`),
import(`./locales/${language}/legal-datenschutz-basic.js`),
import(`./locales/${language}/legal-datenschutz-customer.js`),
import(`./locales/${language}/legal-datenschutz-google-orders.js`),
import(`./locales/${language}/legal-datenschutz-newsletter.js`),
import(`./locales/${language}/legal-datenschutz-chatbot.js`),
import(`./locales/${language}/legal-datenschutz-cookies-payment.js`),
import(`./locales/${language}/legal-datenschutz-rights.js`),
import(`./locales/${language}/legal-impressum.js`),
import(`./locales/${language}/legal-widerruf.js`),
import(`./locales/${language}/legal-batterie.js`)
@@ -47,8 +71,16 @@ const loadLanguage = async (language) => {
// Add the loaded resources to i18n
i18n.addResourceBundle(language, 'translation', translation.default);
i18n.addResourceBundle(language, 'legal-agb', legalAgb.default);
i18n.addResourceBundle(language, 'legal-datenschutz', legalDatenschutz.default);
i18n.addResourceBundle(language, 'legal-agb-delivery', legalAgbDelivery.default);
i18n.addResourceBundle(language, 'legal-agb-payment', legalAgbPayment.default);
i18n.addResourceBundle(language, 'legal-agb-consumer', legalAgbConsumer.default);
i18n.addResourceBundle(language, 'legal-datenschutz-basic', legalDatenschutzBasic.default);
i18n.addResourceBundle(language, 'legal-datenschutz-customer', legalDatenschutzCustomer.default);
i18n.addResourceBundle(language, 'legal-datenschutz-google-orders', legalDatenschutzGoogleOrders.default);
i18n.addResourceBundle(language, 'legal-datenschutz-newsletter', legalDatenschutzNewsletter.default);
i18n.addResourceBundle(language, 'legal-datenschutz-chatbot', legalDatenschutzChatbot.default);
i18n.addResourceBundle(language, 'legal-datenschutz-cookies-payment', legalDatenschutzCookiesPayment.default);
i18n.addResourceBundle(language, 'legal-datenschutz-rights', legalDatenschutzRights.default);
i18n.addResourceBundle(language, 'legal-impressum', legalImpressum.default);
i18n.addResourceBundle(language, 'legal-widerruf', legalWiderruf.default);
i18n.addResourceBundle(language, 'legal-batterie', legalBatterie.default);
@@ -126,8 +158,16 @@ const customDetector = {
const resources = {
de: {
translation: translationDE,
'legal-agb': legalAgbDE,
'legal-datenschutz': legalDatenschutzDE,
'legal-agb-delivery': legalAgbDeliveryDE,
'legal-agb-payment': legalAgbPaymentDE,
'legal-agb-consumer': legalAgbConsumerDE,
'legal-datenschutz-basic': legalDatenschutzBasicDE,
'legal-datenschutz-customer': legalDatenschutzCustomerDE,
'legal-datenschutz-google-orders': legalDatenschutzGoogleOrdersDE,
'legal-datenschutz-newsletter': legalDatenschutzNewsletterDE,
'legal-datenschutz-chatbot': legalDatenschutzChatbotDE,
'legal-datenschutz-cookies-payment': legalDatenschutzCookiesPaymentDE,
'legal-datenschutz-rights': legalDatenschutzRightsDE,
'legal-impressum': legalImpressumDE,
'legal-widerruf': legalWiderrufDE,
'legal-batterie': legalBatterieDE