Files
sell/middlelayer/adapters/Mock/_i18n/mockTranslations.ts

192 lines
5.3 KiB
TypeScript

/**
* Mock-Daten für Übersetzungen
* Diese können später durch einen echten CMS-Adapter ersetzt werden
*/
export interface Translation {
key: string;
value: string;
namespace?: string;
}
export interface TranslationsData {
locale: string;
translations: Translation[];
}
/**
* Mock-Übersetzungen für Deutsch (de)
*/
export const mockTranslationsDe: TranslationsData = {
locale: "de",
translations: [
// Login Modal
{ key: "login.title", value: "Anmelden", namespace: "auth" },
{ key: "login.email", value: "E-Mail", namespace: "auth" },
{ key: "login.password", value: "Passwort", namespace: "auth" },
{ key: "login.submit", value: "Anmelden", namespace: "auth" },
{ key: "login.loading", value: "Wird geladen...", namespace: "auth" },
{
key: "login.error",
value: "Login fehlgeschlagen. Bitte versuchen Sie es erneut.",
namespace: "auth",
},
{
key: "login.noAccount",
value: "Noch kein Konto?",
namespace: "auth",
},
{
key: "login.registerNow",
value: "Jetzt registrieren",
namespace: "auth",
},
// Register Modal
{ key: "register.title", value: "Registrieren", namespace: "auth" },
{ key: "register.name", value: "Name", namespace: "auth" },
{ key: "register.email", value: "E-Mail", namespace: "auth" },
{ key: "register.password", value: "Passwort", namespace: "auth" },
{
key: "register.confirmPassword",
value: "Passwort bestätigen",
namespace: "auth",
},
{ key: "register.submit", value: "Registrieren", namespace: "auth" },
{
key: "register.loading",
value: "Wird geladen...",
namespace: "auth",
},
{
key: "register.error",
value: "Registrierung fehlgeschlagen. Bitte versuchen Sie es erneut.",
namespace: "auth",
},
{
key: "register.passwordMismatch",
value: "Passwörter stimmen nicht überein",
namespace: "auth",
},
{
key: "register.passwordTooShort",
value: "Passwort muss mindestens 6 Zeichen lang sein",
namespace: "auth",
},
{
key: "register.hasAccount",
value: "Bereits ein Konto?",
namespace: "auth",
},
{
key: "register.loginNow",
value: "Jetzt anmelden",
namespace: "auth",
},
// Navigation
{ key: "nav.login", value: "Anmelden", namespace: "common" },
{ key: "nav.register", value: "Registrieren", namespace: "common" },
{ key: "nav.logout", value: "Abmelden", namespace: "common" },
{ key: "nav.greeting", value: "Hallo, {name}", namespace: "common" },
],
};
/**
* Mock-Übersetzungen für Englisch (en)
*/
export const mockTranslationsEn: TranslationsData = {
locale: "en",
translations: [
// Login Modal
{ key: "login.title", value: "Sign In", namespace: "auth" },
{ key: "login.email", value: "Email", namespace: "auth" },
{ key: "login.password", value: "Password", namespace: "auth" },
{ key: "login.submit", value: "Sign In", namespace: "auth" },
{ key: "login.loading", value: "Loading...", namespace: "auth" },
{
key: "login.error",
value: "Login failed. Please try again.",
namespace: "auth",
},
{
key: "login.noAccount",
value: "Don't have an account?",
namespace: "auth",
},
{
key: "login.registerNow",
value: "Register now",
namespace: "auth",
},
// Register Modal
{ key: "register.title", value: "Register", namespace: "auth" },
{ key: "register.name", value: "Name", namespace: "auth" },
{ key: "register.email", value: "Email", namespace: "auth" },
{ key: "register.password", value: "Password", namespace: "auth" },
{
key: "register.confirmPassword",
value: "Confirm Password",
namespace: "auth",
},
{ key: "register.submit", value: "Register", namespace: "auth" },
{
key: "register.loading",
value: "Loading...",
namespace: "auth",
},
{
key: "register.error",
value: "Registration failed. Please try again.",
namespace: "auth",
},
{
key: "register.passwordMismatch",
value: "Passwords do not match",
namespace: "auth",
},
{
key: "register.passwordTooShort",
value: "Password must be at least 6 characters long",
namespace: "auth",
},
{
key: "register.hasAccount",
value: "Already have an account?",
namespace: "auth",
},
{
key: "register.loginNow",
value: "Sign in now",
namespace: "auth",
},
// Navigation
{ key: "nav.login", value: "Sign In", namespace: "common" },
{ key: "nav.register", value: "Register", namespace: "common" },
{ key: "nav.logout", value: "Logout", namespace: "common" },
{ key: "nav.greeting", value: "Hello, {name}", namespace: "common" },
],
};
/**
* Gibt Übersetzungen für eine bestimmte Locale zurück
*/
export function getTranslations(
locale: string = "de",
namespace?: string
): TranslationsData {
const translations =
locale === "en" ? mockTranslationsEn : mockTranslationsDe;
// Filter nach Namespace, falls angegeben
if (namespace) {
return {
locale: translations.locale,
translations: translations.translations.filter(
(t) => t.namespace === namespace
),
};
}
return translations;
}