Refactor locale system: align types with usage, add CMS formatting docs (#59)

* Initial plan

* Initial analysis: understanding locale system issues

Co-authored-by: denshooter <44590296+denshooter@users.noreply.github.com>

* Fix translation types to match actual component usage

Co-authored-by: denshooter <44590296+denshooter@users.noreply.github.com>

* Add comprehensive locale system documentation and fix API route types

Co-authored-by: denshooter <44590296+denshooter@users.noreply.github.com>

* Address code review feedback: improve readability and translate comments to English

Co-authored-by: denshooter <44590296+denshooter@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: denshooter <44590296+denshooter@users.noreply.github.com>
This commit is contained in:
Copilot
2026-01-22 21:25:41 +01:00
committed by GitHub
parent 37a1bc4e18
commit 7604e00e0f
9 changed files with 1452 additions and 342 deletions

View File

@@ -1,6 +1,6 @@
/**
* Type Definitions für Directus-basierte Translations
* Jede Section hat ihre eigenen Translation Props
* Type Definitions for Directus-based Translations
* Each section has its own translation props
*/
export interface NavTranslations {
@@ -12,38 +12,34 @@ export interface NavTranslations {
export interface FooterTranslations {
role: string;
description: string;
links: {
privacy: string;
imprint: string;
};
copyright: string;
madeWith: string;
resetConsent: string;
madeIn: string;
legalNotice: string;
privacyPolicy: string;
privacySettings: string;
privacySettingsTitle: string;
builtWith: string;
}
export interface HeroTranslations {
greeting: string;
name: string;
role: string;
description: string;
cta: {
projects: string;
contact: string;
};
ctaWork: string;
ctaContact: string;
features: {
f1: string;
f2: string;
f3: string;
};
scrollDown: string;
}
export interface AboutTranslations {
title: string;
description: string;
p1: string;
p2: string;
p3: string;
funFactTitle: string;
funFactBody: string;
techStackTitle: string;
techStack: {
title: string;
categories: {
frontendMobile: string;
backendDevops: string;
@@ -54,49 +50,52 @@ export interface AboutTranslations {
selfHostedServices: string;
};
};
interests: {
title: string;
cybersecurity: {
title: string;
description: string;
};
selfHosting: {
title: string;
description: string;
};
gaming: {
title: string;
description: string;
};
automation: {
title: string;
description: string;
};
hobbiesTitle: string;
hobbies: {
selfHosting: string;
gaming: string;
gameServers: string;
jogging: string;
};
}
export interface ProjectsTranslations {
title: string;
subtitle: string;
viewAll: string;
}
export interface ContactTranslations {
title: string;
description: string;
subtitle: string;
getInTouch: string;
getInTouchBody: string;
form: {
name: string;
email: string;
message: string;
send: string;
title: string;
sending: string;
success: string;
error: string;
send: string;
placeholders: {
name: string;
email: string;
subject: string;
message: string;
};
errors: {
nameRequired: string;
nameMin: string;
emailRequired: string;
emailInvalid: string;
subjectRequired: string;
subjectMin: string;
messageRequired: string;
messageMin: string;
};
characters: string;
};
info: {
title: string;
email: string;
response: string;
emailLabel: string;
location: string;
locationValue: string;
};
}