Final!
This commit is contained in:
parent
f67945d8e7
commit
0409fe2afd
|
|
@ -9,7 +9,10 @@
|
|||
"create_qr": "QR erstellen",
|
||||
"bulk_creation": "Massen-Erstellung",
|
||||
"analytics": "Analytik",
|
||||
"settings": "Einstellungen"
|
||||
"settings": "Einstellungen",
|
||||
"cta": "Kostenlos starten",
|
||||
"tools": "Kostenlose Tools",
|
||||
"all_free": "Alle Generatoren sind 100% kostenlos"
|
||||
},
|
||||
"hero": {
|
||||
"badge": "Kostenloser QR-Code-Generator",
|
||||
|
|
@ -64,6 +67,8 @@
|
|||
"demo_note": "Dies ist ein Demo-QR-Code"
|
||||
},
|
||||
"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": {
|
||||
"title": "Statische QR-Codes",
|
||||
"subtitle": "Immer kostenlos",
|
||||
|
|
@ -97,6 +102,10 @@
|
|||
"title": "Vollständige Anpassung",
|
||||
"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": {
|
||||
"title": "Bulk-Operationen",
|
||||
"description": "Erstellen Sie hunderte von QR-Codes auf einmal mit CSV-Import und Batch-Verarbeitung."
|
||||
|
|
@ -370,5 +379,22 @@
|
|||
"loading": "Lädt...",
|
||||
"error": "Ein Fehler ist aufgetreten",
|
||||
"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."
|
||||
}
|
||||
}
|
||||
|
|
@ -43,28 +43,37 @@ export const authOptions: NextAuthOptions = {
|
|||
id: user.id,
|
||||
email: user.email,
|
||||
name: user.name,
|
||||
plan: user.plan || 'FREE',
|
||||
};
|
||||
},
|
||||
}),
|
||||
...(process.env.GOOGLE_CLIENT_ID && process.env.GOOGLE_CLIENT_SECRET
|
||||
? [
|
||||
GoogleProvider({
|
||||
clientId: process.env.GOOGLE_CLIENT_ID,
|
||||
clientSecret: process.env.GOOGLE_CLIENT_SECRET,
|
||||
}),
|
||||
]
|
||||
GoogleProvider({
|
||||
clientId: process.env.GOOGLE_CLIENT_ID,
|
||||
clientSecret: process.env.GOOGLE_CLIENT_SECRET,
|
||||
}),
|
||||
]
|
||||
: []),
|
||||
],
|
||||
callbacks: {
|
||||
async jwt({ token, user }) {
|
||||
async jwt({ token, user, trigger, session }) {
|
||||
if (user) {
|
||||
token.id = user.id;
|
||||
token.plan = user.plan;
|
||||
}
|
||||
|
||||
// Update session support
|
||||
if (trigger === "update" && session?.plan) {
|
||||
token.plan = session.plan;
|
||||
}
|
||||
|
||||
return token;
|
||||
},
|
||||
async session({ session, token }) {
|
||||
if (session?.user) {
|
||||
session.user.id = token.id as string;
|
||||
session.user.plan = (token.plan as string) || 'FREE';
|
||||
}
|
||||
return session;
|
||||
},
|
||||
|
|
|
|||
|
|
@ -4,10 +4,12 @@ declare module 'next-auth' {
|
|||
interface Session {
|
||||
user: {
|
||||
id: string;
|
||||
plan: string;
|
||||
} & DefaultSession['user'];
|
||||
}
|
||||
|
||||
interface User {
|
||||
id: string;
|
||||
plan: string;
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue