fix(landing): correct German copy and restore feature-card hover animation
Finishes the manual edits from Gitea #16: fixes capitalization on "Jetzt starten" and grammar on the hero badge text, updates the banned-page contact address to team@pawfeed.org, and adds the missing `group` class so the feature-card icon's `group-hover:scale-105` actually fires. Keeps the RelativeTime strings in their original compact form ({count}m/h/d) since that format is documented as intentional for tight UI spots (comment lists, notifications, ad cards).
This commit is contained in:
1 parent
7395d83194
commit
6b79dfb570
3 files changed
+12
-12
No files matched your search
+5
-5
@@ -70,7 +70,7 @@
|
||||
"selectBreed": "Rasse auswählen (optional)",
|
||||
"selectSpeciesFirst": "Wähle zuerst eine Tierart aus",
|
||||
"noBreedsFound": "Keine Rassen gefunden.",
|
||||
"bio": "Bio",
|
||||
"bio": "Biografie",
|
||||
"bioPlaceholder": "Erzähl uns von {petName}…",
|
||||
"bioPlaceholderFallback": "Erzähl uns von deinem Tier…",
|
||||
"adoptionStory": "Adoptionsgeschichte",
|
||||
@@ -486,7 +486,7 @@
|
||||
"verifiedStatus": "Dieses Tier ist verifiziert.",
|
||||
"pendingStatus": "Dein Verifizierungsantrag wird noch geprüft.",
|
||||
"rejectedPrefix": "Der letzte Antrag wurde abgelehnt: {reason}",
|
||||
"criteriaHint": "Worauf wir achten: ein echtes, bekanntes Tier, bei dem eine Verwechslung plausibel wäre (Züchter, Tierheim, Medien-Tier), ein vollständiges Profil, ein sauberer Stand und eine etablierte, aktive Präsenz.",
|
||||
"criteriaHint": "Worauf wir achten: ein echtes, bekanntes Tier, ein vollständiges Profil, ein sauberer Stand und eine etablierte, aktive Präsenz.",
|
||||
"messagePlaceholder": "Warum sollte dieses Tier verifiziert werden?",
|
||||
"requestButton": "Verifizierung beantragen",
|
||||
"requestSubmitted": "Verifizierungsantrag eingereicht.",
|
||||
@@ -539,10 +539,10 @@
|
||||
},
|
||||
"Landing": {
|
||||
"tagline": "Wo Haustiere die Stars sind. Profile, Beiträge und Storys — gemacht für Hunde, Katzen und Vögel.",
|
||||
"getStarted": "Jetzt loslegen",
|
||||
"getStarted": "Jetzt starten",
|
||||
"logIn": "Anmelden",
|
||||
"previewAlt": "Der PawFeed-Feed mit Tierbeiträgen von Noctis und Bubi",
|
||||
"featuresHeading": "Gebaut für das Tier, nicht den Menschen",
|
||||
"featuresHeading": "Gebaut für dein Tier, nicht für den Menschen",
|
||||
"feature1Title": "Nicht Menschen, sondern Tiere sind das Profil",
|
||||
"feature1Body": "Jeder Hund, jede Katze, jeder Vogel bekommt eine eigene Identität — eigene Beiträge, Follower und eine eigene Story, getrennt vom Besitzer.",
|
||||
"feature2Title": "Beiträge, Storys & Kurzvideos",
|
||||
@@ -560,7 +560,7 @@
|
||||
"navLogin": "Anmelden",
|
||||
"navSignUp": "Registrieren",
|
||||
"heroBadge1": "Neuer Beitrag von Bubi",
|
||||
"heroBadge2": "24 Reaktionen",
|
||||
"heroBadge2": "Likes, Follows, Reaktionen",
|
||||
"heroBadge3": "Story ist aktiv",
|
||||
"catchHeading": "Für jedes Tier, jeden Menschen dahinter",
|
||||
"catchSubline": "PawFeed dreht das übliche Social Network um: dein Hund, deine Katze oder dein Vogel bekommt das Profil — du kümmerst dich einfach nur drum.",
|
||||
|
||||
@@ -8,10 +8,10 @@ export default function BannedPage() {
|
||||
Your account has been suspended due to a violation of our community
|
||||
guidelines. If you believe this is an error, please contact us at{" "}
|
||||
<a
|
||||
href="mailto:support@pawfeed.org"
|
||||
href="mailto:team@pawfeed.org"
|
||||
className="underline underline-offset-2"
|
||||
>
|
||||
support@pawfeed.org
|
||||
team@pawfeed.org
|
||||
</a>
|
||||
.
|
||||
</p>
|
||||
|
||||
+5
-5
@@ -142,7 +142,7 @@ export default async function RootPage() {
|
||||
|
||||
<div
|
||||
className="float-badge absolute -left-6 top-10 hidden items-center gap-2 rounded-2xl bg-white px-3 py-2 shadow-xl sm:flex"
|
||||
style={{ animationDelay: "0s" }}
|
||||
style={{ animationDelay: "0.5s" }}
|
||||
>
|
||||
<Heart className="h-4 w-4 shrink-0 fill-orange-500 text-orange-500" aria-hidden="true" />
|
||||
<span className="text-xs font-semibold text-foreground">{t("heroBadge2")}</span>
|
||||
@@ -171,7 +171,7 @@ export default async function RootPage() {
|
||||
{/* Catchphrase + feature grid */}
|
||||
<section className="px-6 py-24 sm:px-10">
|
||||
<div className="mx-auto max-w-5xl">
|
||||
<ScrollReveal className="text-center">
|
||||
<ScrollReveal className="text-center" delayMs={100}>
|
||||
<h2 className="text-3xl font-bold tracking-tight text-foreground sm:text-4xl">
|
||||
{t("catchHeading")}
|
||||
</h2>
|
||||
@@ -182,9 +182,9 @@ export default async function RootPage() {
|
||||
|
||||
<div className="mt-14 grid gap-6 sm:grid-cols-2 lg:grid-cols-4">
|
||||
{features.map(({ icon: Icon, title, body }, index) => (
|
||||
<ScrollReveal key={title} delayMs={index * 100}>
|
||||
<div className="h-full rounded-2xl border border-border/60 bg-card p-6 transition-shadow hover:shadow-md">
|
||||
<div className="flex h-11 w-11 items-center justify-center rounded-xl bg-orange-100 text-orange-600">
|
||||
<ScrollReveal key={title} delayMs={200 + index * 100}>
|
||||
<div className="group h-full rounded-2xl border border-border/60 bg-card p-6 transition-all duration-300 hover:-translate-y-1 hover:border-orange-500/30 hover:shadow-md">
|
||||
<div className="flex h-11 w-11 items-center justify-center rounded-xl bg-orange-100 text-orange-600 transition-transform duration-300 group-hover:scale-105">
|
||||
<Icon className="h-5.5 w-5.5" aria-hidden="true" />
|
||||
</div>
|
||||
<h3 className="mt-4 text-base font-semibold text-foreground">{title}</h3>
|
||||
|
||||
Reference in new issue
Block a user