fix: Add de language

This commit is contained in:
Myzel394 2023-03-05 14:39:35 +01:00
parent 2a3ff1684d
commit a6c80cda0c
No known key found for this signature in database
GPG Key ID: 79CC92F37B3E1A2B
28 changed files with 280 additions and 350 deletions

View File

@ -1,71 +1,71 @@
{
"title": "Global Settings",
"description": "Configure global settings for your instance.",
"updatedSuccessfullyMessage": "Settings have been saved successfully!",
"title": "Globale Einstellungen",
"description": "Konfiguriere globale Einstellungen für deine Instanz.",
"updatedSuccessfullyMessage": "Einstellungen wurden erfolgreich gespeichert!",
"randomAliasesPreview": {
"title": "Random aliases will look like this",
"helperText": "This is just a preview. Those are not real aliases."
"title": "Zufällige Aliase werden so aussehen",
"helperText": "Dies ist nur eine Vorschau. Dies sind keine echten Aliase."
},
"randomAliasesIncreaseExplanation": "Random aliases' length will be increased from {{originalLength}} to {{increasedLength}} characters after {{amount}} aliases have been created.",
"resetLabel": "Reset to defaults",
"randomAliasesIncreaseExplanation": "Die Länge der Adressen von zufälligen Aliase wird von {{originalLength}} auf {{increasedLength}} Zeichen erhöht, nachdem {{amount}} Aliase erstellt wurden.",
"resetLabel": "Auf Standards zurücksetzen",
"disabled": {
"title": "Global settings are disabled",
"description": "Global settings have been disabled. You can enable them in the configuration file."
"title": "Globale Einstellungen sind deaktiviert",
"description": "Globale Einstellungen wurden deaktiviert. Du kannst sie in der Konfigurationsdatei aktivieren."
},
"fields": {
"randomEmailIdMinLength": {
"label": "Minimum random alias ID length",
"description": "The minimum length for randomly generated emails. The server will automatically increase the length if required so."
"label": "Minimale Länge zufällier Alias-Adressen",
"description": "Die minimale Länge für zufällig generierte E-Mail-Adressen. Der Server wird die Länge automatisch erhöhen, wenn dies erforderlich ist."
},
"randomEmailIdChars": {
"label": "Random alias character pool",
"description": "Characters that are used to generate random emails."
"label": "Zeichen zufälliger Alias-Adressen",
"description": "Zeichen, die für die Generierung von zufälligen E-Mail-Adressen verwendet werden."
},
"randomEmailLengthIncreaseOnPercentage": {
"label": "Percentage of used aliases",
"description": "If the percentage of used random email IDs is higher than this value, the length of the random email ID will be increased. This is used to prevent spammers from guessing the email ID."
"label": "Prozent der zu verwendeten Aliase",
"description": "Wenn der Prozentsatz der verwendeten zufälligen E-Mail-Adressen höher als dieser Wert ist, wird die Länge der zufälligen E-Mail-Adressen erhöht. Dies wird verwendet, um Spammern das Erraten von Aliasen zu erschweren."
},
"customEmailSuffixLength": {
"label": "Custom email suffix length",
"description": "The length of the custom email suffix."
"label": "Länge benutzerdefinierter E-Mail-Suffixe",
"description": "Die Länge des benutzerdefinierten E-Mail-Suffixes."
},
"customEmailSuffixChars": {
"label": "Custom email suffix character pool",
"description": "Characters that are used to generate custom email suffixes."
"label": "Zeichen benutzerdefinierte E-Mail-Suffixe",
"description": "Zeichen, die für die Generierung von benutzerdefinierten E-Mail-Suffixen verwendet werden."
},
"imageProxyStorageLifeTimeInHours": {
"label": "Image proxy storage lifetime",
"description": "The lifetime of images that are stored on the server in hours. After this time, the image will be deleted.",
"unit_one": "hour",
"unit_other": "hours"
"label": "Lebensdauer von Bildweiterleitungen",
"description": "Die Lebensdauer von Bildern, die auf dem Server gespeichert sind, in Stunden. Nach dieser Zeit wird das Bild gelöscht.",
"unit_one": "Stunde",
"unit_other": "Stunden"
},
"enableImageProxy": {
"label": "Enable image proxy",
"description": "If enabled, images will be proxied through the server. This enhances your user's privacy as their ip address will not be leaked."
"label": "Weiterleitung von Bildern aktivieren",
"description": "Wenn aktiviert, werden Bilder über den Server weitergeleitet. Dies erhöht die Privatsphäre deiner Benutzer, da ihre IP-Adresse nicht getracked werden können."
},
"enableImageProxyStorage": {
"label": "Enable image proxy storage",
"description": "If enabled, images will be stored on the server and forwarded to the user. This makes email tracking nearly impossible as every message will be marked as read instantly, which is obviously not true as a user is typically not able to view an email in just a few seconds after it has been sent. This will only affect new images."
"label": "Speichern von Bildern aktivieren",
"description": "Wenn aktiviert, werden Bilder auf dem Server gespeichert und an den Benutzer weitergeleitet. Dies macht das Tracking von E-Mails fast unmöglich, da jede Nachricht sofort als gelesen markiert wird, was natürlich nicht wahr ist, da ein Benutzer normalerweise nicht in wenigen Sekunden nach dem Versand einer E-Mail diese bereits öffnen kann. Dies betrifft nur neue Bilder."
},
"userEmailEnableDisposableEmails": {
"label": "Enable disposable emails for new accounts",
"description": "If enabled, users will be able to use disposable emails when creating a new account. This will only affect new accounts."
"label": "Erlauben von Wegwerf-E-Mails für neue Konten",
"description": "Wenn aktiviert, können Benutzer bei der Erstellung eines neuen Kontos Wegwerf-E-Mails verwenden. Dies betrifft nur neue Konten."
},
"userEmailEnableOtherRelays": {
"label": "Enable other relays for new accounts",
"description": "If enabled, users will be able to use other relays (such as SimpleLogin or DuckDuckGo's Email Tracking Protection) when creating a new account. This will only affect new accounts."
"label": "Erlauben von anderen E-Mail-Alias-Providern für neue Konten",
"description": "Wenn aktiviert, können Benutzer bei der Erstellung eines neuen Kontos andere E-Mail-Weiterleitungen (wie SimpleLogin oder DuckDuckGo's Email Tracking Protection) verwenden. Dies betrifft nur neue Konten."
},
"allowStatistics": {
"label": "Allow statistics",
"description": "If enabled, your instance will collect anonymous statistics and share them. They will only be stored locally on this instance but made public."
"label": "Statistiken aktivieren",
"description": "Wenn aktiviert, sammelt deine Instanz anonyme Statistiken und teilt sie. Sie werden nur lokal auf dieser Instanz gespeichert, aber öffentlich gemacht."
},
"allowAliasDeletion": {
"label": "Allow alias deletion",
"description": "If enabled, users will be able to delete their aliases."
"label": "Löschen von Aliasen erlauben",
"description": "Wenn aktiviert, können Benutzer ihre Aliase löschen."
},
"maxAliasesPerUser": {
"label": "Maximum aliases per user",
"description": "The maximum number of aliases a user can create. 0 means unlimited. Existing aliases will not be affected."
"label": "Maximale Anzahl von Aliase pro Benutzer",
"description": "Die maximale Anzahl von Aliase, die ein Benutzer erstellen kann. 0 bedeutet unbegrenzt. Bestehende Aliase werden nicht gelöscht, wenn der Benutzer die maximale Anzahl von Aliase erreicht hat."
}
}
}

View File

@ -1,44 +1,44 @@
{
"title": "Reserved Aliases",
"detailsTitle": "Reserved Alias Details",
"title": "Reservierte Aliase",
"detailsTitle": "Details zu reserviertem Alias",
"pageActions": {
"search": {
"placeholder": "Search for aliases"
"placeholder": "Suche nach Aliasen"
}
},
"actions": {
"create": {
"label": "Create new Reserved Alias"
"label": "Neuen reservierten Alias erstellen"
},
"delete": {
"label": "Delete Reserved Alias",
"description": "Are you sure you want to delete this reserved alias?",
"continueActionLabel": "Delete Reserved Alias"
"label": "Reservierten Alias löschen",
"description": "Bist du sicher, dass du diesen reservierten Alias löschen möchtest?",
"continueActionLabel": "Reservierten Alias löschen"
}
},
"userAmount_one": "Forwards to one user",
"userAmount_other": "Forwards to {{count}} users",
"userAmount_one": "Wird zu einem Benutzer weitergeleitet",
"userAmount_other": "Wird zu {{count}} Benutzern weitergeleitet",
"emptyState": {
"title": "Create your first reserved alias",
"description": "Reserved aliases are aliases that will be forwarded to selected admin users. This is useful if you want to create aliases that are meant to be public, like contact@example.com or hello@example.com."
"title": "Erstelle deinen ersten reservierten Alias",
"description": "Reservierte Aliase sind Aliase, die an ausgewählte Admins weitergeleitet werden. Dies ist nützlich, wenn du Aliase erstellen möchtest, die öffentlich sind, wie z.B. kontakt@example.com oder hallo@example.com"
},
"fields": {
"active": {
"label": "Active"
"label": "Aktiv"
},
"users": {
"label": "Users",
"me": "{{email}} (Me)"
"label": "Benutzer",
"me": "{{email}} (Ich)"
}
},
"createNew": {
"title": "Reserved Aliases",
"description": "Define what alias should forward to whom.",
"continueActionLabel": "Create Reserved Alias",
"title": "Reservierten Alias erstellen",
"description": "Definiere, welcher Alias an wen weitergeleitet werden soll.",
"continueActionLabel": "Reservierten Alias erstellen",
"explanation": {
"step1": "User from outside",
"step2": "Sends mail to",
"step4": "KleckRelay forwards to"
"step1": "Ein Benutzer von außen",
"step2": "Sendet eine E-Mail an",
"step4": "KleckRelay leitet weiter an"
}
}
}

View File

@ -1,32 +1,31 @@
{
"title": "Notes",
"title": "Notizen",
"form": {
"createdAt": {
"label": "Created at",
"empty": "Unavailable"
"label": "Erstellt am"
},
"creationContext": {
"label": "Creation Context",
"label": "Erstellt auf",
"values": {
"web": "Created on this instance",
"extension": "Created in the extension",
"extension-inline": "Created using the extension"
"web": "Auf dieser Instanz erstellt",
"extension": "In der Erweiterung erstellt",
"extension-inline": "Mithilfe der Erweiterung erstellt",
}
},
"createdOn": {
"label": "Created on"
"label": "Erstellt auf"
},
"personalNotes": {
"label": "Personal Notes",
"helperText": "You can enter personal notes for this alias here. Notes are encrypted."
"label": "Persönliche Notizen",
"helperText": "Du kannst persönliche Notizen für diesen Alias hier eingeben. Notizen werden verschlüsselt gespeichert."
},
"websites": {
"label": "Websites",
"emptyText": "You haven't used this alias on any site yet.",
"label": "Webseiten",
"emptyText": "Du hast diesen Alias noch nicht auf einer Webseite verwendet.",
"placeholder": "https://example.com",
"helperText": "Add a website to this alias. Used to autofill.",
"helperText": "Füge eine Webseite zu diesem Alias hinzu. Diese wird zum automatischen Ausfüllen verwendet.",
"errors": {
"invalid": "This URL is invalid."
"invalid": "Diese URL ist ungültig."
}
}
}

View File

@ -1,62 +1,63 @@
{
"title": "Aliases",
"title": "Aliase",
"detailsTitle": "Alias Details",
"isInCopyMode": "You are in copy mode. Click on an alias to copy it to your clipboard.",
"isInCopyMode": "Du bist im Kopiermodus. Klicke auf einen Alias, um die Adresse in die Zwischenablage zu kopieren.",
"emptyState": {
"title": "Welcome to your Aliases!",
"description": "Create your first Alias to get started."
"title": "Willkommen zu deinen Aliasen!",
"description": "Erstelle deinen ersten Alias, um loszulegen."
},
"pageActions": {
"search": {
"placeholder": "Search for names"
"placeholder": "Suche nach Adressen"
},
"searchFilter": {
"active": "Active",
"inactive": "Inactive"
"active": "Aktiv",
"inactive": "Inaktiv"
},
"typeFilter": {
"custom": "Custom made",
"random": "Randomly generated"
"custom": "Benutzerdefinierte",
"random": "Zufällig generierte"
}
},
"actions": {
"createRandomAlias": {
"title": "Create Random Alias"
"title": "Erstelle einen zufälligen Alias"
},
"createCustomAlias": {
"title": "Create Custom Alias",
"description": "You can define your own custom alias. Note that a random suffix will be added at the end to avoid duplicates.",
"continueActionLabel": "Create Alias"
"title": "Erstelle einen benutzerdefinierten Alias",
"description": "Du kannst einen benutzerdefinierten Alias erstellen. Beachte, dass ein zufälliger Suffix am Ende hinzugefügt wird, um Duplikate zu vermeiden.",
"continueActionLabel": "Alias erstellen"
},
"delete": {
"label": "Delete Alias",
"description": "Are you sure you want to delete this alias?",
"continueActionLabel": "Delete Alias"
"label": "Alias löschen",
"description": "Bist du dir sicher, dass du diesen Alias löschen möchtest?",
"continueActionLabel": "Alias löschen"
}
},
"aliasTypeExplanation": {
"random": "This is a randomly generated alias",
"custom": "This is a custom-made alias"
"random": "Dies ist ein zufällig generierter Alias",
"custom": "Dies ist ein benutzerdefinierter Alias"
},
"settings": {
"title": "Settings",
"description": "These settings apply to this alias only. You can either set a value manually or refer to your default settings. Note that this does change in behavior. When you set a value to refer to your default setting, the alias will always use the latest value. So when you change your default setting, the alias will automatically use the new value.",
"continueActionLabel": "Save Settings",
"title": "Einstellungen",
"description": "Diese Einstellung werden nur auf diesen Alias angewendet. Du kannst entweder einen Wert manuell setzen oder auf deine Standard-Einstellungen verweisen. Beachte, dass sich das Verhalten dadurch ändert. Wenn du einen Wert auf deine Standard-Einstellungen verweist, wird der Alias immer den neuesten Wert verwenden. Wenn du also deine Standard-Einstellungen änderst, wird der Alias automatisch den neuen Wert verwenden.",
"continueActionLabel": "Einstellungen speichern",
"fields": {
"removeTrackers": {
"label": "Remove Trackers",
"helperText": "Remove single-pixel image trackers as well as url trackers."
"label": "Tracker entfernen",
"continueActionLabel": "Einstellungen speichern",
"helperText": "Einzelpixel-Tracker und URL-Tracker werden entfernt."
},
"createMailReport": {
"label": "Create Mail Reports",
"helperText": "Create reports of emails sent to aliases. Reports are end-to-end encrypted. Only you can access them."
"label": "E-Mail-Berichte erstellen",
"helperText": "Erstellt Berichte über E-Mails, die an Aliase gesendet wurden. Berichte sind Ende-zu-Ende verschlüsselt. Nur du kannst darauf zugreifen."
},
"proxyImages": {
"label": "Proxy Images",
"helperText": "Proxies images in your emails through this KleckRelay instance. This adds an extra layer of privacy. Images are loaded immediately after we receive the email. They then will be stored for some time (cache time). During that time, the image will be served from us. This means the sender has no idea you have opened the mail. After the cache time, the image is loaded from the sender, but it will be forwarded by us. This means the sender will not be able to access your IP address nor your browser data."
"label": "Bilder weiterleiten",
"helperText": "Leitet Bilder in deinen E-Mails über diese KleckRelay-Instanz weiter. Dies fügt eine weitere Schicht der Privatsphäre hinzu. Bilder werden sofort nach dem Empfang der E-Mail geladen. Sie werden dann für eine gewisse Zeit (Cache-Zeit) gespeichert. Während dieser Zeit wird das Bild von uns ausgeliefert. Dies bedeutet, dass der Absender keine Ahnung hat, dass du die Mail geöffnet hast. Nach der Cache-Zeit wird das Bild vom Absender über uns weitergeleitet. Dies bedeutet, dass der Absender weder auf deine IP-Adresse noch auf deine Browserdaten zugreifen kann."
},
"imageProxyFormat": {
"label": "Image File Type",
"label": "Bild-Typ",
"values": {
"jpeg": "JPEG",
"png": "PNG",
@ -64,8 +65,8 @@
}
},
"proxyUserAgent": {
"label": "Proxy User Agent",
"helperText": "An User Agent is a identifier each browser and email client sends when retrieving files, such as images. You can specify here what user agent you would like to be used when we forward it. User Agents are kept up-to-date.",
"label": "Weiterleitungs-User-Agent",
"helperText": "Ein User Agent ist ein Identifikator, den jeder Browser und E-Mail-Client beim Abrufen von Dateien, wie z.B. Bildern, sendet. Du kannst hier angeben, welcher User Agent verwendet werden soll, wenn wir deine Bilder weiterleiten. User Agents werden auf dem neuesten Stand gehalten."
"values": {
"apple-mail": "Apple Mail",
"google-mail": "Google Mail",
@ -76,8 +77,8 @@
}
},
"expandUrlShorteners": {
"label": "Expand URL Shorteners",
"helperText": "Expand shortened URLs (for example bit.ly) to their original URL. This way those services can't track you."
"label": "URL-Verkürzer auflösen",
"helperText": "Löst gekürzte URLs (z.B. bit.ly) auf ihre ursprüngliche URL auf. Auf diese Weise können diese Dienste dich nicht tracken."
}
}
}

View File

@ -1,94 +1,93 @@
{
"fields": {
"email": {
"label": "Email",
"placeholder": "johndoe@example.com",
"label": "E-Mail",
"placeholder": "maxmustermann@example.com",
"errors": {
"disposable": "Disposable email addresses are not allowed."
"disposable": "Wegwerf-E-Mails sind nicht erlaubt."
}
},
"2faCode": {
"label": "Code",
"placeholder": "123456",
"errors": {
"shouldOnlyBeDigits": "The code should only contain digits."
"shouldOnlyBeDigits": "Der Code darf nur aus Zahlen bestehen."
}
},
"recoveryCode": {
"label": "Recovery Code"
"label": "Wiederherstellungscode"
},
"password": {
"label": "Password",
"label": "Passwort",
"placeholder": "********",
"errors": {
"invalid": "Password is invalid."
"invalid": "Das Passwort ist ungültig."
}
},
"passwordConfirmation": {
"label": "Confirm Password",
"label": "Passwort bestätigen",
"placeholder": "********",
"errors": {
"mismatch": "Passwords do not match."
"mismatch": "Die Passwörter stimmen nicht überein."
}
},
"customAliasLocal": {
"label": "Address",
"placeholder": "awesome-fish"
"label": "Adresse",
"placeholder": "toller-fisch"
},
"local": {
"label": "Address"
"label": "Adresse"
},
"search": {
"label": "Search"
"label": "Suchen"
}
},
"messages": {
"successMessage": "Success!",
"deletedObject": "Deleted successfully!",
"successMessage": "Erfolg!",
"deletedObject": "Erfolgreich gelöscht!",
"errors": {
"unknown": "An unknown error occurred.",
"copyFailed": "Copying to clipboard did not work. Please copy the text manually."
"unknown": "Ein unbekannter Fehler ist aufgetreten.",
"copyFailed": "Das Kopieren in die Zwischenablage ist fehlgeschlagen. Bitte kopiere den Text manuell"
},
"alias": {
"addressCopied": "Address has been copied to your clipboard!",
"created": "Alias has been created successfully!",
"deleted": "Alias has been deleted!",
"updated": "Alias has been updated successfully!",
"changedToEnabled": "Alias has been enabled",
"changedToDisabled": "Alias has been disabled"
"addressCopied": "Die Adresse wurde in die Zwischenablage kopiert.",
"created": "Alias wurde erfolgreich erstellt!",
"deleted": "Alias wurde erfolgreich gelöscht!",
"updated": "Alias wurde erfolgreich aktualisiert!",
"changedToEnabled": "Alias wurde aktiviert",
"changedToDisabled": "Alias wurde deaktiviert"
},
"report": {
"deleted": "Report has been deleted!"
"deleted": "Bericht wurde erfolgreich gelöscht!"
}
},
"general": {
"cancelLabel": "Cancel",
"yesLabel": "Yes",
"noLabel": "No",
"continueLabel": "Continue",
"unavailableValue": "Unavailable",
"experimentalFeatureExplanation": "This is an experimental feature.",
"saveLabel": "Save",
"resetLabel": "Reset",
"loading": "Loading...",
"actionNotUndoable": "This action cannot be undone!",
"appError": "We are sorry but there was an error. Please try again later.",
"cancelLabel": "Abbrechen",
"yesLabel": "Ja",
"noLabel": "Nein",
"continueLabel": "Weiter",
"unavailableValue": "Nicht verfügbar",
"experimentalFeatureExplanation": "Diese Funktion ist experimentell.",
"saveLabel": "Speichern",
"resetLabel": "Zurücksetzen",
"loading": "Lädt...",
"actionNotUndoable": "Diese Aktion kann nicht rückgängig gemacht werden!",
"appError": "Ein Fehler ist aufgetreten. Bitte versuche es später erneut.",
"emptyValue": "-"
},
"noSearchResults": {
"title": "Nothing found",
"description": "We couldn't find anything for your search query. Try again with a different query."
"title": "Keine Ergebnisse gefunden",
"description": "Wir konnten keine Ergebnisse für deine Suche finden. Versuche es mit einem anderen Suchbegriff."
},
"navigation": {
"overview": "Overview",
"aliases": "Aliases",
"reports": "Reports",
"settings": "Settings",
"aliases": "Aliase",
"reports": "Berichte",
"settings": "Einstellungen",
"admin": "Admin"
},
"routes": {
"signup": "Sign up",
"login": "Log in",
"logout": "Log out"
"signup": "Registrieren",
"login": "Anmelden",
"logout": "Abmelden"
}
}

View File

@ -1,16 +1,16 @@
{
"forms": {
"askForGeneration": {
"title": "Generate Email Reports?",
"description": "Would you like to create fully encrypted email reports for your mails? Only you will be able to access them. Not even we can decrypt them."
"title": "E-Mail Berichte generieren?",
"description": "Möchtest du verschlüsselte E-Mail Berichte für deine E-Mails erstellen lassen? Nur du kannst auf sie zugreifen. Selbst wir können sie nicht entschlüsseln."
},
"enterPassword": {
"title": "Set up your password",
"description": "Please enter a safe password so that we can encrypt your data."
"title": "Passwort festlegen",
"description": "Bitte gib ein sicheres Passwort ein, damit wir deine Daten verschlüsseln können."
}
},
"alreadyCompleted": {
"title": "Encryption already enabled",
"description": "You already have encryption enabled. Changing passwords is currently not supported."
"title": "Verschlüsselung bereits aktiviert",
"description": "Du hast bereits die Verschlüsselung aktiviert. Das Ändern des Passworts wird derzeit nicht unterstützt."
}
}

View File

@ -1,41 +1,41 @@
{
"ResendMailButton": {
"label": "Resend Mail"
"label": "E-Mail erneut senden"
},
"OpenMailButton": {
"label": "Open Mail"
"label": "E-Mail öffnen"
},
"TimedButton": {
"remainingTime_one": "({{count}})",
"remainingTime_other": "({{count}})"
},
"ErrorLoadingDataMessage": {
"tryAgain": "Try Again"
"tryAgain": "Erneut versuchen"
},
"LockNavigationContextProvider": {
"title": "Are you sure you want to leave?",
"description": "You have unsaved changes. If you leave, your changes will be lost.",
"continueLabel": "Leave"
"title": "Bist du sicher, dass du gehen möchtest?",
"description": "Du hast ungespeicherte Änderungen. Wenn du gehst, gehen diese Änderungen verloren.",
"continueLabel": "Verlassen"
},
"StringPoolField": {
"addCustom": {
"label": "Add custom"
"label": "Wert hinzufügen"
},
"forms": {
"addNew": {
"title": "Add new value",
"description": "Enter your characters you would like to include",
"label": "Characters",
"submit": "Add"
"title": "Neuen Wert hinzufügen",
"description": "Füge einen neuen Wert hinzu",
"label": "Wert",
"submit": "Hinzufügen"
}
}
},
"SelectField": {
"values": {
"true": "Yes",
"false": "No"
"true": "Ja",
"false": "Nein"
},
"valueSelection": "<{{ value }}>",
"valueSelectionIsDefault": "Default <{{ value }}>"
"valueSelectionIsDefault": "Standard <{{ value }}>"
}
}

View File

@ -1,20 +1,20 @@
{
"actions": {
"enterDecryptionPassword": {
"title": "Decrypt Reports",
"description": "Please enter your password so that your reports can de decrypted.",
"cancelActionLabel": "Decrypt later"
"title": "Berichte entschlüsseln",
"description": "Bitte gib dein Passwort ein, damit deine Berichte entschlüsselt werden können.",
"cancelActionLabel": "Später entschlüsseln"
},
"passwordMissing": {
"unavailable": {
"title": "Encryption required",
"description": "You need to set up encryption to use this feature.",
"continueActionLabel": "Set up encryption"
"title": "Verschlüsselung erforderlich",
"description": "Um diese Funktion nutzen zu können, musst du die Verschlüsselung einrichten.",
"continueActionLabel": "Verschlüsselung einrichten"
},
"passwordRequired": {
"title": "Password required",
"description": "Your decryption password is required to view this section.",
"continueActionLabel": "Enter password"
"title": "Passwort erforderlich",
"description": "Dein Passwort ist erforderlich, um diese Sektion anzuzeigen.",
"continueActionLabel": "Passwort eingeben"
}
}
}

View File

@ -1,12 +1,12 @@
{
"sharePassword": {
"title": "Share Password?",
"description": "An extension is asking for your password. Do you want to share it? Only continue if you initiated this action.",
"warning": "THIS WILL SHARE YOUR PASSWORD WITH THE EXTENSION. ALL YOUR DATA CAN BE DECRYPTED USING IT. ONLY CONTINUE IF YOU TRUST THE EXTENSION AND IF YOU INITIATED THIS REQUEST.",
"title": "Passwort teilen?",
"description": "Eine Erweiterung fragt nach deinem Passwort. Möchtest du es teilen? Fahre nur fort, wenn du diese Aktion initiiert hast.",
"warning": "DIES TEILT DEIN PASSWORT MIT DER ERWEITERUNG. ALLE DEINE DATEN KÖNNEN MIT DEM PASSWORT ENTSCHLÜSSELT WERDEN. FAHRE NUR FORT, WENN DU DER ERWEITERUNG VERTRAUST UND WENN DU DIESE ANFRAGE GESTARTET HAST.",
"sharePassword": "Share Password",
"doNotShare": "Do not share",
"decideLater": "Decide later",
"doNotAskAgain": "Do not ask again"
"sharePassword": "Passwort teilen",
"doNotShare": "Passwort nicht teilen",
"decideLater": "Später entscheiden",
"doNotAskAgain": "Nein und nicht erneut nachfragen"
}
}

View File

@ -1,35 +1,35 @@
{
"title": "Log in",
"title": "Anmelden",
"forms": {
"email": {
"description": "We will send you a code to log in",
"continueActionLabel": "Send code"
"description": "Wir senden dir einen Code, um dich anzumelden",
"continueActionLabel": "Code senden"
},
"confirmCode": {
"title": "You got mail!",
"description": "We sent you a code to your email. Enter it below to login",
"continueActionLabel": "Log in",
"allowLoginFromDifferentDevices": "Allow login from different devices",
"expiringSoonWarning": "Your code will expire in less than a minute.",
"title": "Du hast Mail!",
"description": "Wir haben dir eine E-Mail mit einem Anmelde-Code geschickt. Gib ihn unten ein, um dich anzumelden",
"continueActionLabel": "Anmelden",
"allowLoginFromDifferentDevices": "Von anderen Geräten anmelden",
"expiringSoonWarning": "Dein Code läuft in weniger als einer Minute ab.",
"fields": {
"code": {
"label": "Verification Code",
"label": "Anmelde-Code",
"errors": {
"invalidChars": "Invalid verification code"
"invalidChars": "Der Anmelde-Code ist ungültig",
}
}
}
},
"confirmFromDifferentDevice": {
"title": "Login failed",
"description": "You could not be logged in. This could either be because you are not allowed to login from different devices or the verification code is invalid or expired."
"title": "Anmeldung fehlgeschlagen",
"description": "Du konntest nich angemeldet werden. Dies kann entweder daran liegen, dass du dich nicht von anderen Geräten anmelden darfst oder der Verifizierungscode ungültig oder abgelaufen ist."
},
"otp": {
"title": "Two-Factor Authentication",
"description": "Enter the code from your authenticator app",
"isUnavailable": "Your OTP verification time expired or you exceeded the maximum number of attempts. Please log in again.",
"codesLostActionLabel": "I lost my codes",
"continueActionLabel": "Log in"
"title": "Zwei-Faktor-Authentifizierung",
"description": "Gib den Code aus deiner Authentifizierungs-App ein",
"isUnavailable": "Deine Zwei-Faktor-Anmeldezeit ist abgelaufen oder du hast die maximale Anzahl an Versuchen überschritten. Bitte melde dich erneut an.",
"codesLostActionLabel": "Ich habe meine Codes verloren",
"continueActionLabel": "Anmelden"
}
}
}

View File

@ -1,4 +1,4 @@
{
"title": "Log out",
"description": "We are logging you out..."
"title": "Abmelden",
"description": "Wir sind dich am abmelden..."
}

View File

@ -1,10 +1,10 @@
{
"title": "Recover Two-Factor Authentication",
"description": "We are very sorry if you lost your codes. Please enter a recovery code to continue. Note that this will disable two-factor authentication for your account. You can enable it again in the settings.",
"continueActionLabel": "Disable 2FA",
"title": "Zwei-Faktor-Authentifizierung wiederherstellen",
"description": "Wir bedauern sehr, wenn du deine Codes verloren hast. Bitte gib einen Wiederherstellungscode ein, um fortzufahren. Beachte, dass dies die Zwei-Faktor-Authentifizierung für dein Konto deaktiviert. Du kannst sie in den Einstellungen wieder aktivieren.",
"continueActionLabel": "2FA deaktivieren",
"events": {
"unauthorized": "Please make sure to log in first and then reset your two-factor authentication on its screen.",
"canLogInNow": "Two-factor authentication has been disabled. You can log in now.",
"loggedIn": "Two-factor authentication has been disabled. You are logged in now."
"unauthorized": "Bitte logge dich zuerst ein und deaktiviere dann die Zwei-Faktor-Authentifizierung auf der entsprechenden Seite.",
"canLoginNow": "Zwei-Faktor-Authentifizierung wurde deaktiviert. Du kannst dich jetzt einloggen.",
"loggedIn": "Zwei-Faktor-Authentifizierung wurde deaktiviert. Du bist jetzt eingeloggt."
}
}

View File

@ -1,6 +1,6 @@
{
"title": "Email relay service detected",
"description": "We detected that you are using an email relay service to sign up. This KleckRelay instance does not support relaying to another email relay service. You can either choose a different instance or sign up with a different email address.",
"detectedExplanation": "Detected email relay:",
"closeActionLabel": "Got it"
"title": "E-Mail-Alias-Service erkannt",
"description": "Wir haben festgestellt, dass du einen E-Mail-Alias-Service verwendest, um dich anzumelden. Diese KleckRelay-Instanz unterstützt keine Weiterleitung an einen anderen E-Mail-Alias-Service. Du kannst entweder eine andere Instanz wählen oder dich mit einer anderen E-Mail-Adresse anmelden.",
"detectedExplanation": "Erkannter E-Mail-Alias-Service:",
"closeActionLabel": "Schließen"
}

View File

@ -1,66 +1,66 @@
{
"title": "Reports",
"detailsTitle": "Report Details",
"title": "Berichte",
"detailsTitle": "Bericht-Details",
"emptyState": {
"title": "Welcome to your Reports!",
"description": "Here you will find your email reports. Currently, you don't have any reports. Wait until you receive an email."
"title": "Willkommen zu deinen Berichten!",
"description": "Hier findest du deine E-Mail-Berichte. Du hast derzeit keine Berichte. Warte, bis du eine E-Mail erhältst."
},
"pageActions": {
"sort": {
"label": "Sorting",
"label": "Sortierung",
"values": {
"List": "List reports by their date",
"GroupByAlias": "Group reports by their alias"
"List": "Berichte nach Datum auflisten",
"GroupByAlias": "Berichte nach Alias gruppieren"
}
}
},
"emailMeta": {
"flow": "{{from}} -> {{to}}",
"emptySubject": "<No Subject>"
"emptySubject": "<Kein Betreff>"
},
"actions": {
"delete": {
"label": "Delete Report",
"description": "Are you sure you want to delete this report?",
"continueActionLabel": "Delete Report"
"label": "Bericht löschen",
"description": "Bist du dir sicher, dass du diesen Bericht löschen möchtest?",
"continueActionLabel": "Bericht löschen"
}
},
"sections": {
"information": {
"title": "Email Information",
"title": "Informationen zur E-Mail",
"form": {
"from": {
"label": "From"
"label": "Von"
},
"to": {
"label": "To"
"label": "An"
},
"subject": {
"label": "Subject"
"label": "Betreff"
}
}
},
"trackers": {
"title": "Trackers",
"title": "Tracker",
"results": {
"imageTrackers": {
"text_zero": "No image trackers found",
"text_one": "Removed 1 image tracker",
"text_other": "Removed {{count}} image trackers"
"text_zero": "Keine Bild-Tracker gefunden",
"text_one": "Ein Bild-Tracker entfernt",
"text_other": "{{count}} Bild-Tracker entfernt"
},
"proxiedImages": {
"text_zero": "No images found",
"text_one": "Forwarding 1 image",
"text_other": "Forwarding {{count}} images",
"text_zero": "Keine Bilder gefunden",
"text_one": "1 Bild wird weitergeleitet",
"text_other": "{{count}} Bilder werden weitergeleitet",
"status": {
"isStored": "Stored on Server",
"isProxying": "Being forwarded"
"isStored": "Auf Server gespeichert",
"isProxying": "Wird weitergeleitet"
}
},
"expandedUrls": {
"text_zero": "No shortened URLs found",
"text_one": "Expanded 1 URL",
"text_other": "Expanded {{count}} URLs"
"text_zero": "Keine gekürzten URLs gefunden",
"text_one": "Eine URL aufgelöst",
"text_other": "{{count}} URLs aufgelöst"
}
}
}

View File

@ -1,33 +1,33 @@
{
"title": "Two-Factor-Authentication",
"alreadyEnabled": "You have successfully enabled 2FA!",
"title": "Zwei-Faktor-Authentifizierung",
"alreadyEnabled": "Du hast 2FA erfolgreich aktiviert!",
"setup": {
"description": "Enable 2FA to add an extra layer of security to your account. Each time you log in, you will need to enter a code generated from your authenticator app. This makes it harder for an attacker to hack into your account as they would need to have access to your phone.",
"setupLabel": "Enable 2FA",
"continueActionLabel": "Enable 2FA",
"codeExpired": "The verification time for your current Two-Factor-Authentication code has expired. A new code has been generated.",
"description": "Aktiviere 2FA, um eine zusätzliche Sicherheitsschicht für dein Konto hinzuzufügen. Jedes Mal, wenn du dich einloggst, musst du einen Code eingeben, der von deiner Authentifizierungs-App generiert wird. Dies macht es für einen Angreifer schwieriger auf dein Konto zuzugreifen, da er zusätzlich zu deinen Zugangsdaten auch noch Zugriff auf dein Telefon benötigt.",
"setupLabel": "2FA aktivieren",
"continueActionLabel": "2FA aktivieren",
"codeExpired": "Die Verifizierungszeit für deinen aktuellen 2FA-Code ist abgelaufen. Ein neuer Code wurde generiert.",
"recoveryCodes": {
"title": "Note down your recovery codes",
"description": "These codes are used to recover your account if you lose access to your authenticator app. Note them down and store them in a safe place. You will not be able to view them again. Do not store them in your password manager. IF YOU LOSE YOUR RECOVERY CODES, YOU WILL LOSE ACCESS TO YOUR ACCOUNT. WE WILL NOT BE ABLE TO HELP YOU.",
"continueActionLabel": "I have noted down my recovery codes"
"title": "Notiere dir deine Wiederherstellungs-Codes",
"description": "Diese Codes werden verwendet, um dein Konto wiederherzustellen, wenn du keinen Zugriff mehr auf deine Authentifizierungs-App hast. Notiere sie dir und bewahre sie an einem sicheren Ort auf. Du wirst sie nicht noch einmal sehen können. Speichere sie nicht in deinem Passwort-Manager. WENN DU DEINE WIEDERHERSTELLUNGS-CODES VERLIERST, HAST DU KEINEN ZUGRIFF MEHR AUF DEIN KONTO. WIR KÖNNEN DIR NICHT HELFEN.",
"continueActionLabel": "Ich habe meine Wiederherstellungs-Codes notiert"
},
"success": "You have successfully enabled 2FA!"
"success": "Du hast 2FA erfolgreich aktiviert!"
},
"delete": {
"title": "Disable 2FA",
"title": "2FA deaktivieren",
"steps": {
"askType": {
"code": "I have my 2FA code",
"recoveryCode": "I have a recovery code"
"code": "Ich habe meinen 2FA-Code",
"recoveryCode": "Ich habe einen Wiederherstellungs-Code"
},
"askCode": {
"label": "Code"
},
"askRecoveryCode": {
"label": "Recovery Code"
"label": "Wiederherstellungs-Code"
}
},
"continueActionLabel": "Disable 2FA",
"success": "You have successfully disabled 2FA!"
"continueActionLabel": "2FA deaktivieren",
"success": "Du hast 2FA erfolgreich deaktiviert!"
}
}

View File

@ -1,5 +1,5 @@
{
"title": "Alias Preferences",
"description": "Select default values for your aliases. This only affects aliases you haven't set a custom value for.",
"continueActionLabel": "Save preferences"
"title": "Alias-Präferenzen",
"description": "Wähle Standardwerte für deine Aliase. Dies betrifft nur Aliase, für die du keine benutzerdefinierten Wert festgelegt hast.",
"continueActionLabel": "Präferenzen speichern"
}

View File

@ -1,7 +1,7 @@
{
"title": "Settings",
"title": "Einstellungen",
"actions": {
"enable2fa": "Two-Factor-Authentication",
"aliasPreferences": "Alias Preferences"
"enable2fa": "Zwei-Faktor-Authentifizierung",
"aliasPreferences": "Alias Präferenzen"
}
}

View File

@ -1,17 +1,17 @@
{
"forms": {
"email": {
"title": "Sign up",
"description": "We only need your email and you are ready to go!",
"continueActionLabel": "Continue"
"title": "Registrieren",
"description": "Wir brauchen nur deine E-Mail-Adresse und schon kann es losgehen!"
},
"mailVerification": {
"title": "You got mail!",
"description": "We sent you an email with a link to confirm your email address. Please check your inbox and click on the link to continue.",
"title": "Du hast Mail!",
"description": "Wir haben dir eine E-Mail mit einem Bestätigungslink gesendet. Bitte überprüfe deine E-Mails und klicke auf den Link, um deine Registrierung abzuschließen.",
"markAsNotSpam": "Wenn du die E-Mail nicht findest, überprüfe bitte auch deinen Spam-Ordner. Sollte die E-Mail in deinem Spam-Ordner landen, bitte markiere sie als \"Kein Spam\" um in Zukunft alle E-Mails zu erhalten",
"editEmail": {
"title": "Edit email address?",
"description": "Would you like to return to the previous step and edit your email address?",
"continueActionLabel": "Yes, edit email"
"title": "E-Mail-Adresse bearbeiten",
"description": "Möchtest du zum vorherigen Schritt zurückkehren und deine E-Mail-Adresse bearbeiten?",
"continueActionLabel": "Ja, E-Mail-Adresse bearbeiten"
}
}
}

View File

@ -1,35 +0,0 @@
{
"general": {
"cancelLabel": "Cancel",
"emptyValue": "-",
"emptyUnavailableValue": "Unavailable",
"saveLabel": "Save",
"defaultValueSelection": "Default <{{value}}>",
"defaultValueSelectionRaw": "<{{value}}>",
"booleanSelection": {
"true": "Yes",
"false": "No"
},
"defaultError": "An error occurred.",
"defaultSuccess": "Success!",
"loading": "Loading...",
"actionNotUndoable": "This action cannot be undone!",
"copyError": "Copying to clipboard did not work. Please copy the text manually.",
"experimentalFeature": "This is an experimental feature.",
"deletedSuccessfully": "Deleted successfully!",
"appError": "We are sorry but there was an error. Please try again later."
},
"components": {
"passwordShareConfirmationDialog": {
"title": "Share Password?",
"description": "An extension is asking for your password. Do you want to share it? Only continue if you initiated this action.",
"warning": "THIS WILL SHARE YOUR PASSWORD WITH THE EXTENSION. ALL YOUR DATA CAN BE DECRYPTED USING IT. ONLY CONTINUE IF YOU TRUST THE EXTENSION AND IF YOU INITIATED THIS REQUEST.",
"continueAction": "Share Password",
"doNotShare": "Do not share",
"decideLater": "Decide later",
"doNotAskAgain": "Do not ask again"
}
}
}

View File

@ -1,7 +1,7 @@
{
"title": "Verify your email",
"isLoading": "We are verifying your email address...",
"title": "E-Mail bestätigen",
"isLoading": "Wir prüfen Ihren Link...",
"errors": {
"invalid": "The verification link is invalid or has expired."
"invalid": "Dieser Link ist ungültig oder abgelaufen."
}
}

View File

@ -32,7 +32,7 @@
}
},
"createNew": {
"title": "Reserved Aliases",
"title": "Create Reserved Alias",
"description": "Define what alias should forward to whom.",
"continueActionLabel": "Create Reserved Alias",
"explanation": {

View File

@ -2,8 +2,7 @@
"title": "Notes",
"form": {
"createdAt": {
"label": "Created at",
"empty": "Unavailable"
"label": "Created at"
},
"creationContext": {
"label": "Creation Context",

View File

@ -80,7 +80,6 @@
"description": "We couldn't find anything for your search query. Try again with a different query."
},
"navigation": {
"overview": "Overview",
"aliases": "Aliases",
"reports": "Reports",
"settings": "Settings",

View File

@ -7,6 +7,6 @@
"sharePassword": "Share Password",
"doNotShare": "Do not share",
"decideLater": "Decide later",
"doNotAskAgain": "Do not ask again"
"doNotAskAgain": "No and do not ask again"
}
}

View File

@ -2,12 +2,12 @@
"forms": {
"email": {
"title": "Sign up",
"description": "We only need your email and you are ready to go!",
"continueActionLabel": "Continue"
"description": "We only need your email and you are ready to go!"
},
"mailVerification": {
"title": "You got mail!",
"description": "We sent you an email with a link to confirm your email address. Please check your inbox and click on the link to continue.",
"maskAsNotSpam": "If you can't find the email, please check your spam folder. If the email lands in your spam folder, please mark it as \"Not Spam\" to receive all emails in the future",
"editEmail": {
"title": "Edit email address?",
"description": "Would you like to return to the previous step and edit your email address?",

View File

@ -1,35 +0,0 @@
{
"general": {
"cancelLabel": "Cancel",
"emptyValue": "-",
"emptyUnavailableValue": "Unavailable",
"saveLabel": "Save",
"defaultValueSelection": "Default <{{value}}>",
"defaultValueSelectionRaw": "<{{value}}>",
"booleanSelection": {
"true": "Yes",
"false": "No"
},
"defaultError": "An error occurred.",
"defaultSuccess": "Success!",
"loading": "Loading...",
"actionNotUndoable": "This action cannot be undone!",
"copyError": "Copying to clipboard did not work. Please copy the text manually.",
"experimentalFeature": "This is an experimental feature.",
"deletedSuccessfully": "Deleted successfully!",
"appError": "We are sorry but there was an error. Please try again later."
},
"components": {
"passwordShareConfirmationDialog": {
"title": "Share Password?",
"description": "An extension is asking for your password. Do you want to share it? Only continue if you initiated this action.",
"warning": "THIS WILL SHARE YOUR PASSWORD WITH THE EXTENSION. ALL YOUR DATA CAN BE DECRYPTED USING IT. ONLY CONTINUE IF YOU TRUST THE EXTENSION AND IF YOU INITIATED THIS REQUEST.",
"continueAction": "Share Password",
"doNotShare": "Do not share",
"decideLater": "Decide later",
"doNotAskAgain": "Do not ask again"
}
}
}

View File

@ -84,7 +84,6 @@ export default function EmailForm({onSignUp, serverSettings}: EmailFormProps): R
<SimpleForm
title={t("forms.email.title")}
description={t("forms.email.description")}
continueActionLabel={t("forms.email.continueActionLabel")}
nonFieldError={formik.errors.detail}
isSubmitting={formik.isSubmitting}
>

View File

@ -3,6 +3,7 @@ import {useTranslation} from "react-i18next"
import React, {ReactElement, useState} from "react"
import {
Alert,
Button,
Dialog,
DialogActions,
@ -51,6 +52,9 @@ export default function YouGotMail({email, onGoBack}: YouGotMailProps): ReactEle
{t("forms.mailVerification.description")}
</Typography>
</Grid>
<Grid item>
<Alert severity="info">{t("forms.mailVerification.markAsNotSpam")}</Alert>
</Grid>
<Grid item>
<Grid container alignItems="center" direction="row" spacing={2}>
<Grid item>