This commit is contained in:
knuthtimo-lab 2026-01-22 22:24:06 +01:00
parent f67945d8e7
commit 0409fe2afd
3 changed files with 44 additions and 7 deletions

View File

@ -9,7 +9,10 @@
"create_qr": "QR erstellen", "create_qr": "QR erstellen",
"bulk_creation": "Massen-Erstellung", "bulk_creation": "Massen-Erstellung",
"analytics": "Analytik", "analytics": "Analytik",
"settings": "Einstellungen" "settings": "Einstellungen",
"cta": "Kostenlos starten",
"tools": "Kostenlose Tools",
"all_free": "Alle Generatoren sind 100% kostenlos"
}, },
"hero": { "hero": {
"badge": "Kostenloser QR-Code-Generator", "badge": "Kostenloser QR-Code-Generator",
@ -64,6 +67,8 @@
"demo_note": "Dies ist ein Demo-QR-Code" "demo_note": "Dies ist ein Demo-QR-Code"
}, },
"static_vs_dynamic": { "static_vs_dynamic": {
"title": "Warum dynamische QR-Codes Ihnen Geld sparen",
"description": "Hören Sie auf, Materialien neu zu drucken. Wechseln Sie Ziele sofort und verfolgen Sie jeden Scan.",
"static": { "static": {
"title": "Statische QR-Codes", "title": "Statische QR-Codes",
"subtitle": "Immer kostenlos", "subtitle": "Immer kostenlos",
@ -97,6 +102,10 @@
"title": "Vollständige Anpassung", "title": "Vollständige Anpassung",
"description": "Branden Sie Ihre QR-Codes mit individuellen Farben, Logos und Styling-Optionen." "description": "Branden Sie Ihre QR-Codes mit individuellen Farben, Logos und Styling-Optionen."
}, },
"unlimited": {
"title": "Unbegrenzte statische QR-Codes",
"description": "Erstellen Sie so viele statische QR-Codes wie Sie benötigen. Kostenlos für immer, ohne Limits."
},
"bulk": { "bulk": {
"title": "Bulk-Operationen", "title": "Bulk-Operationen",
"description": "Erstellen Sie hunderte von QR-Codes auf einmal mit CSV-Import und Batch-Verarbeitung." "description": "Erstellen Sie hunderte von QR-Codes auf einmal mit CSV-Import und Batch-Verarbeitung."
@ -370,5 +379,22 @@
"loading": "Lädt...", "loading": "Lädt...",
"error": "Ein Fehler ist aufgetreten", "error": "Ein Fehler ist aufgetreten",
"success": "Erfolgreich!" "success": "Erfolgreich!"
},
"footer": {
"product": "Produkt",
"features": "Funktionen",
"pricing": "Preise",
"faq": "FAQ",
"blog": "Blog",
"resources": "Ressourcen",
"full_pricing": "Alle Preise",
"all_questions": "Alle Fragen",
"all_articles": "Alle Artikel",
"get_started": "Loslegen",
"legal": "Rechtliches",
"privacy_policy": "Datenschutzerklärung",
"tagline": "Erstellen Sie benutzerdefinierte QR-Codes in Sekunden mit erweitertem Tracking und Analysen.",
"newsletter": "Newsletter-Anmeldung",
"rights_reserved": "QR Master. Alle Rechte vorbehalten."
} }
} }

View File

@ -43,6 +43,7 @@ export const authOptions: NextAuthOptions = {
id: user.id, id: user.id,
email: user.email, email: user.email,
name: user.name, name: user.name,
plan: user.plan || 'FREE',
}; };
}, },
}), }),
@ -56,15 +57,23 @@ export const authOptions: NextAuthOptions = {
: []), : []),
], ],
callbacks: { callbacks: {
async jwt({ token, user }) { async jwt({ token, user, trigger, session }) {
if (user) { if (user) {
token.id = user.id; token.id = user.id;
token.plan = user.plan;
} }
// Update session support
if (trigger === "update" && session?.plan) {
token.plan = session.plan;
}
return token; return token;
}, },
async session({ session, token }) { async session({ session, token }) {
if (session?.user) { if (session?.user) {
session.user.id = token.id as string; session.user.id = token.id as string;
session.user.plan = (token.plan as string) || 'FREE';
} }
return session; return session;
}, },

View File

@ -4,10 +4,12 @@ declare module 'next-auth' {
interface Session { interface Session {
user: { user: {
id: string; id: string;
plan: string;
} & DefaultSession['user']; } & DefaultSession['user'];
} }
interface User { interface User {
id: string; id: string;
plan: string;
} }
} }