fix: Vollständige i18n für Navbar und Footer

- Navbar: Features, Preise, FAQ, Anmelden, Jetzt starten
- Footer: Alle Links übersetzt (DE/EN)
This commit is contained in:
2026-02-11 09:23:27 +00:00
parent 0b21a7a1c1
commit 8c79db0942
5 changed files with 56 additions and 22 deletions

Binary file not shown.

View File

@@ -3,7 +3,7 @@ import { ref, onMounted } from 'vue'
import { useI18n } from 'vue-i18n'
import Button from 'primevue/button'
const { locale } = useI18n()
const { locale, t } = useI18n()
const scrolled = ref(false)
const mobileMenuOpen = ref(false)
@@ -28,17 +28,17 @@ function toggleLocale() {
</div>
<div class="nav-links" :class="{ open: mobileMenuOpen }">
<a href="#features" class="nav-link">Features</a>
<a href="#pricing" class="nav-link">Pricing</a>
<a href="#docs" class="nav-link">Docs</a>
<a href="#features" class="nav-link">{{ t('nav.features') }}</a>
<a href="#pricing" class="nav-link">{{ t('nav.pricing') }}</a>
<a href="#faq" class="nav-link">{{ t('nav.faq') }}</a>
</div>
<div class="nav-actions">
<button class="lang-toggle" @click="toggleLocale">
<button class="lang-toggle" @click="toggleLocale" :title="t('nav.switchLang')">
{{ locale.toUpperCase() }}
</button>
<Button label="Login" class="btn-nav-ghost" text />
<Button label="Get Started" class="btn-nav-primary" />
<Button :label="t('nav.login')" class="btn-nav-ghost" text />
<Button :label="t('nav.getStarted')" class="btn-nav-primary" />
</div>
<button class="mobile-toggle" @click="mobileMenuOpen = !mobileMenuOpen">

View File

@@ -1,6 +1,12 @@
{
"nav": {
"toggleTheme": "Theme wechseln"
"toggleTheme": "Theme wechseln",
"features": "Features",
"pricing": "Preise",
"faq": "FAQ",
"login": "Anmelden",
"getStarted": "Jetzt starten",
"switchLang": "Sprache wechseln"
},
"hero": {
"badge": "Jetzt verfügbar",
@@ -129,6 +135,17 @@
"product": "Produkt",
"company": "Unternehmen",
"legal": "Rechtliches",
"rights": "Alle Rechte vorbehalten."
"rights": "Alle Rechte vorbehalten.",
"features": "Features",
"pricing": "Preise",
"changelog": "Changelog",
"roadmap": "Roadmap",
"about": "Über uns",
"blog": "Blog",
"careers": "Karriere",
"contact": "Kontakt",
"privacy": "Datenschutz",
"terms": "AGB",
"imprint": "Impressum"
}
}

View File

@@ -1,6 +1,12 @@
{
"nav": {
"toggleTheme": "Toggle theme"
"toggleTheme": "Toggle theme",
"features": "Features",
"pricing": "Pricing",
"faq": "FAQ",
"login": "Login",
"getStarted": "Get started",
"switchLang": "Switch language"
},
"hero": {
"badge": "Now available",
@@ -129,6 +135,17 @@
"product": "Product",
"company": "Company",
"legal": "Legal",
"rights": "All rights reserved."
"rights": "All rights reserved.",
"features": "Features",
"pricing": "Pricing",
"changelog": "Changelog",
"roadmap": "Roadmap",
"about": "About",
"blog": "Blog",
"careers": "Careers",
"contact": "Contact",
"privacy": "Privacy",
"terms": "Terms",
"imprint": "Imprint"
}
}

View File

@@ -262,25 +262,25 @@ function toggleFaq(index) {
<div class="footer-links">
<h4>{{ t('footer.product') }}</h4>
<a href="#features">Features</a>
<a href="#pricing">Pricing</a>
<a href="#">Changelog</a>
<a href="#">Roadmap</a>
<a href="#features">{{ t('footer.features') }}</a>
<a href="#pricing">{{ t('footer.pricing') }}</a>
<a href="#">{{ t('footer.changelog') }}</a>
<a href="#">{{ t('footer.roadmap') }}</a>
</div>
<div class="footer-links">
<h4>{{ t('footer.company') }}</h4>
<a href="#">About</a>
<a href="#">Blog</a>
<a href="#">Careers</a>
<a href="#">Contact</a>
<a href="#">{{ t('footer.about') }}</a>
<a href="#">{{ t('footer.blog') }}</a>
<a href="#">{{ t('footer.careers') }}</a>
<a href="#">{{ t('footer.contact') }}</a>
</div>
<div class="footer-links">
<h4>{{ t('footer.legal') }}</h4>
<a href="#">Privacy</a>
<a href="#">Terms</a>
<a href="#">Imprint</a>
<a href="#">{{ t('footer.privacy') }}</a>
<a href="#">{{ t('footer.terms') }}</a>
<a href="#">{{ t('footer.imprint') }}</a>
</div>
</div>