This commit is contained in:
 Илья Шалонин 2025-10-29 13:43:43 +05:00
commit 8538ab969a
434 changed files with 44051 additions and 0 deletions

3
packages/i18n/biome.json Normal file
View file

@ -0,0 +1,3 @@
{
"extends": ["../../biome.json"]
}

2
packages/i18n/index.ts Normal file
View file

@ -0,0 +1,2 @@
export * from "./lib/messages";
export * from "./types";

View file

@ -0,0 +1,18 @@
import { config } from "@repo/config";
import deepmerge from "deepmerge";
import type { Messages } from "../types";
export const importLocale = async (locale: string): Promise<Messages> => {
return (await import(`../translations/${locale}.json`)).default as Messages;
};
export const getMessagesForLocale = async (
locale: string,
): Promise<Messages> => {
const localeMessages = await importLocale(locale);
if (locale === config.i18n.defaultLocale) {
return localeMessages;
}
const defaultLocaleMessages = await importLocale(config.i18n.defaultLocale);
return deepmerge(defaultLocaleMessages, localeMessages);
};

View file

@ -0,0 +1,16 @@
{
"dependencies": {
"@repo/config": "workspace:*",
"deepmerge": "^4.3.1"
},
"devDependencies": {
"@biomejs/biome": "1.9.4",
"@repo/tsconfig": "workspace:*",
"@types/node": "^22.15.30"
},
"name": "@repo/i18n",
"scripts": {
"type-check": "tsc --noEmit"
},
"version": "0.0.0"
}

View file

@ -0,0 +1,826 @@
{
"admin": {
"menu": {
"organizations": "Organisationen",
"users": "Benutzer"
},
"organizations": {
"backToList": "Zurück zu Organisationen",
"confirmDelete": {
"confirm": "Löschen",
"message": "Bist du sicher, dass du diese Organisation löschen möchtest? Diese Aktion kann nicht rückgängig gemacht werden.",
"title": "Organisation löschen"
},
"create": "Erstellen",
"delete": "Löschen",
"deleteOrganization": {
"deleted": "Die Organisation wurde erfolgreich gelöscht!",
"deleting": "Löschung der Organisation...",
"notDeleted": "Organisation konnte nicht gelöscht werden. Bitte versuche es erneut."
},
"edit": "bearbeiten",
"form": {
"createTitle": "Erstellen eine Organisation",
"name": "Name der Organisation",
"notifications": {
"error": "Die Organisation konnte nicht gespeichert werden. Bitte versuche es später noch einmal.",
"success": "Die Organisation wurde erfolgreich gespeichert."
},
"save": "Speichern",
"updateTitle": "Organisation bearbeiten"
},
"loading": "Organisationen laden...",
"membersCount": "{count} {count, plural, one {Mitglied} other {Mitglieder}}",
"search": "Suche nach einer Organisation...",
"title": "Verwalten von Organisationen"
},
"title": "Administration",
"users": {
"confirmDelete": {
"confirm": "Löschen",
"message": "Bist du sicher, dass du diesen Benutzer löschen möchtest? Diese Aktion kann nicht rückgängig gemacht werden.",
"title": "Benutzer löschen"
},
"delete": "Löschen",
"deleteUser": {
"deleted": "Der Benutzer wurde erfolgreich gelöscht!",
"deleting": "Benutzer wird gelöscht...",
"notDeleted": "Der Benutzer konnte nicht gelöscht werden. \nBitte versuche es erneut."
},
"emailVerified": {
"verified": "Email verifiziert",
"waiting": "E-Mail wartet auf Verifizierung"
},
"impersonate": "Imitieren",
"impersonation": {
"impersonating": "Ich gebe mich als {name} aus..."
},
"loading": "Benutzer werden geladen...",
"resendVerificationMail": {
"error": "Bestätigungsmail konnte nicht erneut gesendet werden. \nBitte versuche es erneut.",
"submitting": "Bestätigungsmail wird erneut gesendet...",
"success": "Bestätigungsmail wurde gesendet.",
"title": "Bestätigungsmail erneut senden"
},
"search": "Nach Name oder E-Mail suchen...",
"title": "Benutzer verwalten",
"assignAdminRole": "Administration-Rolle zuweisen",
"removeAdminRole": "Adminstrator-Rolle entfernen"
},
"description": "Verwalte deine Anwendung."
},
"app": {
"menu": {
"accountSettings": "Kontoeinstellungen",
"admin": "Administration",
"aiChatbot": "AI Chatbot",
"organizationSettings": "Organisationseinstellungen",
"start": "Start"
},
"userMenu": {
"accountSettings": "Kontoeinstellungen",
"colorMode": "Farbmodus",
"documentation": "Dokumentation",
"home": "Startseite",
"logout": "Abmelden"
}
},
"auth": {
"errors": {
"credentialAccountNotFound": "Konto nicht gefunden.",
"emailCanNotBeUpdated": "E-Mail konnte nicht aktualisiert werden.",
"emailNotVerified": "Bitte verifiziere zunächst deine E-Mail, bevor du dich anmeldest.",
"failedToCreateSession": "Eine Sitzung konnte nicht erstellt werden.",
"failedToCreateUser": "Benutzer konnte nicht erstellt werden.",
"failedToGetSession": "Session konnte nicht geladen werden.",
"failedToGetUserInfo": "Benutzerinformationen konnten nicht geladen werden.",
"failedToUpdateUser": "Benutzer konnte nicht aktualisiert werden.",
"idTokenNotSupported": "ID-Token wird nicht unterstützt.",
"invalidEmail": "Die eingegebene E-Mail ist ungültig.",
"invalidEmailOrPassword": "Die von dir eingegebenen Anmeldedaten sind ungültig. Bitte überprüfe sie und versuche es erneut.",
"invalidInvitation": "Die Einladung ist ungültig oder abgelaufen.",
"invalidPassword": "Das eingegebene Passwort ist falsch.",
"invalidToken": "Das von dir eingegebene Token ist ungültig oder abgelaufen.",
"passwordTooLong": "Das Passwort ist zu lang.",
"passwordTooShort": "Das Passwort ist zu kurz.",
"providerNotFound": "Dieser Anbieter wird nicht unterstützt.",
"socialAccountAlreadyLinked": "Dieses Konto ist bereits mit einem Benutzer verknüpft.",
"unknown": "Etwas ist schiefgelaufen. Bitte versuche es erneut.",
"userAlreadyExists": "Dieser Benutzer existiert bereits.",
"userEmailNotFound": "E-Mail nicht gefunden.",
"userNotFound": "Dieser Benutzer existiert nicht",
"sessionExpired": "Die Sitzung ist abgelaufen.",
"accountNotFound": "Konto nicht gefunden",
"failedToUnlinkLastAccount": "Konto kann nicht entkoppelt werden"
},
"forgotPassword": {
"backToSignin": "Zurück zum Login",
"email": "E-Mail",
"hints": {
"linkNotSent": {
"message": "Es tut uns leid, aber wir konnten keinen Link zum Zurücksetzen des Passworts senden. \nBitte versuche es später noch einmal.",
"title": "Link nicht gesendet"
},
"linkSent": {
"message": "Wir haben dir einen Link zum Fortfahren gesendet. \nBitte überprüfe deinen Posteingang.",
"title": "Link gesendet"
}
},
"message": "Bitte gib deine E-Mail-Adresse ein und wir senden dir einen Link zum Zurücksetzen deines Passworts.",
"submit": "Link senden",
"title": "Hast du dein Passwort vergessen?"
},
"login": {
"continueWith": "Oder weiter mit",
"createAnAccount": "Ein Konto erstellen",
"dontHaveAnAccount": "Du hast noch kein Konto?",
"forgotPassword": "Passwort vergessen?",
"hints": {
"invalidCredentials": "Die von dir eingegebenen Anmeldeinformationen sind ungültig. \nBitte versuche es erneut.",
"linkSent": {
"message": "Wir haben dir einen Link zum Fortfahren gesendet. \nBitte überprüfe deinen Posteingang.",
"title": "Link gesendet"
}
},
"loginWithPasskey": "Anmeldung mit Passkey",
"modes": {
"magicLink": "Magischer Link",
"password": "Passwort"
},
"submit": "Anmelden",
"subtitle": "Bitte gib deine Zugangsdaten ein, um dich anzumelden.",
"title": "Willkommen zurück",
"sendMagicLink": "Anmelde-Link senden"
},
"resetPassword": {
"backToSignin": "Zurück zu Signin",
"hints": {
"error": "Es tut uns leid, aber wir konnten dein Passwort nicht zurücksetzen. Bitte versuche es erneut.",
"success": "Dein Passwort wurde erfolgreich zurückgesetzt."
},
"message": "Bitte gib ein neues Passwort ein.",
"newPassword": "Neues Passwort",
"submit": "Passwort zurücksetzen",
"title": "Dein Passwort zurücksetzen"
},
"signup": {
"alreadyHaveAccount": "Du hast bereits ein Konto?",
"email": "Email",
"hints": {
"signupFailed": "Es tut uns leid, aber wir konnten dein Konto nicht erstellen. \nBitte versuche es später noch einmal.",
"verifyEmail": "Wir haben dir einen Link zur Bestätigung deiner E-Mail-Adresse gesendet. \nBitte überprüfe deinen Posteingang."
},
"message": "Wir freuen uns, dass du dich uns anschließen möchtest. \nBitte fülle das untenstehende Formular aus, um dein Konto zu erstellen.",
"name": "Name",
"password": "Passwort",
"signIn": "Anmelden",
"submit": "Benutzerkonto erstellen",
"title": "Ein Konto erstellen"
},
"verify": {
"backToSignin": "Zurück zur Anmeldung",
"code": "Einmaliges Passwort",
"message": "Gib das Einmalpasswort aus deiner Authentifizierungs-App ein, um fortzufahren.",
"submit": "Verifizieren",
"title": "Verifiziere dein Konto"
}
},
"blog": {
"description": "In diesem Blog schreibe ich über alles mögliche.",
"title": "Mein toller Blog",
"back": "Zurück zum Blog"
},
"changelog": {
"description": "Bleibe über die neuesten Änderungen in unserem Produkt auf dem Laufenden.",
"title": "Changelog"
},
"common": {
"confirmation": {
"cancel": "Abbrechen",
"confirm": "Bestätigen"
},
"menu": {
"blog": "Blog",
"changelog": "Changelog",
"contact": "Kontakt",
"dashboard": "Dashboard",
"docs": "Dokumentation",
"faq": "FAQ",
"login": "Anmelden",
"pricing": "Preise"
},
"tableOfContents": {
"title": "Auf dieser Seite"
},
"actions": {
"continue": "Weiter",
"verify": "Überprüfen Sie"
}
},
"contact": {
"description": "Wir sind hier, um dir zu helfen. Bitte verwende das untenstehende Formular, um mit uns in Kontakt zu treten.",
"form": {
"email": "E-Mail",
"message": "Nachricht",
"name": "Name",
"notifications": {
"error": "Es tut uns leid, aber wir konnten deine Nachricht nicht senden. Bitte versuche es später noch einmal.",
"success": "Deine Nachricht wurde erfolgreich abgeschickt. Wir werden uns so schnell wie möglich bei dir melden."
},
"submit": "Nachricht senden"
},
"title": "Kontakt"
},
"faq": {
"description": "Hast du irgendwelche Fragen? \nWir sind für dich da.",
"title": "Häufig gestellte Fragen"
},
"mail": {
"common": {
"openLinkInBrowser": "Wenn du den Link in einem anderen Browser als deinem Standardbrowser öffnen möchtest, kopiere diesen und füge ihn in die Adresszeile deines Browsers ein:",
"otp": "Einmaliges Passwort",
"useLink": "oder nutze den folgenden Link:"
},
"emailVerification": {
"body": "Hallo!\nbitte klicke auf den unten stehenden Link, um diese neue E-Mail-Adresse zu bestätigen.",
"confirmEmail": "E-Mail verifizieren",
"subject": "E-Mail bestätigen"
},
"forgotPassword": {
"body": "Hallo,\n\ndu hast eine Passwortzurücksetzung beantragt.\n\n\nKlicke auf den unten stehenden Link, um dein Passwort zurückzusetzen.",
"resetPassword": "Passwort zurücksetzen",
"subject": "Passwort zurücksetzen"
},
"magicLink": {
"body": "Hey,\ndu hast eine Anmelde-E-Mail von supastarter angefordert.\n\nKlicke auf den unten stehenden Link, um dich anzumelden.",
"login": "Login",
"subject": "Login bei supastarter"
},
"newUser": {
"body": "Hallo,\n\nVielen Dank, dass du dich bei Supastarter angemeldet hast.\n\n\nUm mit der Nutzung unserer App zu beginnen, bestätige bitte deine E-Mail-Adresse, indem du auf den untenstehenden Link klickst.",
"confirmEmail": "E-Mail bestätigen",
"subject": "E-Mail bestätigen"
},
"newsletterSignup": {
"body": "Vielen Dank, dass du dich für den supastarter-Newsletter angemeldet hast. \nWir halten dich mit den neuesten Nachrichten und Updates auf dem Laufenden.",
"subject": "Willkommen bei unserem Newsletter"
},
"organizationInvitation": {
"body": "Du wurdest eingeladen, der Organisation {organizationName} beizutreten. Klicke auf den Button unten oder kopiere den Link und füge ihn in den Browser deiner Wahl ein, um die Einladung anzunehmen und der Organisation beizutreten.",
"headline": "Einladung zur Organisation {organizationName}",
"join": "Tritt der Organisation bei",
"subject": "Du wurdest eingeladen, einer Organisation beizutreten"
}
},
"newsletter": {
"email": "Email",
"hints": {
"error": {
"message": "Der Newsletter konnte nicht abonniert werden. Bitte versuche es später noch einmal."
},
"success": {
"message": "Danke, dass du unseren Newsletter abonniert hast. \nWir werden dich auf dem Laufenden halten.",
"title": "Erfolgreich angemeldet!"
}
},
"submit": "Abonnieren",
"subtitle": "Gehöre zu den Ersten, die Zugriff auf supastarter.nextjs erhalten.",
"title": "Erhalte frühen Zugang"
},
"onboarding": {
"account": {
"avatar": "Avatar",
"avatarDescription": "Klicke auf den Kreis oder ziehe ein Bild hinein, um deinen Avatar hochzuladen.",
"name": "Name"
},
"continue": "Weiter",
"message": "Nur ein paar schnelle Schritte, um dir den Einstieg zu erleichtern.",
"notifications": {
"accountSetupFailed": "Es tut uns leid, aber wir konnten dein Konto nicht einrichten. \nBitte versuche es später noch einmal."
},
"step": "Schritt {step} / {total}",
"title": "Richte dein Konto ein"
},
"organizations": {
"createForm": {
"name": "Name der Organisation",
"notifications": {
"error": "Es tut uns leid, aber wir konnten deine Organisation nicht erstellen. Bitte versuche es später noch einmal.",
"success": "Deine Organisation wurde erstellt. Du kannst nun Mitglieder einladen."
},
"submit": "Organisation erstellen",
"subtitle": "Gib einen Namen für deine Organisation ein, um loszulegen. Du kannst den Namen später in den Organisationseinstellungen ändern.",
"title": "Erstelle eine Organisation"
},
"invitationAlert": {
"description": "Du bist eingeladen worden, einer Organisation beizutreten. Wenn du dich anmeldest oder registrierst, akzeptierst du automatisch die Einladung und trittst der Organisation bei.",
"title": "Einladung der Organisation annehmen"
},
"invitationModal": {
"accept": "Annehmen",
"decline": "Ablehnen",
"description": "Du wurdest eingeladen, der Organisation {organizationName} beizutreten. Möchtest du die Einladung annehmen und der Organisation beitreten?",
"title": "Organisation beitreten"
},
"organizationSelect": {
"createNewOrganization": "Neue Organisation erstellen",
"organizations": "Organisationen",
"personalAccount": "Persönliches Konto"
},
"organizationsGrid": {
"createNewOrganization": "Neue Organisation erstellen",
"title": "Deine Organisationen"
},
"roles": {
"admin": "Administration",
"member": "Mitglied",
"owner": "Eigentümer"
},
"settings": {
"changeName": {
"title": "Name der Organisation"
},
"deleteOrganization": {
"confirmation": "Bist du sicher, dass du deine Organisation löschen möchtest?",
"description": "Lösche deine Organisation dauerhaft. Sobald du deine Organisation gelöscht hast, gibt es kein Zurück mehr. Zur Bestätigung gib bitte unten dein Passwort ein:",
"submit": "Organisation löschen",
"title": "Organisation löschen"
},
"logo": {
"description": "Lade ein Logo für deine Organisation hoch.",
"title": "Logo der Organisation"
},
"members": {
"activeMembers": "Aktive Mitglieder",
"description": "Sieh dir alle aktiven Mitglieder und die ausstehenden Einladungen deiner Organisation an.",
"invitations": {
"empty": "Es wurden noch keine Mitglieder eingeladen.",
"expiresAt": "Läuft am {date} ab",
"invitationStatus": {
"accepted": "Angenommen",
"canceled": "Abgebrochen",
"pending": "Ausstehend",
"rejected": "Abgelehnt"
},
"revoke": "Einladung widerrufen",
"resend": "Einladung erneut senden"
},
"inviteMember": {
"description": "Um ein neues Mitglied einzuladen, sende ihm eine Einladung.",
"email": "E-Mail",
"notifications": {
"error": {
"description": "Wir konnten das Mitglied nicht einladen. Bitte versuche es später noch einmal.",
"title": "Mitglied konnte nicht eingeladen werden"
},
"success": {
"description": "Das Mitglied ist eingeladen worden.",
"title": "Eingeladenes Mitglied"
}
},
"role": "Rolle",
"submit": "Einladen",
"title": "Mitglied einladen"
},
"leaveOrganization": "Organisation verlassen",
"notifications": {
"removeMember": {
"error": {
"description": "Das Mitglied konnte nicht aus deiner Organisation entfernt werden. Bitte versuche es erneut."
},
"loading": {
"description": "Mitglied aus der Organisation entfernen..."
},
"success": {
"description": "Das Mitglied wurde erfolgreich aus deiner Organisation entfernt."
}
},
"revokeInvitation": {
"error": {
"description": "Die Einladung konnte nicht widerrufen werden. Bitte versuche es später noch einmal."
},
"loading": {
"description": "Widerruf der Einladung..."
},
"success": {
"description": "Die Einladung ist widerrufen worden."
}
},
"updateMembership": {
"error": {
"description": "Die Mitgliedschaft in der Organisation konnte nicht aktualisiert werden. Bitte versuche es erneut."
},
"loading": {
"description": "Aktualisierung der Mitgliedschaft..."
},
"success": {
"description": "Die Mitgliedschaft wurde erfolgreich aktualisiert"
}
},
"resendInvitation": {
"error": {
"description": "Die Einladung konnte nicht gesendet werden. Bitte versuche es erneut."
},
"loading": {
"description": "Einladung erneut senden..."
},
"success": {
"description": "Einladung verschickt"
}
}
},
"pendingInvitations": "Ausstehende Einladungen",
"removeMember": "Mitglied entfernen",
"title": "Mitglieder"
},
"notifications": {
"organizationDeleted": "Deine Organisation wurde gelöscht.",
"organizationNameNotUpdated": "Wir konnten den Namen deiner Organisation nicht aktualisieren. Bitte versuche es später noch einmal.",
"organizationNameUpdated": "Der Name deiner Organisation wurde aktualisiert.",
"organizationNotDeleted": "Wir konnten deine Organisation nicht löschen. Bitte versuche es später noch einmal."
},
"subtitle": "Verwalte die Einstellungen der Organisation.",
"title": "Organisation",
"dangerZone": {
"title": "Gefahrenzone"
}
},
"start": {
"subtitle": "Willkommen auf der Startseite dieser Organisation!"
}
},
"pricing": {
"choosePlan": "Plan auswählen",
"contactSales": "Vertrieb kontaktieren",
"description": "Wähle das passende Paket für dich aus.",
"getStarted": "Jetzt loslegen",
"month": "Monat",
"monthly": "Monatlich",
"products": {
"basic": {
"description": "Perfekt für den Einstieg",
"features": {
"anotherFeature": "Ein weiteres erstaunliches Merkmal",
"limitedSupport": "Begrenzter Support"
},
"title": "Basic"
},
"enterprise": {
"description": "Maßgeschneiderter Plan für deine Anforderungen",
"features": {
"enterpriseSupport": "Support für Unternehmen",
"unlimitedProjects": "Unbegrenzte Projekte"
},
"title": "Enterprise"
},
"free": {
"description": "Kostenloser Start",
"features": {
"anotherFeature": "Ein weiteres erstaunliches Merkmal",
"limitedSupport": "Begrenzter Support"
},
"title": "Free"
},
"lifetime": {
"description": "Einmal kaufen. Für immer verwenden.",
"features": {
"extendSupport": "Erweiterter Support",
"noRecurringCosts": "Keine wiederkehrenden Kosten"
},
"title": "Lifetime"
},
"pro": {
"description": "Am besten für Teams",
"features": {
"anotherFeature": "Ein weiteres erstaunliches Merkmal",
"fiveMembers": "Bis zu 5 Mitglieder",
"fullSupport": "Voller Support"
},
"title": "Pro"
}
},
"purchase": "Kaufen",
"recommended": "Empfohlen",
"subscribe": "Abonnieren",
"title": "Preise",
"trialPeriod": "{days} {days, plural, one {Tag} other {Tage}} kostenlose Testphase",
"year": "Jahr",
"yearly": "Jährlich",
"perSeat": "Sitz"
},
"settings": {
"account": {
"avatar": {
"description": "Um deinen Avatar zu ändern, klicke auf das Bild in diesem Block und wähle eine Datei von deinem Computer zum Hochladen aus.",
"notifications": {
"error": "Avatar konnte nicht aktualisiert werden",
"success": "Avatar wurde erfolgreich aktualisiert"
},
"title": "Dein Avatar"
},
"changeEmail": {
"description": "Um deine E-Mail zu ändern, ändere sie im Eingabefeld und drücke auf Speichern. Du musst die neue E-Mail bestätigen, bevor sie aktiv wird.",
"notifications": {
"error": "E-Mail konnte nicht aktualisiert werden",
"success": "E-Mail wurde erfolgreich aktualisiert"
},
"title": "Deine E-Mail"
},
"changeName": {
"notifications": {
"error": "Name konnte nicht aktualisiert werden",
"success": "Name wurde erfolgreich aktualisiert"
},
"title": "Dein Name"
},
"deleteAccount": {
"confirmation": "Bist du sicher, dass du dein Konto löschen möchtest?",
"description": "Lösche dein Konto dauerhaft. \nSobald Du dein Konto gelöscht hast, gibt es kein Zurück mehr. \nBitte sei dir sicher, bevor du hier weitermachst.",
"notifications": {
"error": "Konto konnte nicht gelöscht werden",
"success": "Konto wurde erfolgreich gelöscht"
},
"submit": "Konto löschen",
"title": "Konto löschen"
},
"language": {
"description": "Um die Sprache der App für dein Konto zu ändern, wähle eine Sprache aus der Liste aus und klicke auf Speichern.",
"notifications": {
"error": "Sprache konnte nicht aktualisiert werden",
"success": "Sprache wurde erfolgreich aktualisiert"
},
"title": "Deine Sprache"
},
"security": {
"activeSessions": {
"description": "Dies sind alle aktiven Sitzungen deines Kontos. Klicke auf das X, um eine bestimmte Sitzung zu beenden.",
"title": "Aktive Sitzungen",
"notifications": {
"revokeSession": {
"success": "Session beendet"
}
},
"currentSession": "Aktuelle Sitzung"
},
"changePassword": {
"currentPassword": "Aktuelles Passwort",
"newPassword": "Neues Passwort",
"notifications": {
"error": "Passwort kann nicht aktualisiert werden",
"success": "Passwort wurde erfolgreich aktualisiert"
},
"title": "Dein Passwort"
},
"connectedAccounts": {
"connect": "Verbinden",
"disconnect": "Trennen",
"title": "Verbundene Konten"
},
"passkeys": {
"description": "Verwende Passkeys als sichere alternative zu Passwörtern.",
"notifications": {
"addPasskey": {
"error": {
"title": "Kann keinen Hauptschlüssel hinzufügen"
},
"success": {
"title": "Passkey hinzugefügt"
}
},
"deletePasskey": {
"error": {
"title": "Der Hauptschlüssel konnte nicht gelöscht werden"
},
"loading": {
"title": "Hauptschlüssel löschen..."
},
"success": {
"title": "Passkey gelöscht"
}
}
},
"title": "Passwörter"
},
"setPassword": {
"description": "Du hast noch kein Passwort festgelegt. Um ein solches festzulegen, musst du den Ablauf der Passwortrücksetzung durchlaufen. Klicke auf die Schaltfläche unten, um eine E-Mail zum Zurücksetzen deines Passworts zu senden, und folge den Anweisungen in der E-Mail.",
"notifications": {
"error": "Der Link zum Festlegen des Passworts konnte nicht gesendet werden. Bitte versuche es erneut.",
"success": "Prüfen deinen Posteingang auf den Link, um Ihr Passwort festzulegen."
},
"submit": "Passwort festlegen",
"title": "Dein Passwort"
},
"title": "Sicherheit",
"twoFactor": {
"description": "Füge deinem Konto eine zusätzliche Sicherheitsebene hinzu.",
"dialog": {
"password": {
"description": "Bitte verifiziere dein Konto, indem du dein Passwort eingibst:",
"label": "Dein Passwort:",
"title": "Mit Passwort verifizieren"
},
"totpUrl": {
"code": "Geben Sie den 6-stelligen Code ein, um die Einrichtung zu bestätigen:",
"description": "Verwende deine bevorzugte Authentifizierungs-App und scanne den QR-Code damit oder gib das unten stehende Geheimnis manuell ein, um die Zwei-Faktor-Authentifizierung einzurichten.",
"title": "Zwei-Faktor-Authentifizierung aktivieren"
}
},
"disable": "Zwei-Faktor-Authentifizierung deaktivieren",
"enable": "Zwei-Faktor-Authentifizierung aktivieren",
"enabled": "Du hast die Zwei-Faktor-Authentifizierung für dein Konto aktiviert.",
"notifications": {
"disable": {
"success": {
"title": "Die Zwei-Faktor-Authentifizierung wurde erfolgreich deaktiviert."
}
},
"enable": {
"error": {
"title": "Dein Konto konnte mit dem angegebenen Passwort nicht verifiziert werden. Bitte versuche es erneut."
}
},
"verify": {
"success": {
"title": "Die Zwei-Faktor-Authentifizierung wurde erfolgreich aktiviert."
}
}
},
"title": "Zwei-Faktor-Authentifizierung"
}
},
"subtitle": "Verwalte die Einstellungen deines persönlichen Kontos.",
"title": "Kontoeinstellungen"
},
"billing": {
"createCustomerPortal": {
"label": "Abrechung verwalten",
"notifications": {
"error": {
"title": "Es konnte keine Kundenportalsitzung erstellt werden. \nBitte versuche es erneut."
}
}
},
"activePlan": {
"status": {
"active": "Aktiv",
"canceled": "Gekündigt",
"expired": "Ausgelaufen",
"incomplete": "Unvollständig",
"past_due": "Überfällig",
"paused": "Pausiert",
"trialing": "Testversion",
"unpaid": "Unbezahlt"
},
"title": "Dein Plan"
},
"changePlan": {
"description": "Wähle einen Plan aus, den du abonnieren möchtest.",
"title": "Ändere deinen Plan"
},
"title": "Zahlung"
},
"menu": {
"account": {
"billing": "Abrechnung",
"dangerZone": "Danger-Zone",
"general": "Allgemein",
"security": "Sicherheit",
"title": "Konto"
},
"organization": {
"billing": "Abrechnung",
"general": "Allgemein",
"members": "Mitglieder",
"title": "Organisation",
"dangerZone": "Gefahrenzone"
}
},
"save": "Speichern"
},
"start": {
"subtitle": "Sieh dir die neuesten Statistiken über dein großartiges Unternehmen an.",
"welcome": "Willkommen {name}!"
},
"zod": {
"errors": {
"invalid_arguments": "Ungültige Funktionsargumente",
"invalid_date": "Ungültiges Datum",
"invalid_enum_value": "Ungültiger Enum-Wert. {options} erwartet, {received} erhalten",
"invalid_intersection_types": "Schnittmengenergebnisse konnten nicht zusammengeführt werden",
"invalid_literal": "Ungültiger Literalwert, {expected} erwartet",
"invalid_return_type": "Ungültiger Funktionsrückgabewert",
"invalid_string": {
"cuid": "Ungültige {validation}",
"datetime": "Ungültige {validation}",
"email": "Ungültige {validation}",
"endsWith": "Ungültige Eingabe: muss mit \"{endsWith}\" enden",
"regex": "Ungültig",
"startsWith": "Ungültige Eingabe: muss mit \"{startsWith}\" beginnen",
"url": "Ungültige {validation}",
"uuid": "Ungültige {validation}"
},
"invalid_type": "{expected} erwartet, {received} erhalten",
"invalid_type_received_undefined": "Darf nicht leer sein",
"invalid_union": "Ungültige Eingabe",
"invalid_union_discriminator": "Ungültiger Diskriminatorwert, {options} erwartet",
"not_finite": "Zahl muss endlich sein",
"not_multiple_of": "Zahl muss ein Vielfaches von {multipleOf} sein",
"too_big": {
"array": {
"exact": "Array muss genau {maximum} Element(e) enthalten",
"inclusive": "Array muss höchstens {maximum} Element(e) enthalten",
"not_inclusive": "Array muss weniger als {maximum} Element(e) enthalten"
},
"date": {
"exact": "Datum muss genau {- maximum, datetime} sein",
"inclusive": "Datum muss kleiner oder gleich {- maximum, datetime} sein",
"not_inclusive": "Datum muss kleiner sein als {- maximum, datetime}"
},
"number": {
"exact": "Zahl muss genau {maximum} sein",
"inclusive": "Zahl muss kleiner oder gleich {maximum} sein",
"not_inclusive": "Zahl muss kleiner sein als {maximum}"
},
"set": {
"exact": "Ungültige Eingabe",
"inclusive": "Ungültige Eingabe",
"not_inclusive": "Ungültige Eingabe"
},
"string": {
"exact": "String muss genau {maximum} Zeichen enthalten",
"inclusive": "Die Zeichenfolge darf höchstens {maximum} Zeichen enthalten",
"not_inclusive": "String muss unter {maximum} Zeichen enthalten"
}
},
"too_small": {
"array": {
"exact": "Array muss genau {minimum} Element(e) enthalten",
"inclusive": "Array muss mindestens {minimum} Element(e) enthalten",
"not_inclusive": "Array muss mehr als {minimum} Element(e) enthalten"
},
"date": {
"exact": "Datum muss genau {- minimum, datetime} sein",
"inclusive": "Datum muss größer oder gleich {- minimum, datetime} sein",
"not_inclusive": "Datum muss größer sein als {- minimum, datetime}"
},
"number": {
"exact": "Zahl muss genau {minimum} sein",
"inclusive": "Zahl muss größer oder gleich {minimum} sein",
"not_inclusive": "Zahl muss größer sein als {minimum}"
},
"set": {
"exact": "Ungültige Eingabe",
"inclusive": "Ungültige Eingabe",
"not_inclusive": "Ungültige Eingabe"
},
"string": {
"exact": "Zeichenfolge muss genau {minimum} Zeichen enthalten",
"inclusive": "Zeichenkette muss mindestens {minimum} Zeichen enthalten",
"not_inclusive": "Zeichenfolge muss mehr als {minimum} Zeichen enthalten"
}
},
"unrecognized_keys": "Unbekannte Schlüssel im Objekt: {keys}"
},
"types": {
"array": "Array",
"bigint": "BigInt",
"boolean": "Boolean",
"date": "Datum",
"float": "Float",
"function": "Funktion",
"integer": "Integer",
"map": "Map",
"nan": "NaN",
"never": "Nicht definiert",
"null": "Null",
"number": "Zahl",
"object": "Objekt",
"promise": "Promise",
"set": "Set",
"string": "String",
"symbol": "Symbol",
"undefined": "Undefined",
"unknown": "Unbekannt",
"void": "Void"
},
"validations": {
"cuid": "Cuid",
"cuid2": "Cuid2",
"datetime": "Datum",
"email": "E-Mail",
"emoji": "Emoji",
"ip": "IP",
"regex": "Regex",
"ulid": "Ulid",
"url": "URL",
"uuid": "Uuid"
}
},
"documentation": {
"title": "Dokumentation"
},
"choosePlan": {
"title": "Wähle einen Plan",
"description": "Um weiterzumachen, wähle bitte einen Plan aus."
}
}

View file

@ -0,0 +1,826 @@
{
"admin": {
"menu": {
"organizations": "Organizations",
"users": "Users"
},
"organizations": {
"backToList": "Back to organizations",
"confirmDelete": {
"confirm": "Delete",
"message": "Are you sure you want to delete this organization? This action cannot be undone.",
"title": "Delete organization"
},
"create": "Create",
"delete": "Delete",
"deleteOrganization": {
"deleted": "Organization has been deleted successfully!",
"deleting": "Deleting organization...",
"notDeleted": "Organization could not be deleted. Please try again."
},
"edit": "Edit",
"form": {
"createTitle": "Create an organization",
"name": "Organization name",
"notifications": {
"error": "Could not save the organization. Please try again later.",
"success": "Organization has been saved."
},
"save": "Save",
"updateTitle": "Edit organization"
},
"loading": "Loading organizations...",
"membersCount": "{count} {count, plural, one {member} other {members}}",
"search": "Search for an organization...",
"title": "Manage organizations"
},
"title": "Administration",
"users": {
"confirmDelete": {
"confirm": "Delete",
"message": "Are you sure you want to delete this user? This action cannot be undone.",
"title": "Delete user"
},
"delete": "Delete",
"deleteUser": {
"deleted": "User has been deleted successfully!",
"deleting": "Deleting user...",
"notDeleted": "User could not be deleted. Please try again."
},
"emailVerified": {
"verified": "Email verified",
"waiting": "Email waiting for verification"
},
"impersonate": "Impersonate",
"impersonation": {
"impersonating": "Impersonating as {name}..."
},
"loading": "Loading users...",
"resendVerificationMail": {
"error": "Could not resend verification mail. Please try again.",
"submitting": "Resending verification mail...",
"success": "Verification mail has been sent.",
"title": "Resend verification mail"
},
"search": "Search for name or email...",
"title": "Manage users",
"assignAdminRole": "Assign admin role",
"removeAdminRole": "Remove admin role"
},
"description": "Manage your application."
},
"app": {
"menu": {
"accountSettings": "Account settings",
"admin": "Admin",
"aiChatbot": "AI Chatbot",
"organizationSettings": "Organization settings",
"start": "Start"
},
"userMenu": {
"accountSettings": "Account settings",
"colorMode": "Color mode",
"documentation": "Documentation",
"home": "Home",
"logout": "Logout"
}
},
"auth": {
"errors": {
"invalidEmailOrPassword": "The credentials you entered are invalid. Please check them and try again.",
"unknown": "Something went wrong. Please try again.",
"userNotFound": "This user does not exists",
"failedToCreateUser": "Could not create user. Please try again.",
"failedToCreateSession": "Could not create a session. Please try again.",
"failedToUpdateUser": "Could not update user. Please try again.",
"failedToGetSession": "Could not get the session.",
"invalidPassword": "The entered password is incorrect.",
"invalidEmail": "The entered email is invalid.",
"invalidToken": "The token you entered is invalid or has expired.",
"credentialAccountNotFound": "Account not found.",
"emailCanNotBeUpdated": "Email could not be updated. Please try again.",
"emailNotVerified": "Please verify your email first before logging in.",
"failedToGetUserInfo": "Could not load user information.",
"idTokenNotSupported": "ID token is not supported.",
"passwordTooLong": "Password is too long.",
"passwordTooShort": "Password is too short.",
"providerNotFound": "This provider is not suppported.",
"socialAccountAlreadyLinked": "This account is already linked to a user.",
"userEmailNotFound": "Email not found.",
"userAlreadyExists": "This user already exists.",
"invalidInvitation": "The invitation is invalid or expired.",
"sessionExpired": "The session has expired.",
"failedToUnlinkLastAccount": "Failed to unlink account",
"accountNotFound": "Account not found"
},
"forgotPassword": {
"backToSignin": "Back to signin",
"email": "Email",
"hints": {
"linkNotSent": {
"message": "We are sorry, but we were unable to send you a link to reset your password. Please try again later.",
"title": "Link not sent"
},
"linkSent": {
"message": "We have sent you a link to continue. Please check your inbox.",
"title": "Link sent"
}
},
"message": "Please enter your email address and we will send you a link to reset your password.",
"submit": "Send link",
"title": "Forgot your password?"
},
"login": {
"continueWith": "Or continue with",
"createAnAccount": "Create an account",
"dontHaveAnAccount": "Don't have an account yet?",
"forgotPassword": "Forgot password?",
"hints": {
"invalidCredentials": "The email or password you entered are invalid. Please try again.",
"linkSent": {
"message": "We have sent you a link to continue. Please check your inbox.",
"title": "Link sent"
}
},
"loginWithPasskey": "Login with passkey",
"modes": {
"magicLink": "Magic link",
"password": "Password"
},
"submit": "Sign in",
"subtitle": "Please enter your credentials to sign in.",
"title": "Welcome back",
"sendMagicLink": "Send magic link"
},
"resetPassword": {
"backToSignin": "Back to signin",
"hints": {
"error": "We are sorry, but we were unable to reset your password. Please try again.",
"success": "Your password has been reset successfully."
},
"message": "Please enter a new password.",
"newPassword": "New password",
"submit": "Reset password",
"title": "Reset your password"
},
"signup": {
"alreadyHaveAccount": "Already have an account?",
"email": "Email",
"hints": {
"signupFailed": "We are sorry, but we were unable to create your account. Please try again later.",
"verifyEmail": "We have sent you a link to verify your email. Please check your inbox."
},
"message": "We are happy that you want to join us. Please fill in the form below to create your account.",
"name": "Name",
"password": "Password",
"signIn": "Sign in",
"submit": "Create account",
"title": "Create an account"
},
"verify": {
"title": "Verify your account",
"code": "One-time password",
"submit": "Verify",
"backToSignin": "Back to login",
"message": "Enter the one-time password from your authenticator app to continue."
}
},
"blog": {
"description": "Read the latest news from our company",
"title": "My awesome blog",
"back": "Back to blog"
},
"changelog": {
"description": "Stay up to date with the latest changes in our product.",
"title": "Changelog"
},
"common": {
"confirmation": {
"cancel": "Cancel",
"confirm": "Confirm"
},
"menu": {
"blog": "Blog",
"changelog": "Changelog",
"contact": "Contact",
"dashboard": "Dashboard",
"docs": "Docs",
"faq": "FAQ",
"login": "Login",
"pricing": "Pricing"
},
"tableOfContents": {
"title": "On this page"
},
"actions": {
"continue": "Continue",
"verify": "Verify"
}
},
"contact": {
"description": "We are here to help you. Please use the form below to get in touch with us.",
"form": {
"email": "Email",
"message": "Message",
"name": "Name",
"notifications": {
"error": "We are sorry, but we were unable to send your message. Please try again later.",
"success": "Your message has been sent successfully. We will get back to you as soon as possible."
},
"submit": "Send message"
},
"title": "Contact us"
},
"documentation": {
"title": "Documentation"
},
"faq": {
"description": "Do you have any questions? We have got you covered.",
"title": "Frequently asked questions"
},
"mail": {
"common": {
"openLinkInBrowser": "If you want to open the link in a different browser than your default one, copy and paste this link:",
"otp": "One-time password",
"useLink": "or use the following link:"
},
"emailVerification": {
"body": "Hey,\nplease click the link below to verify this new email address.",
"confirmEmail": "Verify email",
"subject": "Verify your email"
},
"forgotPassword": {
"body": "Hey,\nyou requested a password reset.\n\nClick the button below to reset your password.",
"resetPassword": "Reset password",
"subject": "Reset your password"
},
"magicLink": {
"body": "Hey,\nyou requested a login email from supastarter.\n\nClick the link below to login.",
"login": "Login",
"subject": "Login to supastarter"
},
"newUser": {
"body": "Hey,\nthanks for signing up for supastarter.\n\nTo start using our app, please confirm your email address by clicking the link below.",
"confirmEmail": "Confirm email",
"subject": "Confirm your email"
},
"newsletterSignup": {
"body": "Thank you for signing up for the supastarter newsletter. We will keep you updated with the latest news and updates.",
"subject": "Welcome to our newsletter"
},
"organizationInvitation": {
"body": "You have been invited to join the organization {organizationName}. Click the button below or copy and paste the link into your browser of choice to accept the invitation and join the organization.",
"headline": "Join the organization {organizationName}",
"join": "Join the organization",
"subject": "You have been invited to join an organization"
}
},
"newsletter": {
"email": "Email",
"hints": {
"error": {
"message": "Could not subscribe to newsletter. Please try again later."
},
"success": {
"message": "Thank you for subscribing to our newsletter. We will keep you posted.",
"title": "Subscribed"
}
},
"submit": "Subscribe",
"subtitle": "Be among the first to get access to supastarter.nextjs.",
"title": "Get early access"
},
"onboarding": {
"account": {
"avatar": "Avatar",
"avatarDescription": "Click the circle or drop an image to it to upload your avatar.",
"name": "Name"
},
"continue": "Continue",
"message": "Just a few quick steps to get you started.",
"notifications": {
"accountSetupFailed": "We are sorry, but we were unable to set up your account. Please try again later."
},
"step": "Step {step} / {total}",
"title": "Set up your account"
},
"organizations": {
"createForm": {
"name": "Organization name",
"notifications": {
"error": "We are sorry, but we were unable to create your organization. Please try again later.",
"success": "Your organization has been created. You can now invite members."
},
"submit": "Create organization",
"subtitle": "Enter a name for your organization to get started. You can change the name later in the organization settings.",
"title": "Create an organization"
},
"invitationAlert": {
"description": "You need to sign in or create an account to join the organization.",
"title": "You have been invited to join an organization."
},
"invitationModal": {
"accept": "Accept",
"decline": "Decline",
"description": "You have been invited to join the organization {organizationName}. Do you want to accept the invitation and join the organization?",
"title": "Join the organization"
},
"organizationSelect": {
"createNewOrganization": "Create new organization",
"organizations": "Organizations",
"personalAccount": "Personal account"
},
"organizationsGrid": {
"createNewOrganization": "Create new organization",
"title": "Your organizations"
},
"roles": {
"admin": "Admin",
"member": "Member",
"owner": "Owner"
},
"settings": {
"changeName": {
"title": "Organization name"
},
"deleteOrganization": {
"confirmation": "Are you sure you want to delete your organization?",
"description": "Permanently delete your organization. Once you delete your organization, there is no going back. To confirm, please enter your password below:",
"submit": "Delete organization",
"title": "Delete organization"
},
"logo": {
"description": "Upload a logo for your organization.",
"title": "Organization logo"
},
"members": {
"activeMembers": "Active members",
"description": "See all active members and the pending invites of your organization.",
"invitations": {
"empty": "You have not invited any members yet.",
"expiresAt": "Expires at {date}",
"invitationStatus": {
"accepted": "Accepted",
"canceled": "Canceled",
"pending": "Pending",
"rejected": "Rejected"
},
"revoke": "Revoke invitation",
"resend": "Resend invitation"
},
"inviteMember": {
"description": "To invite a new member, send them an invitation.",
"email": "Email",
"notifications": {
"error": {
"description": "We were unable to invite the member. Please try again later.",
"title": "Could not invite member"
},
"success": {
"description": "The member has been invited.",
"title": "Member invited"
}
},
"role": "Role",
"submit": "Invite",
"title": "Invite member"
},
"leaveOrganization": "Leave organization",
"notifications": {
"removeMember": {
"error": {
"description": "Could not remove the member from your organization. Please try again."
},
"loading": {
"description": "Removing member from organization..."
},
"success": {
"description": "The member has been successfully removed from your organization."
}
},
"revokeInvitation": {
"error": {
"description": "The invitation could not be revoked. Please try again later."
},
"loading": {
"description": "Revoking invitation..."
},
"success": {
"description": "The invitation has been revoked."
}
},
"updateMembership": {
"error": {
"description": "Could not update organization membership. Please try again."
},
"loading": {
"description": "Updating membership..."
},
"success": {
"description": "Membership was updated successfully"
}
},
"resendInvitation": {
"loading": {
"description": "Resending invitation..."
},
"success": {
"description": "Invitation sent"
},
"error": {
"description": "Could not sent invitation. Please try again."
}
}
},
"pendingInvitations": "Pending invitations",
"removeMember": "Remove member",
"title": "Members"
},
"notifications": {
"organizationDeleted": "Your organization has been deleted.",
"organizationNameNotUpdated": "We were unable to update your organization name. Please try again later.",
"organizationNameUpdated": "Your organization name has been updated.",
"organizationNotDeleted": "We were unable to delete your organization. Please try again later."
},
"subtitle": "Manage the settings of the organization.",
"title": "Organization",
"dangerZone": {
"title": "Danger zone"
}
},
"start": {
"subtitle": "Welcome to the start page of this organization!"
}
},
"pricing": {
"choosePlan": "Choose plan",
"contactSales": "Contact sales",
"description": "Choose the plan that works best for you.",
"getStarted": "Get started",
"month": "{count, plural, one {month} other {{count} months}}",
"monthly": "Monthly",
"products": {
"basic": {
"description": "Perfect to small teams.",
"features": {
"anotherFeature": "Another amazing feature",
"limitedSupport": "Limited support"
},
"title": "Basic"
},
"enterprise": {
"description": "Custom plan tailored to your requirements",
"features": {
"enterpriseSupport": "Enterprise support",
"unlimitedProjects": "Unlimited projects"
},
"title": "Enterprise"
},
"free": {
"description": "Start for free",
"features": {
"anotherFeature": "Another amazing feature",
"limitedSupport": "Limited support"
},
"title": "Free"
},
"lifetime": {
"description": "Buy once. Use forever.",
"features": {
"extendSupport": "Extended support",
"noRecurringCosts": "No recurring costs"
},
"title": "Lifetime"
},
"pro": {
"description": "Best for teams",
"features": {
"anotherFeature": "Another amazing feature",
"fiveMembers": "Up to 5 members",
"fullSupport": "Full support"
},
"title": "Pro"
}
},
"purchase": "Purchase",
"recommended": "Recommended",
"subscribe": "Subscribe",
"title": "Pricing",
"trialPeriod": "{days} {days, plural, one {day} other {days}} free trial",
"year": "{count, plural, one {year} other {{count} years}}",
"yearly": "Yearly",
"perSeat": "seat"
},
"settings": {
"account": {
"avatar": {
"description": "To change your avatar click the picture in this block and select a file from your computer to upload.",
"notifications": {
"error": "Could not update avatar",
"success": "Avatar was updated successfully"
},
"title": "Your avatar"
},
"changeEmail": {
"description": "To change your email, enter the new email and hit save. You will have to confirm the new email before it will become active.",
"notifications": {
"error": "Could not update email",
"success": "Email was updated successfully"
},
"title": "Your email"
},
"changeName": {
"notifications": {
"error": "Could not update name",
"success": "Name was updated successfully"
},
"title": "Your name"
},
"deleteAccount": {
"confirmation": "Are you sure you want to delete your account?",
"description": "Permanently delete your account. Once you delete your account, there is no going back. To confirm, please enter your password below:",
"notifications": {
"error": "Could not delete account",
"success": "Account was deleted successfully"
},
"submit": "Delete account",
"title": "Delete account"
},
"language": {
"description": "To change the language of the app for your account, select a language from the list and click save.",
"notifications": {
"error": "Could not update language",
"success": "Language was updated successfully"
},
"title": "Your language"
},
"security": {
"activeSessions": {
"description": "These are all the active sessions of your account. Click the X to end a specifc session.",
"title": "Active sessions",
"notifications": {
"revokeSession": {
"success": "Session revoked"
}
},
"currentSession": "Current session"
},
"changePassword": {
"currentPassword": "Current password",
"newPassword": "New password",
"notifications": {
"error": "Could not update password",
"success": "Password was updated successfully"
},
"title": "Your password"
},
"connectedAccounts": {
"connect": "Connect",
"disconnect": "Disconnect",
"title": "Connected accounts"
},
"passkeys": {
"description": "Use passkeys as a secure alternative to passwords.",
"notifications": {
"addPasskey": {
"error": {
"title": "Could not add passkey"
},
"success": {
"title": "Passkey added"
}
},
"deletePasskey": {
"error": {
"title": "Could not delete passkey"
},
"loading": {
"title": "Deleting passkey..."
},
"success": {
"title": "Passkey deleted"
}
}
},
"title": "Passkeys"
},
"setPassword": {
"description": "You have not set a password yet. To set one, you need to go through the password reset flow. Click the button below to send an email to reset your password and follow the instructions in the email.",
"notifications": {
"error": "Could not send link to set password. Please try again.",
"success": "Check your inbox for the link to set your password."
},
"submit": "Set password",
"title": "Your password"
},
"title": "Security",
"twoFactor": {
"title": "Two-factor authentication",
"description": "Add an extra layer of security to your account.",
"dialog": {
"password": {
"title": "Verify with password",
"description": "Please verify your account by entering your password:",
"label": "Your password:"
},
"totpUrl": {
"description": "Use your preferred authenticator app and scan the QR code with it or enter the secret below manually to set up two-factor authentication.",
"code": "Enter 6-digit code to verify the setup:",
"title": "Enable two-factor authentication"
}
},
"enable": "Enable two-factor authentication",
"notifications": {
"verify": {
"success": {
"title": "Two-factor authentication has been enabled successfully."
}
},
"enable": {
"error": {
"title": "Could not verify your account with the provided password. Please try again."
}
},
"disable": {
"success": {
"title": "Two-factor authentication has been disabled successfully."
}
}
},
"disable": "Disable two-factor authentication",
"enabled": "You have two-factor authentication enabled for your account."
}
},
"subtitle": "Manage the settings of your personal account.",
"title": "Account settings"
},
"billing": {
"createCustomerPortal": {
"label": "Manage billing",
"notifications": {
"error": {
"title": "Could not create a customer portal session. Please try again."
}
}
},
"activePlan": {
"status": {
"active": "Active",
"canceled": "Canceled",
"expired": "Expired",
"incomplete": "Incomplete",
"past_due": "Past due",
"paused": "Paused",
"trialing": "Trialing",
"unpaid": "Unpaid"
},
"title": "Your plan"
},
"changePlan": {
"description": "Choose a plan to subscribe to.",
"title": "Change your plan"
},
"title": "Billing"
},
"menu": {
"account": {
"billing": "Billing",
"dangerZone": "Danger zone",
"general": "General",
"security": "Security",
"title": "Account"
},
"organization": {
"billing": "Billing",
"general": "General",
"members": "Members",
"title": "Organization",
"dangerZone": "Danger zone"
}
},
"save": "Save"
},
"start": {
"subtitle": "See the latest stats of your awesome business.",
"welcome": "Welcome {name}!"
},
"zod": {
"errors": {
"invalid_arguments": "Invalid function arguments",
"invalid_date": "Invalid date",
"invalid_enum_value": "Invalid enum value. Expected {- options}, received '{received}'",
"invalid_intersection_types": "Intersection results could not be merged",
"invalid_literal": "Invalid literal value, expected {expected}",
"invalid_return_type": "Invalid function return type",
"invalid_string": {
"cuid": "Invalid {validation}",
"datetime": "Invalid {validation}",
"email": "Invalid {validation}",
"endsWith": "Invalid input: must end with \"{endsWith}\"",
"regex": "Invalid",
"startsWith": "Invalid input: must start with \"{startsWith}\"",
"url": "Invalid {validation}",
"uuid": "Invalid {validation}"
},
"invalid_type": "Expected {expected}, received {received}",
"invalid_type_received_undefined": "Required",
"invalid_union": "Invalid input",
"invalid_union_discriminator": "Invalid discriminator value. Expected {- options}",
"not_finite": "Number must be finite",
"not_multiple_of": "Number must be a multiple of {multipleOf}",
"too_big": {
"array": {
"exact": "Array must contain exactly {maximum} element(s)",
"inclusive": "Array must contain at most {maximum} element(s)",
"not_inclusive": "Array must contain less than {maximum} element(s)"
},
"date": {
"exact": "Date must be exactly {- maximum, datetime}",
"inclusive": "Date must be smaller than or equal to {- maximum, datetime}",
"not_inclusive": "Date must be smaller than {- maximum, datetime}"
},
"number": {
"exact": "Number must be exactly {maximum}",
"inclusive": "Number must be less than or equal to {maximum}",
"not_inclusive": "Number must be less than {maximum}"
},
"set": {
"exact": "Invalid input",
"inclusive": "Invalid input",
"not_inclusive": "Invalid input"
},
"string": {
"exact": "String must contain exactly {maximum} character(s)",
"inclusive": "String must contain at most {maximum} character(s)",
"not_inclusive": "String must contain under {maximum} character(s)"
}
},
"too_small": {
"array": {
"exact": "Array must contain exactly {minimum} element(s)",
"inclusive": "Array must contain at least {minimum} element(s)",
"not_inclusive": "Array must contain more than {minimum} element(s)"
},
"date": {
"exact": "Date must be exactly {- minimum, datetime}",
"inclusive": "Date must be greater than or equal to {- minimum, datetime}",
"not_inclusive": "Date must be greater than {- minimum, datetime}"
},
"number": {
"exact": "Number must be exactly {minimum}",
"inclusive": "Number must be greater than or equal to {minimum}",
"not_inclusive": "Number must be greater than {minimum}"
},
"set": {
"exact": "Invalid input",
"inclusive": "Invalid input",
"not_inclusive": "Invalid input"
},
"string": {
"exact": "String must contain exactly {minimum} character(s)",
"inclusive": "String must contain at least {minimum} character(s)",
"not_inclusive": "String must contain over {minimum} character(s)"
}
},
"unrecognized_keys": "Unrecognized key(s) in object: {- keys}"
},
"types": {
"array": "array",
"bigint": "bigint",
"boolean": "boolean",
"date": "date",
"float": "float",
"function": "function",
"integer": "integer",
"map": "map",
"nan": "nan",
"never": "never",
"null": "null",
"number": "number",
"object": "object",
"promise": "promise",
"set": "set",
"string": "string",
"symbol": "symbol",
"undefined": "undefined",
"unknown": "unknown",
"void": "void"
},
"validations": {
"cuid": "cuid",
"cuid2": "cuid2",
"datetime": "datetime",
"email": "email",
"emoji": "emoji",
"ip": "up",
"regex": "regex",
"ulid": "ulid",
"url": "url",
"uuid": "uuid"
}
},
"choosePlan": {
"title": "Choose your plan",
"description": "To continue, please select a plan."
}
}

View file

@ -0,0 +1,5 @@
{
"extends": "@repo/tsconfig/base.json",
"include": ["**/*.ts"],
"exclude": ["dist", "build", "node_modules"]
}

6
packages/i18n/types.ts Normal file
View file

@ -0,0 +1,6 @@
import type { config } from "@repo/config";
import type messages from "./translations/en.json";
export type Messages = typeof messages;
export type Locale = keyof (typeof config)["i18n"]["locales"];