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

View File

@@ -1,6 +1,12 @@
{ {
"nav": { "nav": {
"toggleTheme": "Theme wechseln" "toggleTheme": "Theme wechseln",
"features": "Features",
"pricing": "Preise",
"faq": "FAQ",
"login": "Anmelden",
"getStarted": "Jetzt starten",
"switchLang": "Sprache wechseln"
}, },
"hero": { "hero": {
"badge": "Jetzt verfügbar", "badge": "Jetzt verfügbar",
@@ -129,6 +135,17 @@
"product": "Produkt", "product": "Produkt",
"company": "Unternehmen", "company": "Unternehmen",
"legal": "Rechtliches", "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": { "nav": {
"toggleTheme": "Toggle theme" "toggleTheme": "Toggle theme",
"features": "Features",
"pricing": "Pricing",
"faq": "FAQ",
"login": "Login",
"getStarted": "Get started",
"switchLang": "Switch language"
}, },
"hero": { "hero": {
"badge": "Now available", "badge": "Now available",
@@ -129,6 +135,17 @@
"product": "Product", "product": "Product",
"company": "Company", "company": "Company",
"legal": "Legal", "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"> <div class="footer-links">
<h4>{{ t('footer.product') }}</h4> <h4>{{ t('footer.product') }}</h4>
<a href="#features">Features</a> <a href="#features">{{ t('footer.features') }}</a>
<a href="#pricing">Pricing</a> <a href="#pricing">{{ t('footer.pricing') }}</a>
<a href="#">Changelog</a> <a href="#">{{ t('footer.changelog') }}</a>
<a href="#">Roadmap</a> <a href="#">{{ t('footer.roadmap') }}</a>
</div> </div>
<div class="footer-links"> <div class="footer-links">
<h4>{{ t('footer.company') }}</h4> <h4>{{ t('footer.company') }}</h4>
<a href="#">About</a> <a href="#">{{ t('footer.about') }}</a>
<a href="#">Blog</a> <a href="#">{{ t('footer.blog') }}</a>
<a href="#">Careers</a> <a href="#">{{ t('footer.careers') }}</a>
<a href="#">Contact</a> <a href="#">{{ t('footer.contact') }}</a>
</div> </div>
<div class="footer-links"> <div class="footer-links">
<h4>{{ t('footer.legal') }}</h4> <h4>{{ t('footer.legal') }}</h4>
<a href="#">Privacy</a> <a href="#">{{ t('footer.privacy') }}</a>
<a href="#">Terms</a> <a href="#">{{ t('footer.terms') }}</a>
<a href="#">Imprint</a> <a href="#">{{ t('footer.imprint') }}</a>
</div> </div>
</div> </div>