Files
pl_mail/translations/messages.de.yaml
T
Paul LütznerandClaude Opus 5 ea43b1fe30 fix(compose): the schedule that went nowhere, and eight other things a person hit
Scheduled send did nothing when a time was picked by hand, and it did it
silently. ScheduledSendResolver refuses anything closer than MIN_SECONDS (60s);
the picker only checked whether a time had PASSED, so the entire band between
now and a minute from now sailed through the browser. The server then reported
the refusal with $form->addError() — a ROOT error — and _window.html.twig
rendered only form.toAddresses's errors, so the message went nowhere at all.
Turbo replaced the compose frame with a re-render identical to what was already
on screen: menu closed, composer unchanged, no toast, one request in the
profiler, console clean.

Which is exactly the click a person makes to test the feature — they type the
next whole minute. Every green test used a PRESET; the custom picker appeared
in one test that drives it to a refusal, so "pick a time and have it actually
schedule" was asserted nowhere.

  * the picker mirrors MIN_SECONDS and refuses below it, locally and in words
    that are true of the time chosen ("past" and "too soon" are now two
    different things to be told, in three catalogues)
  * root-level form errors have somewhere to render, so no refusal from
    schedule() can be swallowed again
  * the spec drives the custom picker to a real schedule, all the way to a
    persisted badge in Drafts — and pins the floor case as a local refusal
    with no round trip at all

And the rest of the pass:

  * the signature no longer eats the first paragraph. Clicking the empty space
    BELOW it put the caret at the end of the sign-off, so typing welded onto
    it; those clicks now land in the writing space above. The emptiness check
    counted the signature as not-the-user's-writing unconditionally, so text
    that had landed inside it was subtracted before the count and Send claimed
    a visibly full message had none — the block is skipped only while it is
    untouched.
  * the subject/body confirmations are the in-app panel the plain-text switch
    already uses, not window.confirm(), which froze a test session three times.
    Both reasons are one question asked once, and the retry goes back through
    the same submitter so a scheduled send stays scheduled.
  * the To field: the refusal clears when a recipient is added, names the
    invalid address rather than blaming the count, and keeps what was typed
    (Tom Select wiped the box on blur before submit ever saw it). The
    suggestion panel no longer reopens over the Subject row on every focus.
  * aria-invalid and aria-describedby tie the refusal to the input; the From
    select and the Tom Select original are named; the picker's refusal is a
    role="alert".
  * a subject typed on its own is worth autosaving — the threshold counted the
    body alone, so "TEST-RELOAD halbfertig" was lost on reload with no warning
    and nothing in Drafts. Below the threshold, beforeunload interrupts.
  * the emoji panel is capped against the compose WINDOW rather than the
    viewport (its top edge sat 33px outside it), the grid's scrollbar is thin
    rather than a 15px native bar with arrows, and the skin-tone button is off
    the panel outline.
  * vergrößern, Schriftgröße, groß — the compose labels were the only corner
    of the UI spelling it the Swiss way, and a spec was asserting it.

phpunit OK (3427 tests, 8849 assertions); composer stan [OK] No errors;
120 compose e2e passed, plus 48 adjacent.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-13 12:56:29 +02:00

2596 lines
124 KiB
YAML
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
account:
add_title: Konto hinzufügen
added: Konto wurde hinzugefügt
disabled: Konto deaktiviert
enabled: Konto aktiviert
form:
email: E-Mail-Adresse
encryption: Verschlüsselung
imap:
heading: Eingehend — IMAP
host: Server
password: Passwort
port: Port
preset:
label: Anbieter
placeholder: Anbieter wählen…
smtp:
heading: Ausgehend — SMTP
host: Server
username: Benutzername
oauth:
google: Weiter mit Google
info: Melde dich bei deinem Anbieter an — es wird kein Passwort gespeichert.
microsoft: Weiter mit Microsoft
removed: Konto entfernt
tabs:
imap: IMAP / SMTP
oauth: OAuth
test:
button: Verbindung testen
imap: IMAP
smtp: SMTP
updated: Konto aktualisiert
admin:
accounts:
account: 'Konto'
heading: 'Konten'
last_activity: 'Letzte Aktivität'
messages: 'Nachrichten'
threads: 'Konversationen'
ago: 'her'
config_backup:
change:
absent: 'hier noch nicht gesetzt'
differs: 'ersetzt einen anderen Wert'
unchanged: 'bereits identisch'
disposition:
applied: 'Geschrieben und ab sofort wirksam.'
applied-on-restart: 'wirkt nach dem nächsten Neustart'
external: >-
plMail ist hier Client des Systems und nicht sein Eigentümer. Die
Datenbankrolle wurde mit dem Passwort angelegt, das Postgres bereits hält,
und nur eine Neuinitialisierung liest ein anderes ein — den Wert allein
hier zu ändern ergibt also eine Installation, die sich nicht mehr mit ihrer
eigenen Datenbank verbinden kann. Ändere ihn zuerst in Postgres, dann hier.
kept-deliberately: >-
Bleibt bewusst so, wie er hier ist. Die Zugangsdaten aus dieser Sicherung
wurden beim Schreiben mit dem Schlüssel dieser Installation neu
verschlüsselt; den Schlüssel aus der Sicherung einzusetzen würde sie — und
alles andere bereits Gespeicherte — beim nächsten Start unlesbar machen.
Die Zeile unten ist nur für den Fall gedacht, dass du auch die alte
Datenbank wiederherstellst, deren Zeilen damit verschlüsselt sind; dann
muss sie eingetragen sein, bevor irgendetwas gespeichert wird.
not-writable: >-
Dieser Prozess konnte diesen Pfad nicht schreiben. Schreibgeschütztes
Secrets-Volume, falsche UID oder ein Dienst, der das Volume nie bekommen
hat. Der Wert steckt in der Sicherung, die du gerade hochgeladen hast —
lege ihn selbst dort ab.
shadowed-by-compose: >-
Geschrieben, aber dieser Name ist auch in der Prozessumgebung gesetzt, und
der Entrypoint lässt einen ausdrücklich konfigurierten Wert über den
erzeugten siegen. Entferne oder aktualisiere ihn in deiner Compose-Datei —
oder in der `.env` daneben — und starte neu; der wiederhergestellte Wert
liegt bereits darunter bereit.
error:
malformed-document: >-
Das Passwort hat die Datei geöffnet, aber ihr Inhalt ist keine
Konfigurationssicherung, die diese plMail-Version lesen kann. Es wurde
nichts geändert.
not-a-backup: >-
Das ist keine plMail-Konfigurationssicherung. Es wurde nichts geändert.
unsupported-version: >-
Diese Sicherung stammt aus einer neueren plMail-Version und liegt in einem
Format vor, das diese Version nicht lesen kann. Aktualisiere zuerst, dann
importiere sie.
wrong-password: >-
Mit diesem Passwort lässt sich die Datei nicht öffnen — oder die Datei
wurde seit dem Schreiben verändert. Es wurde nichts geändert.
export:
error:
mismatch: 'Die beiden Passwörter stimmten nicht überein, es wurde nichts exportiert.'
too_short: 'Dieses Passwort ist zu kurz, es wurde nichts exportiert.'
heading: 'Konfiguration exportieren'
intro: >-
Alle Einstellungen und Zugangsdaten, mit denen diese Installation läuft, in
einer passwortverschlüsselten Datei: die Umgebungswerte, die Dateien im
Secrets-Volume, die Anbieter- und Firebase-Zugangsdaten aus der Datenbank
sowie die Personen — jede mit Passwort, zweitem Faktor, Postfächern und
allem anderen, was sie eingerichtet hat. Keine E-Mails, keine
Kalendereinträge, keine Kontakte — dafür ist `app:backup` da.
generate: 'Eins erzeugen'
generated_copied: 'In die Zwischenablage kopiert — bewahre es an einem Ort auf, der diese Maschine überlebt.'
generated_shown: 'Dein Browser gibt die Zwischenablage nicht frei, das Passwort steht deshalb oben im Feld — sichere es jetzt.'
password: 'Passwort'
password_help: >-
Mindestens %length% Zeichen. Es wird nirgends gespeichert, und ohne es
lässt sich die Datei nicht öffnen.
password_repeat: 'Passwort wiederholen'
submit: 'Sicherung herunterladen'
warning: >-
Die entstehende Datei enthält jedes Geheimnis dieser Installation, geschützt
durch nichts als das Passwort, das du hier eingibst. Bewahre sie so auf, wie
du den Verschlüsselungsschlüssel selbst aufbewahren würdest.
import:
error:
no_file: 'Es kam keine Datei an, oder sie war weit größer, als eine Konfigurationssicherung sein kann.'
no_password: 'Gib das Passwort ein, mit dem diese Sicherung versiegelt wurde.'
file: 'Sicherungsdatei'
heading: 'Konfiguration importieren'
intro: >-
Lade eine Sicherung hoch und gib ihr Passwort ein. Es wird nichts
geschrieben, bevor du gesehen und bestätigt hast, was passieren würde.
password: 'Passwort'
submit: 'Sicherung prüfen'
review:
already_matching: '%count% weitere stimmen bereits mit dieser Umgebung überein, dabei ist also nichts zu tun.'
apply: 'Diese Sicherung anwenden'
applied: 'Was geschrieben wurde'
confirm_password: 'Passwort, noch einmal'
exported_at: 'Exportiert'
from: 'Von'
heading: 'Sicherung prüfen'
instructed: 'Das musst du selbst erledigen'
instructed_lead: >-
Alles Übrige steht bereits. Diese wenigen Punkte lassen sich von hier aus
nicht abschließen, und jeder sagt warum — etwas anderes zu behaupten wäre
eine Lüge, die ein Betreiber erst an dem Tag bemerkt, an dem es darauf
ankommt.
kept_users: 'Schon vorhanden — unverändert gelassen'
kept_users_lead: >-
Diese Personen gibt es in dieser Installation bereits, erkannt an der
E-Mail-Adresse. An ihnen wurde nichts angerührt: weder Passwort noch
zweiter Faktor, weder Postfächer noch sonst etwas, das sie eingerichtet
hatten. Eine Sicherung ist die Momentaufnahme eines vergangenen Zeitpunkts,
und sie über ein lebendes Konto zu schreiben ist der Weg, auf dem jemand
ohne ein Wort irgendwo aus seiner eigenen Mail ausgesperrt wird.
notes: 'Gut zu wissen'
old_key_summary: 'Spielst du auch die alte Datenbank ein? Dann brauchst du ihren alten Verschlüsselungsschlüssel.'
restart: >-
Das meiste davon wird beim Start des Stacks gelesen, deshalb schreibt es
plMail in die erzeugten Geheimnisse, und es wirkt ab dem nächsten Neustart.
Das ist ein Neustart für die ganze Liste, nicht einer pro Wert.
restart_applied: >-
Geschrieben. Die beim Containerstart gelesenen Werte liegen bereit, sind
aber noch nicht in Kraft — starte den Stack einmal neu, und diese
Installation kommt als die hoch, von der die Sicherung stammt.
unknown_instance: 'nicht vermerkt'
written: 'Das schreibt plMail'
written_applied: 'Geschrieben'
written_none: 'In dieser Sicherung ist nichts, was plMail schreiben müsste.'
section:
database: 'Datenbank'
env: 'Umgebungsvariablen'
files: 'Dateien im Secrets-Volume'
users: 'Personen und alles, was sie eingerichtet haben'
db:
active:
empty: 'Zurzeit keine aktiven Abfragen.'
heading: 'Live-Aktivität'
cache_hit: 'Cache-Trefferquote'
col:
calls: 'Aufrufe'
hit: 'Cache'
max: 'Max. ms'
mean: 'Ø ms'
query: 'Abfrage'
rows: 'Zeilen'
total: 'Gesamt'
connections: 'Verbindungen'
deadlocks: 'Deadlocks'
extension_missing: 'pg_stat_statements ist nicht aktiviert — die Auswertung langsamer Abfragen steht nicht zur Verfügung. Einmalig aktivieren:'
extension_enable: "Jetzt aktivieren"
extension_enable_hint: "Die Statistik beginnt, sobald die Erweiterung angelegt wird; fruehere Abfragen erscheinen nicht."
extension_enable_failed: "Erweiterung konnte nicht aktiviert werden - die Datenbankrolle darf sie nicht anlegen."
heavy_total:
heading: 'Aufwendigste Abfragen (nach Gesamtzeit)'
hint: 'Kumulierte Zeit über alle Aufrufe — wofür die Datenbank ihre Zeit insgesamt aufwendet.'
reset: 'Statistik zurücksetzen'
reset_confirm: 'Alle gesammelten Abfragestatistiken zurücksetzen?'
rollback_ratio: 'Rollback-Quote'
slow_mean:
empty: 'Noch keine Abfragen oberhalb des Schwellwerts.'
heading: 'Langsamste Abfragen (nach Durchschnittszeit)'
hint: 'Abfragen mit durchschnittlich ≥ 5 ms, aktuelle Datenbank.'
failed:
delete: 'Löschen'
delete_confirm: 'Diese fehlgeschlagene Nachricht endgültig verwerfen?'
empty: 'Der Failure-Transport ist leer. 🎉'
heading: 'Fehlgeschlagene Nachrichten'
purge: 'Alle verwerfen'
purge_confirm: 'Alle fehlgeschlagenen Nachrichten endgültig verwerfen? Danach lassen sie sich nicht mehr wiederholen.'
retry: 'Wiederholen'
retry_all: 'Alle wiederholen'
retry_all_confirm: 'Alle fehlgeschlagenen Nachrichten erneut zustellen?'
integrations:
base_url_per_user: 'Jede Person gibt ihre eigene Serveradresse ein.'
base_url_pinned: 'für alle festgelegt'
clear_secret: 'Gespeichertes Client-Secret entfernen'
configure: 'Konfigurieren'
connected_users: '%count% verbunden'
connected_users_one: '1 verbunden'
copy_redirect_uri: 'Redirect-URI kopieren'
inherit_toggle: 'Diese Zugangsdaten auch für Dateidienste verwenden'
inherit_toggle_help: 'Ein Google-Projekt deckt auch Drive und Fotos ab, eine Microsoft-App auch OneDrive. Angeschaltet lassen und für diese ist nichts weiter einzurichten.'
field:
base_url: 'Serveradresse'
base_url_help_saas: 'Leer lassen. Dieser Dienst hat eine feste Adresse.'
base_url_help_selfhosted: 'Optional. Festlegen, um alle auf einen Server zu binden; leer lassen, damit jede Person ihre eigene Adresse einträgt.'
client_id: 'Client-ID'
client_secret: 'Client-Secret'
enabled: 'Diesen Dienst anbieten'
enabled_help: 'Ausgeschaltet kann sich niemand verbinden und der Dienst bleibt in den Verfassen- und Speichern-Menüs verborgen.'
push_token: 'Push-Verifizierungstoken'
push_token_help: 'Gemeinsames Geheimnis, das Google jedem Pub/Sub-Push beilegt; der Webhook weist Benachrichtigungen ohne es ab. Leer lassen, um auf GMAIL_PUBSUB_VERIFICATION_TOKEN zurückzufallen.'
pubsub_topic: 'Pub/Sub-Topic'
pubsub_topic_help: 'Vollständiger Topic-Name, in den Gmail Änderungen veröffentlicht. Ohne ihn bleiben Konten beim Abrufen statt Push. Leer lassen, um auf GMAIL_PUBSUB_TOPIC zurückzufallen.'
redirect_uri: 'Redirect-URI'
tenant: 'Tenant'
tenant_help: 'common für private und Geschäftskonten, organizations nur für Geschäftskonten, oder eine Tenant-ID zur Beschränkung auf die eigene Organisation. Muss zu den unterstützten Kontotypen der App-Registrierung passen.'
redirect_uri_help: 'Genau so in die Konsole des Anbieters eintragen. Eine spätere Änderung bricht alle bestehenden Verbindungen.'
inherit: 'Zugangsdaten von %name% übernehmen'
inherit_help: 'Kopiert Client-ID und Secret serverseitig — das Secret wird nie angezeigt. Die zusätzlich benötigte Berechtigung wird damit nicht erteilt; diese ist beim Anbieter wie in der Einrichtung beschrieben hinzuzufügen.'
inherited: 'Zugangsdaten kopiert'
mail:
calendar_heading: 'Die Kalender-Synchronisation nutzt dieselbe App'
calendar_google: >-
Hier ist nichts einzurichten. Aktiviere die Google Calendar API
für dieses Projekt und ergänze den Scope .../auth/calendar im
Zustimmungsbildschirm — die Kalender kommen dann mit derselben
Anmeldung wie die E-Mails. Ohne das funktioniert E-Mail weiter,
die Kalender erscheinen einfach nicht.
calendar_microsoft: >-
Hier ist nichts einzurichten. Ergänze die delegierte Berechtigung
Calendars.ReadWrite in dieser App-Registrierung — die Kalender
kommen dann mit derselben Anmeldung wie die E-Mails. Ohne das
funktioniert E-Mail weiter, die Kalender erscheinen einfach nicht.
env_note: 'Bleiben diese Felder leer, greifen GOOGLE_OAUTH_* / MICROSOFT_OAUTH_* aus der Umgebung — eine so konfigurierte Installation läuft unverändert weiter.'
from_env: 'Aus der Umgebung'
google: 'Gmail-Anmeldung'
heading: 'Mail-Anmeldung'
intro: 'Die OAuth-App, über die sich Personen beim Hinzufügen eines Mailkontos anmelden. Google- und Microsoft-Dateidienste können dieselben Zugangsdaten nutzen.'
microsoft: 'Microsoft-Mail-Anmeldung'
saved: 'Mail-Anmeldung gespeichert'
intro: 'Dienste, aus denen Dateien angehängt und in die Anhänge gespeichert werden können. Alle Dienste stehen hier, auch die, die plMail noch nicht ansprechen kann.'
not_set: 'Nicht gesetzt'
saved: 'Integrationseinstellungen gespeichert'
secret_none: 'Kein Secret gespeichert'
secret_stored: 'Gespeichert'
secret_unchanged: 'Leer lassen, um das gespeicherte Secret zu behalten'
status:
disabled: 'Deaktiviert'
enabled: 'Aktiviert'
incomplete: 'Zugangsdaten fehlen'
unimplemented: 'Noch nicht verfügbar'
tutorial:
caldav:
intro: 'CalDAV meldet sich mit einem App-Passwort pro Person am eigenen Server an — hier ist nichts zu registrieren.'
not_for_cloud_mail: 'Kalender von Gmail und Outlook kommen nicht so herein. Sie hängen an der E-Mail-Anmeldung oben und brauchen dort nur das Kalenderrecht in der App-Registrierung.'
security: 'Nutzerinnen und Nutzer sollten ein App-Passwort anlegen statt ihr Anmeldepasswort zu verwenden: App-Passwörter lassen sich einzeln widerrufen und funktionieren mit Zwei-Faktor-Anmeldung. iCloud und Fastmail akzeptieren nichts anderes.'
step_app_password: 'Jede Person legt auf ihrem Server ein App-Passwort an — Nextcloud unter Einstellungen → Sicherheit, iCloud auf appleid.apple.com, Fastmail unter Settings → Password & Security — und trägt es in den eigenen Kalendereinstellungen ein.'
step_base_url: 'Optional die Serveradresse festlegen, etwa https://cloud.example.com, wenn hier alle denselben Server nutzen.'
step_enable: 'Oben „Diesen Dienst anbieten“ einschalten.'
step_url: 'Einzutragen ist die CalDAV-Adresse, nicht die der Weboberfläche: Nextcloud zeigt sie unter Kalender → Einstellungen → „Primäre CalDAV-Adresse kopieren“, sie endet meist auf /remote.php/dav. Eine bloße Domain reicht auch — plMail fragt dort nach, wo die Kalender liegen.'
dropbox:
intro: 'Dropbox benötigt eine App in der Dropbox-Entwicklerkonsole.'
refresh_note: 'Den App-Typ „scoped access“ wählen und Offline-Zugriff anfordern, sonst brechen Verbindungen nach wenigen Stunden ab.'
step_app: 'Unter dropbox.com/developers/apps eine App mit scoped access auf die gesamte Dropbox anlegen.'
step_paste: 'App-Key und App-Secret oben eintragen.'
step_permissions: 'Unter Permissions files.metadata.read, files.content.read und files.content.write aktivieren.'
step_redirect: 'Unter Settings die oben gezeigte Redirect-URI zu den OAuth-2-Redirect-URIs hinzufügen.'
google:
separate_from_gmail: 'Diese Zugangsdaten sind unabhängig von den Gmail-Daten in der Umgebungsdatei. Dasselbe Cloud-Projekt kann verwendet werden, der Zustimmungsbildschirm muss aber die zusätzlichen Scopes aufführen.'
step_consent: 'Den OAuth-Zustimmungsbildschirm einrichten und die unten genannten Scopes hinzufügen.'
step_credentials: 'Eine OAuth-2.0-Client-ID vom Typ Webanwendung anlegen.'
step_paste: 'Client-ID und Client-Secret oben eintragen.'
step_project: 'console.cloud.google.com öffnen und ein Projekt auswählen oder anlegen.'
step_redirect: 'Die oben gezeigte Redirect-URI zu den autorisierten Redirect-URIs hinzufügen.'
google_drive:
intro: 'Google Drive nutzt OAuth, plMail muss also vor der ersten Verbindung bei Google registriert werden.'
scopes: 'Benötigter Scope: der vollständige drive-Scope. drive.file wäre enger, sieht aber nur von plMail selbst erstellte Dateien — ein Browser würde ein leeres Drive zeigen, und Freigabelinks brauchen Schreibzugriff auf die Datei. Es ist ein eingeschränkter Scope: Google verlangt eine App-Überprüfung, bevor Personen außerhalb der Testliste zustimmen können.'
step_api: 'Die Google-Drive-API für das Projekt aktivieren.'
google_photos:
intro: 'Google Photos nutzt OAuth und eine eigene API, getrennt von Drive.'
scope_warning: 'Google hat die Photos-Lesescopes im März 2025 eingeschränkt. Eine neu registrierte App erhält meist nur appcreateddata und sieht damit ausschließlich von plMail hochgeladene Medien — zum Durchsuchen einer bestehenden Bibliothek braucht es photoslibrary.readonly, das Google im Einzelfall gewährt. Das Speichern von Anhängen funktioniert unabhängig davon.'
step_api: 'Die Photos-Library-API für das Projekt aktivieren.'
immich:
intro: 'Immich authentifiziert sich über einen API-Schlüssel pro Person, hier ist also nichts zu registrieren.'
no_share_links: 'Immich kann keinen öffentlichen Link für ein einzelnes Foto erzeugen — geteilt werden nur Alben. Fotos über der Anhangsgrenze lassen sich daher gar nicht anhängen.'
step_base_url: 'Optional die Serveradresse festlegen, etwa https://photos.example.com.'
step_enable: 'Oben „Diesen Dienst anbieten“ einschalten.'
step_key: 'Jede Person erzeugt in Immich unter Account Settings → API Keys einen Schlüssel und trägt ihn in ihre eigenen Integrationseinstellungen ein.'
nextcloud:
intro: 'Nextcloud authentifiziert sich über ein App-Passwort pro Person, hier ist also nichts zu registrieren.'
security: 'Es sollte ein App-Passwort verwendet werden, nicht das Anmeldepasswort: App-Passwörter lassen sich einzeln widerrufen und funktionieren mit Zwei-Faktor-Authentifizierung.'
step_base_url: 'Optional die Serveradresse festlegen, etwa https://cloud.example.com.'
step_enable: 'Oben „Diesen Dienst anbieten“ einschalten.'
step_user: 'Jede Person erzeugt in Nextcloud unter Einstellungen → Sicherheit → Geräte & Sitzungen ein App-Passwort und trägt es in ihre eigenen Integrationseinstellungen ein.'
one_drive:
intro: 'OneDrive nutzt Microsoft Graph, dieselbe API wie Microsoft-Mailkonten, benötigt aber Files-Berechtigungen, die die Mail-Registrierung nicht abdeckt.'
step_paste: 'Anwendungs-ID (Client) und Secret-Wert oben eintragen.'
step_permissions: 'Unter API-Berechtigungen die delegierten Microsoft-Graph-Berechtigungen Files.ReadWrite und offline_access hinzufügen.'
step_redirect: 'Unter Authentifizierung die oben gezeigte Redirect-URI als Web-Plattform-Redirect hinzufügen.'
step_register: 'Im Azure-Portal unter Microsoft Entra ID → App-Registrierungen eine Anwendung registrieren.'
step_secret: 'Unter Zertifikate & Geheimnisse ein Client-Secret erstellen und den Wert sofort kopieren — er wird nur einmal angezeigt.'
tenant_note: 'Für private Microsoft-Konten den Tenant „common“ verwenden, oder die eigene Tenant-ID, um den Zugriff auf die Organisation zu beschränken.'
tutorial_heading: 'Einrichtung'
unimplemented_notice: 'plMail kann diesen Dienst noch nicht ansprechen. Die Zugangsdaten können jetzt hinterlegt werden — sie greifen, sobald die Unterstützung erscheint.'
loading: 'Wird geladen…'
maintenance:
heading: Wartung
heartbeats_help: 'Entfernt Einträge von Prozessen, die ohne sauberes Herunterfahren beendet wurden.'
heartbeats_prune: 'Alte Heartbeats entfernen'
heartbeats_title: 'Veraltete Heartbeats'
restart: 'Worker neu starten'
restart_app: 'Jetzt neu starten'
restart_app_help: >-
Beendet den Prozess, der diese Seite ausliefert, damit compose ihn neu
erstellt. Nötig, nachdem die generierten Geheimnisse erneuert wurden: das
Entrypoint-Skript exportiert sie als Umgebungsvariablen und der Kernel
startet im Worker-Modus nur ein einziges Mal, ein laufender Web-Container
übernimmt neue Werte also nie. Etwa zwei Sekunden Ausfall, danach kommt
diese Seite von selbst zurück.
restart_app_title: 'Web-Container neu starten'
restart_confirm: 'Worker, Scheduler und IMAP-Supervisor neu starten? Laufende Arbeit wird zuerst abgeschlossen.'
restart_help: 'Beendet Worker, Scheduler und IMAP-Supervisor, damit ihre Container neu erstellt werden. Langlaufende Prozesse halten das Datenbank-Mapping über ihre gesamte Laufzeit im Speicher und brauchen das deshalb nach einer Migration.'
restart_pending: 'Neustart vor %seconds%s angefordert — die Prozesse beenden ihre laufende Arbeit und erscheinen ein bis zwei Minuten später wieder hier.'
restart_title: 'Langlaufende Prozesse neu starten'
run_help: 'Wird für einen Worker eingereiht, nicht hier ausgeführt. Es sind dieselben Läufe, die der Scheduler automatisch startet.'
run_title: 'Wartungsaufgabe jetzt ausführen'
task:
mail_sync: 'Mail synchronisieren'
monitoring_prune: 'Monitoring-Daten aufräumen'
prune_blobs: 'Blobs aufräumen'
push_renew: 'Push-Abos erneuern'
logs:
all_channels: 'Alle Kanäle'
clear: 'Leeren'
clear_confirm: 'Die %count% Einträge dieses Filters löschen?'
copied: 'Kopiert'
copy: 'Eintrag kopieren'
copy_failed: 'Kopieren vom Browser blockiert'
empty: 'Auf dieser Stufe wurde nichts protokolliert.'
entries: 'Einträge'
heading: 'Protokolle'
newer: 'Neuer'
older: 'Älter'
page: 'Seite'
refresh: 'Aktualisieren'
nav:
backup: Sicherung
database: Datenbank
integrations: Integrationen
logs: Protokolle
push: Push
reset: Zurücksetzen
system: System
users: Benutzer
processes:
empty: 'Noch keine Heartbeats — Prozesse melden sich hier nach ihrem ersten Lebenszeichen.'
heading: 'Prozesse'
key: 'Instanz'
last_beat: 'Letztes Lebenszeichen'
pid: 'PID'
type: 'Typ'
push:
calendar_domain_verification: >-
Google öffnet einen Watch-Kanal nur, wenn die Callback-Domain in dem
Cloud-Projekt verifiziert ist, dem der OAuth-Client gehört: erst in
der Search Console verifizieren, dann in der Cloud Console unter
„Domain verification" eintragen. Bei Microsoft entfällt dieser
Schritt.
calendar_routes: >-
Kalender-Push wird getrennt zugestellt, an %google% und %graph%, und
braucht kein Pub/Sub-Topic.
calendar_without_public_address: >-
Ohne öffentlich erreichbare HTTPS-Adresse bleiben verbundene
Kalender einfach beim Viertelstunden-Abruf.
deliveries:
all_outcomes: 'Beliebiges Ergebnis'
all_transports: 'Beide Transportwege'
all_users: 'Alle Benutzer'
attempts: 'Versuche'
empty_ever: >-
Es wurde noch nichts zugestellt. Entweder hat kein Gerät den
Bestätigungs-Handshake abgeschlossen, oder es ist kein
Transportweg konfiguriert — welches davon, steht oben.
empty_filter: 'Keine Zustellung passt zu diesem Filter.'
heading: 'Letzte Zustellungen'
newer: 'Neuer'
older: 'Älter'
outcome:
accepted: 'Angenommen'
failed: 'Fehlgeschlagen'
skipped: 'Übersprungen'
subscription-destroyed: 'Gerät entfernt'
page: 'Seite'
refresh: 'Aktualisieren'
transport:
fcm: 'Firebase'
webpush: 'Web Push'
fcm:
android_package: 'Android-Paket'
api_key: 'API-Schlüssel'
application_id: 'Application ID'
clear_key: 'Hinterlegten Schlüssel verwerfen'
clear_key_help: 'Entfernt den Dienstkonto-Schlüssel und schaltet FCM ab. Bereits registrierte Geräte erhalten keine Benachrichtigungen mehr, bis ein neuer Schlüssel gespeichert ist.'
client_email: 'Dienstkonto'
enable_without_client: 'Es ist keine google-services.json hinterlegt — die Android-App hätte nichts, womit sie Firebase initialisieren könnte. Füge unten eine ein oder lass FCM abgeschaltet.'
enable_without_key: 'Es ist kein Dienstkonto-Schlüssel hinterlegt — füge unten einen ein oder lass FCM abgeschaltet.'
field:
enabled: 'Benachrichtigungen über FCM zustellen'
enabled_help: 'Clients sehen das als „fcm“ in der Session-Capability und bieten Firebase nur an, wenn es eingeschaltet ist.'
google_services: 'google-services.json'
google_services_help: 'Firebase-Konsole → Projekteinstellungen → Deine Apps → die Android-App → google-services.json. Die App ist ein Build für alle Installationen und initialisiert Firebase zur Laufzeit aus diesen Werten — sie sind öffentlich und werden in der JMAP-Session veröffentlicht.'
service_account: 'Firebase-Dienstkonto-Schlüssel (JSON)'
service_account_help: 'Firebase-Konsole → Projekteinstellungen → Dienstkonten → Neuen privaten Schlüssel erzeugen. Füge die ganze Datei ein. Sie wird verschlüsselt gespeichert und nie wieder angezeigt. Sie muss zum selben Projekt gehören wie die google-services.json darunter.'
heading: 'Firebase Cloud Messaging'
intro: 'FCM ist der Weg, auf dem eine native Android-App im Hintergrund Benachrichtigungen empfängt. Es ist optional — ein Gerät mit einem UnifiedPush-Distributor braucht nichts davon, die Browser-App ebenso wenig.'
paste_none: 'Ganze JSON-Datei hier einfügen'
paste_unchanged: 'Eine ist hinterlegt — leer lassen, um sie zu behalten'
project: 'Firebase-Projekt'
save: 'Speichern'
saved: 'Firebase-Einstellungen gespeichert.'
sender_id: 'Sender-ID'
status:
incomplete: 'Halb eingerichtet'
key_only: 'Eingerichtet, abgeschaltet'
live: 'Aktiv'
unconfigured: 'Nicht eingerichtet'
webpush_note: 'Web Push braucht hier nichts. Seine VAPID-Schlüssel sind Umgebungsvariablen, einmalig erzeugt von app:push:generate-vapid-keys, und bedienen Browser, die installierte PWA und UnifiedPush-Distributoren gleichermaßen.'
queues:
due_in: 'fällig in %duration%'
empty: 'Keine wartenden Nachrichten.'
filter_placeholder: 'Ganze Warteschlange filtern — Handler, Nutzdaten, Name'
heading: 'Messenger-Warteschlangen'
in_flight: 'Läuft gerade'
loading: 'Wird geladen…'
showing: '%shown% von %total%'
next_up: 'Wartend'
none_running: 'Kein Worker bearbeitet gerade eine Nachricht.'
oldest: 'Am längsten wartend'
pending: 'Ausstehend'
queue: 'Warteschlange'
queued_for: 'seit %duration% in der Warteschlange'
retries: 'Versuch %count%'
running: 'Läuft'
running_for: 'seit %duration%'
waiting_since: 'Wartet seit'
refresh_hint: 'Live-Bereiche aktualisieren sich alle 10 s'
summary:
accounts: '%count% Konten'
active: '%count% aktiv'
armed: '%active%/%total% scharf'
down: '%count% ausgefallen'
failed: '%count% fehlgeschlagen'
failing: '%count% fehlerhaft'
healthy: '%count% in Ordnung'
idle: 'im Leerlauf'
none: 'keine'
ok: '%count% in Ordnung'
queries: '%count% Abfragen'
queue: '%running% laufend · %waiting% wartend'
tables: '%count% Tabellen'
reset:
button: 'Zurücksetzen'
confirm_label: 'Zum Bestätigen %name% eingeben'
confirm_mismatch: 'Das ist nicht %name%, es wurde nichts gelöscht. Bitte den Instanznamen genau so eingeben, wie er angezeigt wird.'
done:
continue: 'Ersten Administrator anlegen'
footnote: 'plMail ist wieder in dem Zustand, in dem eine frische Installation startet.'
heading: 'plMail wurde zurückgesetzt'
lead: 'Alle %count% Tabellen wurden geleert, dazu die gespeicherten Anhänge, Rohnachrichten und Uploads. Es gibt keine Benutzer mehr, diese Sitzung wurde daher abgemeldet.'
page_title: 'Zurücksetzen abgeschlossen'
restart_failed: 'Der Web-Container konnte von hier aus NICHT neu gestartet werden — führe den Befehl oben selbst aus, bevor du plMail wieder benutzt.'
restart_sent: 'Der Web-Container wurde zum Neustart aufgefordert und kommt von selbst zurück. Der Rest des Stacks braucht weiterhin den Befehl oben.'
secrets_heading: 'Die generierten Geheimnisse wurden verworfen'
tagline: 'Hier ist niemand mehr, der sich anmelden könnte'
workers_failed: 'Auch die Worker konnten nicht benachrichtigt werden; sie verwenden den alten Verschlüsselungsschlüssel weiter, bis sie neu gestartet werden.'
heading: 'Daten zurücksetzen'
intro: 'Löscht synchronisierte Daten endgültig aus der Datenbank. Jede Stufe löscht alles, was die Stufe darüber löscht, und mehr.'
monitoring_kept: 'Monitoring-Daten bleiben erhalten. Die gesammelten Protokolle leerst du unter Protokolle, veraltete Heartbeats unter Wartung.'
postgres_password: >-
POSTGRES_PASSWORD wird nicht erneuert. Postgres wurde damit initialisiert und
hält es in seinem eigenen Datenverzeichnis; ein neues Passwort würde plMail
also die Anmeldung an genau der Datenbank verwehren, die es gerade
zurückgesetzt hat. Dafür muss das Datenbank-Volume gelöscht werden — docker
compose down -v — und das kann diese Funktion nicht.
restart_required: 'Danach sofort den gesamten Stack neu starten, bevor du plMail wieder benutzt:'
self_restart: 'Der Web-Container fordert sich selbst zum Beenden auf, sobald diese Seite ausgeliefert ist; compose startet ihn direkt neu. Die Worker werden ebenfalls benachrichtigt, der Befehl oben deckt den Rest des Stacks ab.'
self_restart_unavailable: 'Dieser Prozess kann sich hier nicht selbst neu starten, der Befehl oben ist also der einzige Weg. Von allein passiert nichts.'
stage:
accounts:
confirm: 'Auch die Konten löschen? Jedes Postfach-Passwort und jede OAuth-Verbindung muss danach neu eingetragen werden.'
deletes: 'Das Obige, dazu die Konten selbst samt Alias-Adressen. Jedes Postfach-Passwort und jede OAuth-Verbindung muss neu eingerichtet werden. Deine eigene Anmeldung bleibt unberührt.'
title: 'Mail, Struktur, Kontakte und Konten'
contacts:
confirm: 'Alle synchronisierten Nachrichten, Ordner, Labels und gesammelten Kontakte löschen?'
deletes: 'Das Obige, dazu die gesammelten Kontakte. Sie werden aus eintreffender Mail neu gesammelt, die Adress-Vervollständigung startet also leer.'
title: 'Mail, Struktur und Kontakte'
full:
button: 'Diese Installation löschen'
deletes: >-
Alles, nicht nur synchronisierte Mail: jeden Benutzer (dich
eingeschlossen), jedes Konto samt gespeichertem Passwort und die
Dateien auf der Platte. Die Installation fragt danach wieder nach ihrem
ersten Administrator. Du wirst abgemeldet und kannst dich nicht wieder
anmelden.
title: 'Vollständig zurücksetzen'
full_secrets:
button: 'Installation löschen und Geheimnisse erneuern'
deletes: >-
Alles vom Obigen, dazu die generierten Geheimnisse. Jeder Dienst hält
den alten APP_ENCRYPTION_KEY weiter im Speicher und benutzt ihn bis zum
Neustart. Alles, was du vor dem Neustart des Stacks speicherst, ist für
die Hälfte davon unlesbar.
title: 'Vollständig zurücksetzen und Geheimnisse erneuern'
structure:
confirm: 'Alle synchronisierten Nachrichten, Threads, Ordner und Labels löschen? Die nächste Synchronisierung baut sie neu auf.'
deletes: 'Das Obige, dazu die Postfachstruktur — Ordner und Labels. Die nächste Synchronisierung baut beides neu auf.'
title: 'Mail und Postfachstruktur'
synced_mail:
confirm: 'Alle synchronisierten Nachrichten und Threads löschen? Konten und Ordner bleiben, die nächste Synchronisierung holt die Mail erneut.'
deletes: 'Nachrichten, Threads, Nachrichtenteile und alles in der Warteschlange. Konten, Ordner und Labels bleiben; die Sync-Marker werden zurückgesetzt, damit die nächste Synchronisierung alles erneut holt.'
title: 'Synchronisierte Mail'
unrecoverable:
heading: 'Nicht rückgängig zu machen'
lead: 'Beides lässt sich nicht durch erneutes Synchronisieren wiederherstellen: es löscht die Benutzer, die gespeicherten Postfach-Passwörter und die Dateien auf der Platte. Gib zur Bestätigung den Instanznamen ein — ein Klick allein genügt hier nicht.'
restarting:
back: 'Zurück zur Administration'
heading: 'plMail startet neu'
lead: 'Der Web-Container wurde zum Beenden aufgefordert, compose startet ihn direkt neu. Diese Seite lädt sich in wenigen Sekunden selbst neu.'
page_title: 'Neustart'
unavailable_heading: 'Es wurde nichts neu gestartet'
unavailable_lead: 'Dieser Prozess ist nicht der Hauptprozess des Containers und kann ihn daher nicht beenden. Führe stattdessen das hier aus:'
tables:
heading: 'Tabellengrößen'
title: 'Administration'
tokens:
empty: 'Noch keine Token-Erneuerungen erfasst.'
heading: 'Zustand der OAuth-Token'
webhooks:
armed: 'Scharf'
delivery:
endpoint: 'Push-Endpunkt'
endpoint_hint: >-
Das Cloud-Pub/Sub-Push-Abonnement muss exakt an diese URL
senden, inklusive Token. Eine Abweichung wird mit 403
beantwortet und erscheint unten.
heading: 'Zustellweg'
info_logs_off: >-
Erfolgreiche Zustellungen werden auf Info-Level protokolliert
und nicht gespeichert. Setze APP_DB_LOG_LEVEL=info, um sie hier
zu sehen.
no_public_url: >-
APP_PUBLIC_URL ist keine https://-Adresse, daher kann Pub/Sub
diesen Server nicht erreichen.
no_token: >-
GMAIL_PUBSUB_VERIFICATION_TOKEN ist nicht gesetzt. Der Endpunkt
lehnt im Zweifel ab, daher wird jede Benachrichtigung mit 403
zurückgewiesen.
topic: 'Pub/Sub-Thema'
empty: 'Keine Gmail-Konten mit Watch-Status.'
health: 'Zustand'
health_state:
active: 'stellt zu'
degraded: 'registriert, stellt nicht zu'
inactive: 'aus'
heading: 'Gmail-Webhooks'
history_id: 'History-ID'
last_push: 'Letzter Push'
never: 'nie'
none: 'nicht registriert'
resource: 'Ressource'
state:
account_active: 'Konto aktiv'
account_inactive: 'Konto deaktiviert'
push_off: 'Push aus'
push_on: 'Push an'
watch_expiry: 'Watch läuft ab'
users:
add: Benutzer hinzufügen
console_note: 'Passwörter und die Wiederherstellung der Zwei-Faktor-Authentifizierung laufen über die Server-Konsole, nicht hier. Wer beides ändern könnte, hätte einen zweiten Weg in jedes Postfach dieser Installation.'
delete: Benutzer entfernen
delete_confirm: '%name% entfernen? Die Mails bleiben in der Datenbank, eine Anmeldung ist aber nicht mehr möglich.'
edit: Benutzer bearbeiten
field:
email: E-Mail-Adresse
is_admin: Administrator
is_admin_help: 'Erreicht diesen Bereich, verwaltet Benutzer und konfiguriert Anbieter. Kann keine fremden Mails lesen.'
name_first: Vorname
name_last: Nachname
password: Erstes Passwort
password_help: 'Wird einmalig beim Anlegen gesetzt. Später ändert es das Konto selbst, oder es wird über die Server-Konsole zurückgesetzt.'
heading: Benutzer
last_login: 'Zuletzt gesehen %when%'
never_signed_in: Noch nie angemeldet
no_password_edit: 'Passwörter lassen sich hier nicht ändern. Ein fremdes Passwort zu setzen würde eine Admin-Sitzung zum Weg in dieses Postfach machen — aus demselben Grund ist das Entfernen eines zweiten Faktors ein Konsolenbefehl.'
none: Noch keine Benutzer.
password_too_short: 'Mindestens 12 Zeichen — dieses Passwort wird für jemand anderen gewählt.'
role:
admin: Admin
search: Benutzer suchen…
two_factor_on: Zwei-Faktor-Authentifizierung ist aktiv
two_factor_short: 2FA
version:
hint: Der Build, den diese Installation ausführt — die Version und der Commit, aus dem sie gebaut wurde.
alias:
added: 'Adresse hinzugefügt.'
deleted: 'Adresse entfernt.'
duplicate: 'Diese Adresse ist bereits in diesem Konto vorhanden.'
invalid: 'Das sieht nicht nach einer gültigen E-Mail-Adresse aus.'
primary_set: 'Hauptadresse aktualisiert.'
refreshed: 'Vom Anbieter aktualisiert.'
status_blocked: 'Die Hauptadresse kann nicht deaktiviert werden — lege zuerst eine andere als Hauptadresse fest.'
status_set: 'Adresse aktualisiert.'
app:
name: Mail
calendar:
default_name: Persönlich
alert:
mail:
subject: 'Erinnerung: %title%'
untitled: Termin ohne Titel
booking:
action:
delete: 'Buchungsseite "%name%" löschen'
disable: 'Buchungsseite "%name%" abschalten'
edit: 'Buchungsseite "%name%" bearbeiten'
enable: 'Buchungsseite "%name%" einschalten'
regenerate: 'Buchungsseite "%name%" eine neue Adresse geben'
badge: Über deine Buchungsseite gebucht
booked:
body: 'Dein Termin "%name%" steht im Kalender.'
mail: Eine Bestätigung mit Kalenderdatei ist zu dir unterwegs.
title: Termin gebucht
confirm: Buchung bestätigen
count: '{0}Keine Buchungsseiten|{1}1 Buchungsseite|]1,Inf[ %count% Buchungsseiten'
day_none: Nichts frei
delete_confirm: '"%name%" löschen? Die bereits gebuchten Termine gehen mit.'
disabled: Aus
duration: '{1} 1 Minute|]1,Inf[ %count% Minuten'
empty_list: Noch keine Buchungsseiten.
error:
no_calendar: >-
Wähle einen Kalender, der Änderungen annimmt, damit Buchungen
dort landen können.
taken: Diese Zeit wurde gerade vergeben. Bitte wähle eine andere.
too_many: >-
Das sind viele Buchungen von einem Ort. Bitte warte etwas, bevor
du es erneut versuchst.
form:
add: Neue Buchungsseite
buffer_help: Ruhezeit, die vor und nach bestehenden Terminen frei bleibt.
buffer_minutes: Puffer (Minuten)
busy: Diese Kalender auf Überschneidungen prüfen
busy_help: >-
Eine Zeit wird nur angeboten, wenn nichts in diesen Kalendern sie
überschneidet. Der Kalender, in dem Buchungen landen, wird immer
geprüft — auch ohne Häkchen.
calendar: Buchungen landen in
calendar_help: >-
Wohin der Termin geschrieben wird. Synchronisiert dieser Kalender
irgendwohin, geht die Buchung mit.
day_end: Bis
day_start: Von
description: Worum es geht
edit: Buchungsseite bearbeiten
horizon_days: Buchbar bis (Tage im Voraus)
name: Wie der Termin heißt
name_help: >-
Wird auf der Seite gezeigt und als Titel in deinem Kalender
verwendet.
notice_minutes: Kürzeste Vorlaufzeit (Minuten)
slot_minutes: Termindauer (Minuten)
time_zone: Deine Zeiten gelten in
time_zone_help: >-
Die Zeiten oben sind Uhrzeiten in dieser Zone — 09:00 bleibt neun
Uhr morgens, auch wenn die Uhren umgestellt werden.
weekdays: Tage, an denen du buchbar bist
lands_on: 'landet in %calendar%'
no_slots: Zurzeit sind keine Zeiten frei. Versuche es später noch einmal.
no_slots_this_week: Diese Woche ist nichts frei. Schau eine Woche vor oder zurück.
note: Noch etwas? (optional)
pick_a_time: Zeit wählen
toast:
created: >-
Buchungsseite erstellt. Kopiere die Adresse jetzt — sie wird nicht
noch einmal gezeigt.
deleted: Buchungsseite gelöscht.
disabled: Buchungsseite abgeschaltet.
enabled: Buchungsseite eingeschaltet.
regenerated: Neue Adresse. Die alte funktioniert nicht mehr.
updated: Buchungsseite aktualisiert.
weekday:
1: Mo
2: Di
3: Mi
4: Do
5: Fr
6: Sa
7: So
your_email: Deine E-Mail-Adresse
your_email_help: Bestätigung und Kalenderdatei gehen hierhin.
your_name: Dein Name
zone: 'Zeiten in %zone%'
chip:
on_calendars: 'In %calendars%'
delete_confirm: '"%name%" mit allen Terminen löschen? Das lässt sich nicht rückgängig machen.'
empty: Nichts in nächster Zeit
error:
instance_create: >-
Ein einzelner Termin lässt sich nicht allein in einen Kalender
legen. Wähle „Alle Termine“, um diesen Termin in einen weiteren
Kalender zu legen.
invalid_times: 'Diese Zeiten gehen nicht — das Ende muss nach dem Beginn liegen.'
no_copies: 'Nichts ausgewählt, also nichts geändert. Wähle mindestens einen Kalender.'
read_only: >-
Dieser Termin steht nur in Kalendern, die keine Änderungen annehmen —
er bleibt, wo er war.
event:
alert:
action:
display: Benachrichtigung
email: E-Mail
amount:
days: '{1} 1 Tag|]1,Inf[ %count% Tagen'
hours: '{1} 1 Stunde|]1,Inf[ %count% Stunden'
minutes: '{1} 1 Minute|]1,Inf[ %count% Minuten'
at_absolute: 'Am %when%'
at_time: Zum Beginn des Termins
custom: Etwas anderes, in Minuten
custom_action: Wie die zusätzliche Erinnerung ankommt
day_1: 1 Tag vorher
hour_1: 1 Stunde vorher
legend: Erinnerungen
minutes_10: 10 Minuten vorher
minutes_30: 30 Minuten vorher
minutes_5: 5 Minuten vorher
relation:
after_end: '%amount% nach dem Ende'
after_start: '%amount% nach dem Beginn'
before_end: '%amount% vor dem Ende'
before_start: '%amount% vor dem Beginn'
series_note: >-
Erinnerungen gehören zum ganzen Termin, die Auswahl darunter
gilt also nicht für sie.
unreadable: Erinnerung anderswo gesetzt
all_day: Ganztägig
cancel: Abbrechen
copies:
help: >-
Angehakte Kalender bekommen diesen Termin und jede Änderung, die
du speicherst. Einen Haken zu entfernen löscht nichts: Dieser
Kalender behält die Fassung, die er jetzt hat, und bekommt keine
Aktualisierungen mehr — sobald beide sich unterscheiden,
erscheint er als eigener Eintrag.
legend: Kalender
read_only: Dieser Kalender nimmt keine Änderungen an
delete: Löschen
description: Beschreibung
dismiss: Kein Termin
dismiss_confirm: >-
Diesen Termin entfernen und nicht wieder anlegen? Spätere E-Mails zur
selben Buchung tragen ihn nicht erneut in den Kalender ein.
ends: Ende
error:
end_before_start: Das Ende muss nach dem Beginn liegen.
summary: Dieser Termin konnte nicht gespeichert werden.
title_required: Gib dem Termin einen Titel.
extracted_note: >-
Dieser Termin stammt aus einer E-Mail. Wenn du ihn bearbeitest,
überschreiben spätere Nachrichten zur selben Buchung deine
Änderungen nicht mehr.
location: Ort
new: Neuer Termin
new_on: Neuer Termin am %date%
repeat: Wiederholung
save: Speichern
scope:
instance: Diesen Termin
instance_note: >-
„Diesen Termin“ ändert nur den geöffneten Einzeltermin und kann
ihn deshalb nicht in einen Kalender legen, in dem er noch nicht
steht.
legend: Ändern
series: Alle Termine
starts: Beginn
title: Titel
form:
add: Neuer Kalender
color: Farbe
edit: Kalender bearbeiten
name: Name
time_zone: Zeitzone
time_zone_help: >-
Die Zone, in der dieser Kalender gelesen wird — und in der ein
Termin ohne eigene Zone angezeigt wird.
grid:
all_day: Ganztägig
continues_after: Geht in den nächsten Tag hinein
continues_before: Hat am Vortag begonnen
keyboard_hint: >-
Mit Alt und den Pfeiltasten verschiebst du diesen Termin, mit Alt und
Umschalt änderst du seine Dauer. Enter speichert, Escape nimmt es
zurück.
pending: >-
Verschoben auf %start% – %end%. Enter speichert, Escape nimmt es
zurück.
read_only: Dieser Kalender nimmt keine Änderungen an — der Termin lässt sich nicht verschieben.
reverted: Bleibt, wo er war.
ics:
error:
no_calendar: Wähle einen Kalender für die Termine.
no_file: >-
Wähle eine .ics-Datei. Falls du eine gewählt hast, ist
sie womöglich größer, als plMail einliest.
no_url: Gib die Adresse ein, unter der der Kalender
veröffentlicht ist.
export:
calendar: '"%name%" als Kalenderdatei herunterladen'
calendar_title: Als .ics herunterladen
event: .ics herunterladen
import:
calendar: Hinzufügen zu
dedup_note: >-
Ein Termin, der schon in diesem Kalender steht, wird
aktualisiert statt doppelt angelegt; einer, der bereits in einem
anderen deiner Kalender steht — aus einer Einladung oder aus
einem gespiegelten Kalender — bleibt, wo er ist.
file: Kalenderdatei
file_help: Eine .ics-Datei, bis zu %size% MB.
intro: >-
Liest eine .ics-Datei — einen Export aus einem anderen Kalender
oder eine zugesandte Einladung — in einen deiner Kalender ein.
no_calendars: >-
Keiner deiner Kalender nimmt neue Termine an. Ein gespiegelter
Kalender ist eine schreibgeschützte Kopie; leg zuerst
einen eigenen an.
submit: Importieren
title: Kalenderdatei importieren
subscribe:
address: Kalenderadresse
address_help: >-
Die Adresse, unter der ein Kalender veröffentlicht ist, endend
auf .ics. Ein webcal://-Link geht ebenso — das ist dieselbe
Adresse unter anderem Namen.
connect: Adresse abonnieren
intro: >-
Folge einem veröffentlichten Kalender: Feiertage, ein
Spielplan oder die geheime Adresse deines eigenen Google- oder
Outlook-Kalenders. plMail liest ihn im Hintergrund neu ein und
zeigt ihn neben deinen eigenen Kalendern.
name: Name
name_help: >-
Wie er hier heißen soll. Leer gelassen, benennt sich der
Kalender selbst.
read_only_note: >-
Ein abonnierter Kalender ist schreibgeschützt — er ist die Kopie
einer veröffentlichten Datei, Änderungen hier erreichten sie
also nie. Wer diese Adresse hat, kann den Kalender lesen;
behandle eine geheime Adresse wie ein Passwort.
submit: Abonnieren
title: Kalenderadresse abonnieren
toast:
import_empty: >-
Diese Datei enthält keine Termine, die plMail lesen kann. Prüf
nach, ob es wirklich ein Kalenderexport ist.
import_nothing_new: >-
Nichts hinzuzufügen — jeder Termin aus dieser Datei steht schon
in deinen Kalendern.
imported: '%added% hinzugefügt, %updated% aktualisiert, %skipped% übersprungen.'
subscribed: >-
Abonniert — der Kalender füllt sich binnen einer Minute.
invite:
action:
accepted: Zusagen
declined: Absagen
needs_action: Keine Antwort
tentative: Vielleicht
attendees: '%count% eingeladen'
cancelled: Dieser Termin wurde abgesagt.
organiser: Eingeladen von %name%
organiser_tag: Organisation
reply:
body: '%name% hat auf diese Einladung mit %status% geantwortet.'
status:
accepted: Zugesagt
declined: Abgesagt
needs_action: Keine Antwort
tentative: Vielleicht
toast:
not_sent: >-
Deine Antwort wurde hier gespeichert, konnte aber nicht an die
Organisation gesendet werden.
sent: Deine Antwort wurde gesendet.
kind:
call: Anruf
delivery: Lieferung
dining: Reservierung
event: Termin
flight: Flug
lodging: Übernachtung
meeting: Termin
order: Bestellung
rental: Mietwagen
ticket: Ticket
train: Zug
more_count: '%count% weitere'
nav:
next: Weiter
previous: Zurück
pane:
mode:
calendar: Kalender in voller Breite zeigen
mail: Mail zeigen
split: Kalender neben der Mail zeigen
resize: Kalender in der Breite ändern
proposal:
action:
add: In den Kalender
dismiss: Kein Termin
explain: >-
In dieser E-Mail gefunden — im Kalender steht noch nichts.
toast:
added: Im Kalender eingetragen.
dismissed: >-
Verworfen — dieses Datum wird nicht noch einmal vorgeschlagen,
egal wie oft diese Nachricht gelesen wird.
no_calendar: >-
Es gibt keinen Kalender dafür, es wurde nichts gespeichert.
untitled: (kein Betreff)
repeat:
daily: Täglich
monthly: Monatlich
none: Wiederholt sich nicht
weekly: Wöchentlich
yearly: Jährlich
share:
action:
delete: 'Link "%name%" löschen'
edit: 'Link "%name%" bearbeiten'
regenerate: 'Link "%name%" eine neue Adresse geben'
revoke: 'Link "%name%" widerrufen'
all_day: Ganztägig
busy: Belegt
busy_free_only: Dieser Link zeigt nur, wann der Kalender belegt ist — sonst nichts.
count: '{0}Keine geteilten Links|{1}1 geteilter Link|]1,Inf[ %count% geteilte Links'
covers: '{0}keine Kalender|{1}1 Kalender|]1,Inf[ %count% Kalender'
day_free: An diesem Tag nichts.
delete_confirm: '"%name%" löschen? Wer die Adresse noch hat, verliert sie.'
detail:
description: Beschreibung
location: Ort
participants: Wer dabei ist
title: Titel
empty: In diesem Zeitraum nichts.
empty_list: Noch keine geteilten Links.
footer: Geteilter Kalender
form:
add: Neuer geteilter Link
calendars: Welche Kalender
days: Tage im Voraus
edit: Geteilten Link bearbeiten
ends_on: Letzter Tag
name: Wie du ihn nennst
name_help: >-
Nur du siehst das. So findest du den Link wieder, um ihn zu ändern
oder zu widerrufen.
reveals: Was dieser Link preisgibt
reveals_help: >-
Ohne Häkchen zeigt der Link nur, wann der Kalender belegt ist.
Jedes Häkchen fügt eine Angabe hinzu. Ein als privat markierter
Termin bleibt ein reiner Belegt-Block, egal was hier angehakt ist.
rolling_days: Tage im Voraus
starts_on: Erster Tag
token_note: >-
Die Adresse wird einmal gezeigt, beim Anlegen. Sie wird nicht
gespeichert und kann nicht erneut gezeigt werden — geht sie
verloren, gib dem Link eine neue.
window: Wie weit er reicht
heading: Geteilter Kalender
minted:
heading: Die Adresse für diesen Link
once: >-
Kopiere sie jetzt. Sie wird nirgends gespeichert, also ist dies
die einzige Gelegenheit.
not_shared: Nicht geteilt
outside_window: Tage außerhalb des geteilten Zeitraums
page_title: Geteilter Kalender
reveals: 'Zeigt %details%'
reveals_busy_free: Nur belegt/frei
revoked: Widerrufen
subscribe: Zu deinem Kalender hinzufügen
toast:
created: >-
Link erstellt. Kopiere die Adresse jetzt — sie wird nicht noch
einmal gezeigt.
deleted: Link gelöscht.
regenerated: Neue Adresse. Die alte funktioniert nicht mehr.
revoked: Link widerrufen.
updated: Link aktualisiert.
window:
fixed: Zwischen zwei Daten
rolling: Ein rollendes Fenster ab heute
window_label: '%from% – %to%'
zone: 'Zeiten in %zone%'
soon:
empty: Nichts in Sicht
empty_hint: >-
Termine aus deinem Kalender und die Flüge, Lieferungen,
Reservierungen und Tickets aus deinen E-Mails erscheinen hier für
die nächsten zwei Wochen.
from: 'Aus %subject%'
open: Was demnächst ansteht
title: Demnächst
untitled: (kein Betreff)
title: Kalender
toast:
created: Kalender angelegt
default_set: Neue Termine landen jetzt hier
deleted: Kalender gelöscht
disconnected: Server getrennt
disconnected_kept: >-
Server getrennt — %count% Termin(e), die aus E-Mails stammen und
nicht von einem Kalender, sind in deinen Standardkalender umgezogen.
hidden: Kalender ausgeblendet
shown: Kalender eingeblendet
subscriptions_saved: Auswahl gespeichert
subscriptions_saved_kept: >-
Auswahl gespeichert — %count% Termin(e), die aus E-Mails stammen und
nicht vom Kalender, sind in deinen Standardkalender umgezogen.
subscriptions_unchanged: Nichts geändert
sync_queued: Wird abgeglichen — dieser Kalender ist gleich aktuell.
updated: Kalender gespeichert
today: Heute
upcoming:
imminent: Beginnt innerhalb einer Stunde
later: Heute noch
soon: In wenigen Stunden
view:
agenda: Agenda
day: Tag
month: Monat
week: Woche
clipboard:
copied: Kopiert
copy_failed: Kopieren fehlgeschlagen
compose:
no_account:
body: Richte zuerst ein Postfach ein, dann kannst du sofort davon schreiben.
cta: Mail-Konto hinzufügen
heading: Noch kein Mail-Konto
font_family:
label: Schriftart
monospace: Monospace
sans: Serifenlos
serif: Serif
font_size:
huge: Sehr groß
label: Schriftgröße
large: Gross
normal: Normal
small: Klein
align:
center: Zentriert ausrichten
left: Linksbündig ausrichten
right: Rechtsbündig ausrichten
confirm:
no_body: Diese Nachricht hat keinen Text.
no_subject: Diese Nachricht hat keinen Betreff.
send_anyway: Trotzdem senden?
plain_text: Der Wechsel zu Nur-Text entfernt jede Formatierung aus dieser Nachricht. Fortfahren?
emoji:
activities: Aktivitäten
animals_nature: Tiere und Natur
categories: Kategorien
custom: Eigene
favorites: Häufig verwendet
flags: Flaggen
food_drink: Essen und Trinken
loading: "Wird geladen…"
network_error: Die Emoji konnten nicht geladen werden.
objects: Objekte
people_body: Menschen und Körper
region: Emoji-Auswahl
search: Suchen
search_description: Wenn Ergebnisse erscheinen, wähle mit Pfeil hoch oder runter aus und bestätige mit Enter.
search_results: Suchergebnisse
skin_tone: "Hautton wählen (aktuell {skinTone})"
skin_tone_description: Wenn geöffnet, wähle mit Pfeil hoch oder runter aus und bestätige mit Enter.
skin_tones: Hauttöne
smileys_emotion: Smileys und Emotionen
symbols: Symbole
tone_dark: Dunkel
tone_default: Standard
tone_light: Hell
tone_medium: Mittel
tone_medium_dark: Mitteldunkel
tone_medium_light: Mittelhell
travel_places: Reisen und Orte
unsupported: Dieser Browser kann keine farbigen Emoji darstellen.
list:
ordered: Nummerierte Liste
unordered: Aufzählung
priority:
high: Hoch
label: Priorität
low: Niedrig
none: Keine Priorität
normal: Normal
quote:
hide: zitierten Text ausblenden
show: zitierten Text anzeigen
schedule:
cancel: Geplanten Versand abbrechen
confirm: Versand planen
custom: Datum und Uhrzeit wählen
error:
past: Dieser Zeitpunkt liegt bereits in der Vergangenheit.
too_far: Nachrichten lassen sich höchstens %days% Tage zurückhalten.
too_soon: Wähle einen Zeitpunkt mindestens eine Minute in der Zukunft.
unreadable: Das ist kein gültiges Datum mit Uhrzeit.
heading: Später senden
monday_morning: Montagmorgen
scheduled_for: Geplanter Versand
timezone_hint: Alle Zeiten in %zone%.
toast: Geplant für %when%
toast_cancel: Versand abbrechen
tomorrow_afternoon: Morgen Nachmittag
tomorrow_morning: Morgen früh
when: '%date%, %time%'
status:
pending_many: "noch %count% Zeichen bis zum Speichern"
pending_one: noch ein Zeichen bis zum Speichern
save_failed: Entwurf konnte nicht gespeichert werden
saved: Entwurf gespeichert
saving: "Wird gespeichert…"
uploading: "Wird hochgeladen…"
upload:
failed: Hochladen fehlgeschlagen
images_only: In den Nachrichtentext lassen sich nur Bilder einfügen
over_limit: "Datei zu groß (max. %limit% MB)"
post_too_large: Upload zu groß
too_large: Datei zu groß
add_bcc: Bcc-Empfänger hinzufügen
add_cc: Cc-Empfänger hinzufügen
attach: Dateien anhängen
attach_failed: Anhängen fehlgeschlagen
attach_remove_failed: Anhang konnte nicht entfernt werden
attach_too_large: "%name% ist größer als %limit% MB"
bcc: Bcc
bold: Fett
cc: Cc
click_to_cancel: zum Abbrechen klicken
continue_editing: Weiter bearbeiten
discard: Entwurf löschen
empty_draft: (leerer Entwurf)
encrypt: Nachricht verschlüsseln
encrypt_unavailable: Verschlüsselung ist noch nicht verfügbar.
expand: Fenster vergrößern
formatting: Formatierung
forward: Weiterleiten
from: Von
image: Bild einfügen
image_insert_failed: Das Bild konnte nicht in die Nachricht eingefügt werden
indent: Einzug vergrößern
insert_emoji: Emoji einfügen
insert_link: Link einfügen
invalid_address: "„%address%“ ist keine gültige E-Mail-Adresse"
italic: Kursiv
link:
add: Link einfügen
apply: Übernehmen
cancel: Abbrechen
change: Ändern
dialog: Link
edit: Link bearbeiten
heading: Link
invalid: Bitte eine Webadresse eingeben.
open: Öffnen
remove: Link entfernen
text_label: Anzuzeigender Text
text_placeholder: Die Wörter, die den Link tragen
unsafe: Nur Web-, Mail- und Telefonadressen lassen sich verlinken.
url_label: Webadresse
url_placeholder: "beispiel.de"
minimize: Minimieren
more_options: Weitere Optionen
new_message: Neue Nachricht
no_recipients: Keine Empfänger
outdent: Einzug verkleinern
plain_text: Nur-Text-Modus
plain_warning:
cancel: Formatierung behalten
continue: Fortfahren
title: Formatierung entfernen?
pop_out: In eigenem Fenster öffnen
send_warning:
cancel: Weiter bearbeiten
continue: Trotzdem senden
title: Diese Nachricht senden?
read_receipt: Lesebestätigung anfordern
recipient_required: Füge mindestens einen Empfänger hinzu, bevor du sendest.
redo: Wiederholen
reply: Antworten
reply_all: Allen antworten
reply_placeholder: "An %name% antworten"
save_and_close: Entwurf speichern und schließen
send: Senden
send_options: Sendeoptionen
sending: "Wird gesendet…"
signature: Signatur einfügen
signature_none: Für diese Adresse ist keine Signatur hinterlegt
subject_label: Betr
subject_placeholder: Betreff
text_color: Textfarbe
to: An
underline: Unterstrichen
undo: Rückgängig
body_placeholder: "Schreibe deine Nachricht…"
attachment_remove: Anhang entfernen
drafts:
empty: Keine Entwürfe.
heading: Entwürfe
errors:
access_denied: Du hast keinen Zugriff auf diese Ressource.
not_found: Die angeforderte Ressource wurde nicht gefunden.
page:
back: Zurück zu deiner Mail
not_found:
body: Die aufgerufene Seite gibt es hier nicht. Vielleicht ist der Link vertippt, vielleicht wurde das Ziel verschoben oder gelöscht.
heading: Unter dieser Adresse ist nichts
title: Seite nicht gefunden
server:
body: Bei uns ist etwas schiefgelaufen, nicht bei dir. Der Fehler wurde protokolliert; ein neuer Versuch gleich hilft meistens.
heading: Da ist etwas schiefgelaufen
title: Serverfehler
form:
file:
choose: Bild auswählen …
hint: PNG, JPEG, GIF oder WebP
select:
no_results: Keine Treffer
cancel: Abbrechen
submit: Speichern
header:
labels:
add: Label erstellen
heading: Labels
none: Noch keine Labels
search:
placeholder: E-Mails durchsuchen…
user_menu:
account_attention: '%count% Dinge an deinen Konten brauchen Aufmerksamkeit'
admin: Administration
label: Benutzermenü für %email%
profile: Profil
rerun_setup: Einrichtung erneut starten
unseen_logs:
danger: '%count% neue Fehler im Protokoll'
warn: '%count% neue Warnungen im Protokoll'
settings: Einstellungen
sign_out: Abmelden
signed_in_as: Angemeldet als
inbox:
empty: Keine Nachrichten in diesem Tab.
integration:
save_failed: 'Speichern fehlgeschlagen: %reason%'
saved_to: 'In %name% gespeichert'
destination:
album_name: 'Albumname'
choose_album: 'Album für %file% wählen'
choose_folder: 'Ordner für %file% wählen'
create: Erstellen
folder_name: 'Ordnername'
library: 'Mediathek (kein Album)'
new_album: 'Neues Album'
new_folder: 'Neuer Ordner'
no_albums: 'Noch keine Alben.'
no_subfolders: 'Keine Ordner hier.'
save_here: 'Hier speichern'
start_over: 'Von vorn beginnen'
picker:
attach: Anhängen
attach_from: 'Aus %name% anhängen'
attach_from_service: 'Aus einem Dienst anhängen'
copy: Kopie
empty: 'Dieser Ordner ist leer.'
link: Link
more: 'Mehr anzeigen'
no_results: 'Nichts gefunden für „%query%“.'
search: Suchen
search_placeholder:
dropbox: 'Dropbox durchsuchen'
googleDrive: 'Drive durchsuchen'
googlePhotos: 'Photos durchsuchen'
immich: 'Ein Foto beschreiben, z. B. Strand bei Sonnenuntergang'
nextcloud: 'Nextcloud durchsuchen'
oneDrive: 'OneDrive durchsuchen'
timeline: 'Zu einem Datum springen'
too_big: 'Zu groß zum Anhängen'
label:
all_accounts: Alle Konten
color:
amber: Bernstein
blue: Blau
gray: Grau
green: Grün
orange: Orange
pink: Rosa
red: Rot
teal: Petrol
violet: Violett
empty: Keine Konversationen mit diesem Label.
created: Label erstellt.
delete_confirm: 'Das Label "%name%" löschen? Nachrichten behalten ihre übrigen Labels und werden nicht gelöscht.'
delete_confirm_children: '"%name%" und die %count% untergeordneten Label(s) löschen? Nachrichten werden nicht gelöscht.'
deleted: Label gelöscht.
error:
duplicate: Hier gibt es bereits ein Label mit diesem Namen.
form:
account: Konto
color: Farbe
delete: Label löschen
edit_title: Label bearbeiten
name: Name
no_color: '— keine —'
no_parent: '— oberste Ebene —'
parent: Einordnen unter
menu:
create: Neu erstellen
empty: Noch keine Labels.
updated: Label aktualisiert.
visibility:
hidden: Label ist jetzt ausgeblendet.
shown: Label ist jetzt sichtbar.
list:
sort:
newest: Neueste zuerst
oldest: Älteste zuerst
login:
form:
email: E-Mail-Adresse
forgot_password: Passwort vergessen?
forgot_password_hint: 'Die Wiederherstellung läuft über die Server-Konsole: bin/console und ein neues Passwort, gesetzt von einer Administratorin oder einem Administrator.'
password: Passwort
remember_me: Angemeldet bleiben
submit: Anmelden
page_title: Anmelden
register:
coming_soon: Registrierung folgt in Kürze.
link: Konto erstellen
prompt: Noch kein Konto?
tagline: Melde dich bei deinem Konto an
message:
actions:
archive: Archivieren
delete: Diese Nachricht löschen
expand: Diese Nachricht auf- oder zuklappen
mark_unread: Als ungelesen markieren
more: Mehr
print: Drucken
show_original: Original anzeigen
star: Markieren
unstar: Markierung entfernen
attachments: Anhänge
back: Zurück
body_frame: Nachrichteninhalt
details:
categorised:
correspondent: 'Sie haben diesem Absender geschrieben'
default: 'nichts wies auf Massenmail hin'
forum: 'ein Mailinglisten-Header: '
gmail: 'laut Gmail: '
promotion: 'ein Massenmail-Header: '
social: 'die Absenderdomain '
update: 'ein Hinweis auf automatischen Versand: '
category: Kategorie
bcc: BCC
cc: CC
copy_address: 'Adresse %address% kopieren'
copy_headers: Kopfzeilen kopieren
date: Datum
from: von
hide_all_headers: Alle Kopfzeilen ausblenden
label: Details
mailed_by: gesendet über
me: mich
reply_to: Antwort an
show_all_headers: Alle Kopfzeilen anzeigen
signed_by: signiert von
subject: Betreff
to: "an %name%"
to_label: an
undisclosed: unbekannte Empfänger
draft: "Entwurf"
images:
always: 'Bilder von %sender% immer anzeigen'
blocked: '{1}1 Bild wurde blockiert, damit dieser Aufruf privat bleibt|]1,Inf[ %count% Bilder wurden blockiert, damit dieser Aufruf privat bleibt'
show_once: Bilder anzeigen
stop_trusting: Nicht mehr anzeigen
trusted: 'Bilder von %sender% werden immer angezeigt'
original:
copied: Kopiert
copy: In die Zwischenablage kopieren
heading: Originalnachricht
quote:
hide: Zitierten Text ausblenden
show: Zitierten Text anzeigen
read_receipt:
dismiss: 'Nein, danke'
mdn:
body: "Ihre Nachricht an %recipient% mit dem Betreff „%subject%“ wurde am %date% angezeigt. Das ist keine Bestätigung dafür, dass sie gelesen oder verstanden wurde."
subject: 'Gelesen: %subject%'
mismatch: 'Die Bestätigung soll an %notifyTo% gehen – das ist nicht die Adresse, von der diese Nachricht gesendet wurde (%sender%).'
read_at: 'Gelesen am %datetime%'
requested: '%sender% möchte benachrichtigt werden, wenn Sie diese Nachricht lesen.'
send: 'Bestätigung senden'
save_to: 'Speichern in'
security:
mismatch:
brand_in_name: "Der Name lautet „%claimed%“, gesendet wurde die Nachricht aber von %actual%."
domain_in_name: "Der Name gibt %claimed% an, gesendet wurde die Nachricht aber von %actual%."
title: "Der Absendername passt nicht zur Absenderadresse"
spam:
body: "Diese Nachricht wurde als Spam eingestuft. Ihre Links und Bilder sind riskant — behandeln Sie jede Aufforderung darin wie die eines Fremden."
title: Diese Nachricht ist im Spam
mercure:
status:
connected: Live-Aktualisierung aktiv
connecting: Verbindung zur Live-Aktualisierung wird wiederhergestellt…
offline: Keine Live-Aktualisierung — der Posteingang ist möglicherweise nicht aktuell
modal:
close: Schließen
loading: Wird geladen…
oauth:
error:
generic: Dieses Konto konnte nicht verbunden werden. Bitte versuche es erneut.
microsoft:
admin_consent_required: >-
Deine Organisation verlangt, dass ein Administrator plMail
freigibt, bevor du dieses Konto verbinden kannst. Bitte deinen
Microsoft-Administrator um die Freigabe.
app_not_found: >-
plMail ist in deiner Microsoft-Organisation nicht registriert.
bad_credentials: >-
Die Microsoft-Zugangsdaten von plMail sind ungültig oder
abgelaufen. Das ist ein Problem der Serverkonfiguration und
nichts, was du selbst beheben kannst.
blocked_by_policy: >-
Eine Sicherheitsrichtlinie deiner Organisation hat diese
Anmeldung blockiert.
consent_declined: >-
Verbindung abgebrochen — plMail wurde kein Zugriff gewährt.
tenant_mismatch: >-
Dieser Kontotyp kann sich mit der aktuellen Konfiguration nicht
bei plMail anmelden. Prüfe die Einstellung
MICROSOFT_OAUTH_TENANT.
onboarding:
action:
back: Zurück
finish: Fertig
next: Weiter
skip: Schritt überspringen
skip_all: Einrichtung überspringen
done:
body: >-
Alles Übersprungene findest du in den Einstellungen, und du kannst die
Einrichtung jederzeit über das Benutzermenü erneut starten.
cta: Zu meinen Mails
heading: Fertig eingerichtet
aside:
account:
body: >-
plMail braucht die Adressen für Posteingang (IMAP) und Postausgang (SMTP).
Die stehen meist in der Hilfe deines Anbieters unter "IMAP-Einstellungen".
heading: Wo finde ich das?
oauth: >-
Für Gmail und Outlook nimm stattdessen die Anmelde-Buttons unter
Einstellungen → Mail-Konten — dort brauchst du keine Serveradressen.
admin_integrations:
body: Registriere plMail beim Dienst und trage die erhaltenen Zugangsdaten hier ein.
heading: So richtest du das ein
admin_mail:
google:
heading: Gmail-Anmeldung einrichten
step1: console.cloud.google.com öffnen und ein Projekt anlegen oder ein bestehendes wählen.
step2: 'Unter APIs und Dienste → Bibliothek die Gmail API aktivieren.'
step3: 'Unter OAuth-Zustimmungsbildschirm "Intern" wählen, wenn du Workspace hast, sonst "Extern", und App-Name sowie Support-E-Mail eintragen.'
step4: 'Unter Anmeldedaten eine OAuth-Client-ID vom Typ "Webanwendung" erstellen.'
step5: Die untenstehende Redirect-URI bei "Autorisierte Weiterleitungs-URIs" eintragen und speichern.
step6: Client-ID und Client-Secret in die Felder links kopieren.
microsoft:
heading: Microsoft-Anmeldung einrichten
step1: 'portal.azure.com öffnen und zu Microsoft Entra ID → App-Registrierungen → Neue Registrierung gehen.'
step2: 'Auswählen, wer sich anmelden darf. "Konten in einem beliebigen Organisationsverzeichnis und persönliche Microsoft-Konten" passt zur Tenant-Voreinstellung "common".'
step3: 'Als Redirect-URI-Typ "Web" wählen und die Adresse unten eintragen.'
step4: 'Nach der Registrierung die Anwendungs-ID (Client) in das Feld links kopieren.'
step5: 'Unter Zertifikate und Geheimnisse ein neues Client-Secret anlegen und dessen Wert — nicht die ID — sofort kopieren; er wird nur einmal angezeigt.'
step6: 'Unter API-Berechtigungen diese delegierten Microsoft-Graph-Berechtigungen hinzufügen: Mail.ReadWrite, Mail.Send, MailboxSettings.ReadWrite, Calendars.ReadWrite, User.Read und offline_access. Ohne MailboxSettings.ReadWrite oder Calendars.ReadWrite funktioniert die Anmeldung weiterhin — es fehlen dann nur Kategorien und Kalender, und ein bereits ausgestelltes Token wird nicht nachträglich erweitert.'
profile:
body: Das sehen Empfänger in der Absenderzeile. Jederzeit änderbar.
heading: Wo das erscheint
security:
body: >-
Stell dir vor, jemand hat dein E-Mail-Passwort. Der liest nicht nur
mit — der klickt bei deiner Bank, deinem Domain-Anbieter und deinem
Cloud-Speicher auf "Passwort vergessen" und fängt die Links dafür
hier ab.
body_two: >-
Ein zweiter Faktor ist ein Code auf deinem Handy, der sich alle 30
Sekunden ändert. Ein gestohlenes Passwort allein reicht dann nicht
mehr.
heading: Warum ausgerechnet dieses Konto
account:
add: Konto hinzufügen
or_manual: 'Oder von Hand einrichten:'
sign_in_with: 'Mit %provider% anmelden'
add_another: Weiteres Konto hinzufügen
cancel: Abbrechen
integrations:
cancel: Abbrechen
connect: Verbinden
connected: Verbunden
progress: 'Schritt %index% von %total%'
security:
body: >-
Dein Postfach ist der Schlüssel zu allen deinen anderen Konten, denn
dort landen die Links zum Zurücksetzen von Passwörtern. Mit einem Code
von deinem Handy reicht ein gestohlenes Passwort allein nicht mehr.
done_body: >-
Beim Anmelden wirst du nach einem Code aus deiner App gefragt. Bewahre
die Wiederherstellungscodes dort auf, wo du ohne dein Handy herankommst.
done_heading: Zwei-Faktor-Authentifizierung ist an
skip_hint: Du kannst das später unter Einstellungen → Sicherheit einrichten.
switch_blocked: Es wurde nicht gewechselt — korrigiere zuerst die Felder unten, deine Eingaben bleiben erhalten.
step:
account:
lead: Verbinde das Postfach, das du wirklich liest — plMail beginnt dann zu synchronisieren.
title: Mail-Konto
admin-integrations:
lead: Zugangsdaten für die Dienste, aus denen hier alle Dateien anhängen können.
title: Integrations-Zugangsdaten
admin-mail:
lead: Anmeldedaten für Gmail und Outlook — einmal für diese ganze Instanz.
title: Mail-Anbieter
appearance:
lead: Wie plMail aussieht. Nichts davon ist endgültig, ändere es jederzeit.
title: Darstellung
integrations:
lead: Verbinde die Dienste, in denen deine Dateien und Fotos liegen.
title: Deine Integrationen
profile:
lead: Der Name, der auf deinen gesendeten Mails steht.
title: Über dich
security:
lead: Das eine Konto, das sich richtig abzuschließen lohnt. Dauert etwa eine Minute.
title: Konto schützen
title: plMail einrichten
profile:
avatar_current: Aktuelles Bild
avatar_from:
empty: Von diesem Dienst gibt es nichts anzuzeigen.
heading: Oder eins aus einem verbundenen Dienst wählen
avatar_wrong_type: Bitte ein PNG, JPEG, GIF oder WebP verwenden.
field:
avatar: Bild
avatar_help: PNG, JPEG, GIF oder WebP, bis 4 MB.
avatar_remove: Aktuelles Bild entfernen
name_first: Vorname
name_last: Nachname
search:
empty:
or_keyword: oder tippe einfach ein Stichwort.
title: Durchsuche deine Mail
try: Probiere
heading:
results: Suchergebnisse für
no_results:
hint: Probiere andere Stichwörter oder entferne Filter.
title: Keine Treffer für „%query%“
pill:
after: Nach
attachment: Anhang
before: Vor
cc: Cc
from: Von
has: Hat
in: In
is: Ist
label: Label
read: gelesen
starred: markiert
subject: Betreff
to: An
unread: ungelesen
results:
count: '%count% Treffer'
count_one: 1 Treffer
sort:
label: Sortieren nach
recent: Neueste zuerst
relevance: Relevanteste zuerst
title: Suche
title_query: 'Suche: %query%'
sent:
empty: Keine gesendeten Nachrichten.
heading: Gesendet
setup:
install:
field:
email: E-Mail-Adresse
email_help: Mit dieser Adresse meldest du dich an.
public_url: Öffentliche Adresse
public_url_help: >-
Unter dieser Adresse ist plMail von außen erreichbar. Gmail und Outlook
schicken Push-Benachrichtigungen dorthin zurück, sie muss also aus dem
Internet erreichbar sein und sollte https sein. Später änderbar.
locale: Sprache
name_first: Vorname
name_last: Nachname
password: Passwort
password_repeat: Passwort wiederholen
footnote: Postfächer und alles Weitere kannst du einrichten, sobald du drin bist.
heading: Konto anlegen
lead: Das ist das erste Konto auf dieser plMail-Instanz und bekommt daher volle Administratorrechte.
page_title: plMail einrichten
restore_link: Stelle zuerst eine Konfigurationssicherung wieder her.
restore_prompt: Kommst du von einer anderen plMail-Instanz?
submit: Konto anlegen und anmelden
tagline: Hier hat sich noch niemand angemeldet
restore:
applied_lead: >-
Die Konfiguration steht. Diese Sicherung enthielt keine Benutzerkonten, deshalb
hat diese Installation noch keine — lege das Administratorkonto an, um fertig
zu werden. Falls oben ein Neustart vermerkt ist, kann er bis danach warten.
applied_lead_users: >-
Die Konfiguration und ihre Personen stehen — %count% wiederhergestellt,
darunter %admins%. Melde dich mit dem Passwort an, das du schon hattest; daran
hat sich nichts geändert.
back: 'Zurück zum Anlegen des Administrators'
continue: 'Weiter — Administrator anlegen'
footnote: >-
Eine Konfigurationssicherung enthält Einstellungen, Zugangsdaten und die
Personen, die sie benutzen — niemals E-Mails, Kalendereinträge oder Kontakte.
heading: 'Konfigurationssicherung wiederherstellen'
lead: >-
Bring die Einstellungen, Zugangsdaten und Konten einer anderen plMail-Instanz
hierher, bevor du irgendetwas anlegst. Datei hochladen, Passwort eingeben — den
Rest schreibt plMail selbst in diese Installation.
nothing_to_do: 'Hier bleibt nichts mehr für dich zu tun.'
page_title: 'Konfiguration wiederherstellen'
sign_in: 'Anmelden'
submit: 'Sicherung öffnen'
settings:
accounts:
delete: Konto entfernen
delete_confirm: '%account% entfernen? Dadurch werden alle synchronisierten Nachrichten dieses Kontos endgültig gelöscht. Das lässt sich nicht rückgängig machen.'
disable: Konto deaktivieren
edit: Konto bearbeiten
empty: Noch keine Konten. Füge eines hinzu, um E-Mails zu synchronisieren.
enable: Konto aktivieren
heading: E-Mail-Konten
password_help: Leer lassen, um das aktuelle Passwort zu behalten.
primary: Primär
push:
degraded_hint:
gmail: >-
Push ist registriert, aber es kam zuletzt nichts an. Das
Pub/Sub-Push-Abonnement in Google Cloud fehlt möglicherweise
oder zeigt woanders hin. E-Mails werden weiterhin nach
Zeitplan synchronisiert.
microsoft: >-
Das Push-Abonnement ist abgelaufen und es kommt nichts mehr
an. Registriere es neu, um die sofortige Zustellung
fortzusetzen. E-Mails werden weiterhin nach Zeitplan
synchronisiert.
failed:
gmail: >-
Push konnte nicht aktiviert werden — Google hat die
Watch-Registrierung abgelehnt. Prüfe, ob GMAIL_PUBSUB_TOPIC
ein vorhandenes Pub/Sub-Thema benennt und ob dieses Thema
gmail-api-push@system.gserviceaccount.com die Rolle
„Pub/Sub Publisher“ gewährt. Das Konto wird weiterhin nach
Zeitplan synchronisiert.
microsoft: >-
Push konnte nicht aktiviert werden — Microsoft muss diesen
Server über HTTPS erreichen. Prüfe deinen Reverse Proxy und
APP_PUBLIC_URL. Das Konto wird weiterhin nach Zeitplan
synchronisiert.
health:
active: Push
degraded: Push (liefert nicht)
inactive: Nach Zeitplan
mode_pull: Nach Zeitplan
mode_push: Push
not_configured: >-
Push ist auf diesem Server nicht verfügbar — dafür werden eine
öffentliche HTTPS-Adresse und, für Gmail, ein Cloud-Pub/Sub-Topic
benötigt.
off_hint: E-Mails werden nach Zeitplan abgerufen. Aktiviere Push für sofortige Zustellung.
on_hint:
gmail: Neue E-Mails kommen sofort per Gmail-Push-Benachrichtigung an.
microsoft: Neue E-Mails kommen sofort per Microsoft-Push-Benachrichtigung an.
renews: Abonnement wird vor dem %date% erneuert.
reregister: Push neu registrieren
title: Sofortige Zustellung
reorder: Zum Umsortieren ziehen
status:
active: Aktiv
disabled: Deaktiviert
subheading: Postfächer hinzufügen, bearbeiten, aktivieren oder entfernen.
type:
imap: IMAP
oauth: '%provider% (OAuth)'
aliases:
add: 'Hinzufügen'
add_placeholder: 'Weitere Adresse hinzufügen…'
delete: 'Entfernen'
disable: 'Deaktivieren'
empty: 'Noch keine Adressen.'
enable: 'Aktivieren'
heading: 'E-Mail-Adressen'
make_primary: 'Als Hauptadresse festlegen'
ms_sender_hint: 'Outlook versendet unabhängig von der hier gewählten Adresse immer über den primären Alias deines Kontos — ändere ihn in deinen'
ms_sender_hint_link: 'Microsoft-Kontoeinstellungen'
primary: 'Primär'
refresh: 'Vom Anbieter aktualisieren'
subheading: 'Adressen, unter denen dieses Konto sendet und empfängt.'
system: 'System'
clock:
heading: Uhrzeitformat
subheading: Ob Zeiten im 12- oder 24-Stunden-Format geschrieben werden. Gespeichert wird nichts anders — es ändern sich nur die Ziffern.
label: Uhrzeitformat
follow_language: 'Der Sprache folgen (%sample%)'
option:
'12': '12 Stunden (%sample%)'
'24': '24 Stunden (%sample%)'
device_pairing:
pair_device: "Gerät koppeln"
scan_title: "Mit der plMail-App scannen"
scan_hint: "Der Code funktioniert einmal und läuft in zwei Minuten ab. Er enthält nicht dein App-Passwort — die App tauscht ihn gegen ein neues ein."
qr_alt: "Kopplungscode"
expires: "Läuft um %time% ab."
open_in_app: "In der App öffnen"
app_passwords:
copy: Kopieren
copy_now: Hier ist dein neues App-Passwort
copy_now_hint: >-
Kopiere es jetzt — es wird nicht gespeichert und kann nicht erneut
angezeigt werden. Wenn du es verlierst, widerrufe es und erzeuge ein
neues.
empty: Noch keine App-Passwörter. Erzeuge eines, um eine Mail-App zu verbinden.
generate: Erzeugen
heading: App-Passwörter
last_used: 'Zuletzt verwendet %date%'
name_placeholder: 'Wofür ist es? z. B. iPhone — Sterna'
never_used: Nie verwendet
revoke: Widerrufen
revoke_confirm: '"%name%" widerrufen? Jede App, die es verwendet, wird sofort abgemeldet.'
setup_heading: Eine App verbinden
setup_hint: >-
Verwende deine E-Mail-Adresse als Benutzernamen und das App-Passwort
als Passwort. Fragt die App nach einem Server oder einer JMAP-URL,
gib diese an — nicht die Adresse /jmap/api, die nur POST annimmt.
subheading: >-
Melde dich bei Mail-Apps von Drittanbietern an, die JMAP sprechen.
Jede App bekommt ein eigenes Passwort, das du einzeln widerrufen
kannst.
appearance:
accent:
heading: Akzentfarbe
background:
heading: Hintergrund
theme: Theme-Standard
upload: Bild hochladen
density:
comfortable: Komfortabel
compact: Kompakt
cosy: Gemütlich
heading: Dichte
export: Theme exportieren
glass:
heading: Glas
paneAlpha: Deckkraft
paneBlur: Weichzeichnen
radius: Eckenradius
scrimAlpha: Hintergrundabdunklung
subheading: Wie viel vom Hintergrund durch deine Flächen scheint.
import: Theme importieren
layout:
boxed: Kacheln
flat: Flach
heading: Layout
subheading: Wie die Oberfläche gerahmt ist. „Kacheln“ zeigt jede Fläche als eigene Karte; „Flach“ setzt Kopf- und Seitenleiste direkt auf den Hintergrund und lässt nur den Hauptbereich als Karte stehen.
main:
default: Theme-Standard
heading: Hauptbereich
matchGlass: An Glas-Deckkraft angleichen
subheading: Farbton und Deckkraft des Hauptbereichs, unabhängig von der Seitenleiste.
tint: Hintergrundfarbton
reset: Auf Standard zurücksetzen
text:
autoDerive: Automatisch ableiten
color: Textfarbe
default: Theme-Standard
faint: Sehr blass
heading: Text
muted: Gedämpft
subheading: Passe die Textfarbe für bessere Lesbarkeit auf deinem Hintergrund an.
theme:
dark: Dunkel
dusk: Dämmerung
heading: Theme
light: Hell
nord: Nord
paper: Papier
solar: Solar
subheading: Farbschema für die gesamte Oberfläche.
system: System
back: Zurück zum Posteingang
compose_defaults:
heading: 'Standards fürs Verfassen'
invalid: 'Diese Einstellung konnte nicht gespeichert werden.'
read_receipt:
for_alias: 'Lesebestätigungen für %alias%'
hint: 'Wenn ein Absender benachrichtigt werden möchte, sobald Sie seine Nachricht gelesen haben.'
inherit: 'Konto-Standard (%mode%)'
label: 'Lesebestätigungen'
mode:
always: 'Immer senden'
ask: 'Jedes Mal fragen'
never: 'Nie senden'
saved: 'Gespeichert.'
subheading: 'Was jede Ihrer Adressen beim Senden und Empfangen standardmäßig tut.'
filters:
account: Account
action:
applyLabel: Label vergeben
archive: Posteingang überspringen
markRead: Als gelesen markieren
markSpam: Als Spam markieren
removeLabel: Label entfernen
saveToIntegration: Anhänge speichern in
star: Markieren
trash: In den Papierkorb
add: Neuer Filter
add_action: Aktion hinzufügen
add_condition: Bedingung hinzufügen
add_group: Gruppe hinzufügen
all_accounts: Alle Konten
count: '%count% Filter'
count_capped: 'Trifft auf %count%+ vorhandene Nachrichten zu'
count_error: Noch kein verwendbarer Filter
count_exact: 'Trifft auf %count% vorhandene Nachricht zu|Trifft auf %count% vorhandene Nachrichten zu'
delete: Filter "%name%" löschen
delete_confirm: 'Den Filter "%name%" löschen? Bereits einsortierte Mail bleibt, wo sie ist.'
delete_title: Filter löschen
deleted: Filter gelöscht.
disable: Filter deaktivieren
disabled: Aus
edit: 'Filter "%name%" bearbeiten'
edit_title: Filter bearbeiten
empty: Noch keine Filter
empty_hint: Filter sortieren Mail beim Eintreffen — Label vergeben, Posteingang überspringen, markieren oder direkt in den Papierkorb.
enable: Filter aktivieren
error:
action_required: Füge mindestens eine Aktion hinzu, sonst tut der Filter nichts.
name_required: Gib dem Filter einen Namen.
field:
after: Empfangen nach
bcc: Bcc enthält
before: Empfangen vor
body: Text enthält
cc: Cc enthält
filename: Anhang heißt
from: Von enthält
hasAttachment: Hat einen Anhang
hasKeyword: Ist
hasLabel: Hat Label
listId: Mailingliste ist
maxSize: Kleiner als (Bytes)
minSize: Größer als (Bytes)
notKeyword: Ist nicht
notLabel: Hat Label nicht
subject: Betreff enthält
text: Irgendwo in der Nachricht
to: An enthält
heading: Filter
join:
and: und
none: 'keines von: %list%'
or: oder
keyword:
answered: beantwortet
draft: ein Entwurf
flagged: markiert
seen: gelesen
integration_missing: '(getrennter Dienst)'
label_missing: '(gelöschtes Label)'
move_down: '"%name%" nach hinten'
move_up: '"%name%" nach vorne'
name: Name
name_placeholder: z. B. Rechnungen von Acme
new_title: Neuer Filter
no: Nein
no_actions: Noch keine Aktionen
no_integrations: 'Keine Dienste verbunden — zuerst unter Integrationen einrichten.'
of_the_following: der folgenden
op:
all: Alle
any: Beliebige
none: Keine
placeholder:
date: Datum wählen
number: 0
text: Wert eingeben…
already_running: Dieser Filter läuft bereits.
queued: Eingereiht — wird im Hintergrund auf vorhandene Mail angewendet.
ran: Filter auf vorhandene Mail angewendet.
remove_action: Aktion entfernen
empty_group: 'Diese Gruppe ist leer — sie trifft auf nichts zu, bis eine Bedingung hinzukommt.'
no_conditions: 'Keine Bedingungen: Diese Regel gilt für jede Nachricht in ihrem Geltungsbereich.'
remove_condition: Bedingung entfernen
remove_group: Gruppe entfernen
reorder: Zum Umsortieren ziehen
run: Auf vorhandene Mail anwenden
run_state:
completed: 'Auf %count% Nachrichten angewendet'
failed: 'Lauf vorzeitig gestoppt — %count% Nachrichten waren erledigt'
queued: 'In der Warteschlange…'
running: 'Wird angewendet… bisher %count%'
run_confirm: '"%name%" auf vorhandene Mail anwenden? Das kann viele Nachrichten auf einmal verschieben und neu beschriften.'
saved: Filter gespeichert.
stop: Nach diesem Filter aufhören
stop_help: Für Nachrichten, auf die dieser Filter zutrifft, werden spätere Filter übersprungen.
subheading: Mail automatisch beim Eintreffen sortieren.
summary:
every_message: 'es sich um irgendeine Nachricht handelt'
every_message_in: 'es sich um irgendeine Nachricht in %account% handelt'
in_account: '%conditions%, in %account%'
full: 'Wenn %conditions% → %actions%'
no_actions: 'Wenn %conditions% → (noch keine Aktionen)'
then: Dann
when: Wenn
yes: Ja
health:
awaiting:
calendar_resync: >-
Synchronisierung gestartet. Das Ergebnis steht noch aus — diese
Karte sagt Bescheid, sobald es da ist.
confirm:
destructive: >-
Damit werden die wartenden Aufgaben endgültig verworfen. Nichts
wird erneut versucht, und es lässt sich nicht rückgängig
machen. Fortfahren?
flash:
calendar_resync: >-
%calendar% wurde zur Synchronisierung angemeldet. Sie läuft
jetzt im Hintergrund, und die Karte unten meldet das Ergebnis.
queue_discarded: '%count% liegen gebliebene Aufgaben verworfen.'
queue_retried: '%count% liegen gebliebene Aufgaben wieder eingereiht.'
heading: 'Zustand deiner Konten'
healthy:
body: >-
Deine Konten sind angemeldet, deine Kalender synchronisieren,
und es wartet nichts auf dich. Sollte einmal keine Post mehr
ankommen, steht hier, woran es liegt.
title: 'Alles funktioniert'
issue:
account_reconnect:
body: >-
Für dieses Konto kommt keine neue Post mehr an, und mit ihr
steht alles still, was daran hängt: die Kalender­synchroni­
sierung, Filter, die beim Empfang laufen, und das Senden
über diese Adresse. Die bereits geladene Post ist sicher
und weiterhin da. Das passiert, wenn ein Passwort geändert
oder die Zwei-Faktor-Anmeldung eingeschaltet wurde, oder
wenn die Anmeldung beim Anbieter widerrufen wurde.
title: '%account% muss sich neu anmelden'
calendar_sync_failing:
body: >-
Dieser Kalender übernimmt keine Änderungen mehr und zeigt
den Stand von seiner letzten erfolgreichen Synchroni­
sierung. Termine, die seither anderswo angelegt oder
verschoben wurden, fehlen hier — und deine Änderungen
werden nicht nach außen übertragen.
title: '%calendar% synchronisiert nicht mehr'
integration_reconnect:
body: >-
Anhänge in %connection% zu speichern und Dateien von dort
anzuhängen funktioniert erst wieder nach einer neuen
Verbindung. Deine Post ist davon nicht betroffen — es geht
nur um die Verbindung zu diesem Dienst. An den dort
abgelegten Dateien wurde nichts verändert.
title: '%connection% muss neu verbunden werden'
push_degraded:
body: >-
Deine Post kommt weiterhin an, nur nicht mehr im selben
Augenblick: Dieses Konto ruft wieder nach Zeitplan ab, neue
Nachrichten können also ein paar Minuten brauchen. Es geht
nichts verloren, und es eilt nicht.
title: 'Sofortzustellung ist für %account% aus'
queue_work_abandoned:
body: >-
%count% Hintergrund­aufgaben sind wiederholt gescheitert
und wurden beiseitegelegt, damit sie es nicht endlos weiter
versuchen. Meist ist das die Folge eines der Probleme
darüber und keine eigene Störung — behebe erst dieses und
reihe sie danach wieder ein.
title: '%count% Hintergrund­aufgaben wurden aufgegeben'
outcome:
calendar_failed_again: >-
Es hat wieder nicht geklappt. Was diesmal gemeldet wurde, steht
unten — die Synchronisierung lief, sie war nur nicht erfolgreich.
calendar_still_waiting: >-
Die Synchronisierung wurde gestartet, aber es kam noch nichts
zurück. Versuch es noch einmal oder lade die Seite neu.
calendar_synced: 'Synchronisiert. Dieser Kalender ist wieder auf dem neuesten Stand.'
pending:
calendar_resync: 'Synchronisierung wird gestartet …'
push_resubscribe: 'Wird wieder eingeschaltet …'
queue_discard: 'Wird verworfen …'
queue_retry: 'Werden zurückgestellt …'
reconnect: 'Weiterleitung zu %provider% …'
reconnect_generic: 'Weiterleitung zur Anmeldung …'
repair:
calendar_resync:
label: 'Jetzt synchronisieren'
promise: >-
Fordert diesen Kalender sofort zu einer neuen
Synchronisierung auf und setzt ihn zurück auf den normalen
Zeitplan. Es wird nichts gelöscht.
integration_reconnect:
label: 'Neu verbinden'
promise: >-
Führt dich zur erneuten Anmeldung und stellt danach die
bestehende Verbindung wieder her. Deine Filter und
gespeicherten Ablageorte bleiben erhalten.
push_resubscribe:
label: 'Sofortzustellung wieder einschalten'
promise: >-
Meldet dieses Konto erneut für die Sofortzustellung an.
Deine Post kommt in der Zwischenzeit ohnehin weiter an.
queue_discard:
label: 'Verwerfen'
promise: >-
Wirft die liegen gebliebenen Aufgaben weg, ohne sie
auszuführen. Das lässt sich nicht rückgängig machen, und
was sie nicht erledigt haben, bleibt unerledigt.
queue_retry:
label: 'Wieder einreihen'
promise: >-
Versucht die liegen gebliebenen Aufgaben noch einmal.
Unbedenklich — was erneut scheitert, landet einfach wieder
hier.
reconnect:
label: 'Konto neu verbinden'
promise: >-
Führt dich zur erneuten Anmeldung und hinterlegt die neue
Anmeldung an genau diesem Konto. Deine Post, Ordner,
Labels, Filter, Kalender und Einstellungen bleiben
unverändert — es wird nichts erneut geladen und nichts
gelöscht. Du musst dich als %account% anmelden; eine andere
Adresse wird abgelehnt und nicht stillschweigend
übernommen.
reconnect:
done: '%account% ist wieder verbunden. Post und Kalender holen in den nächsten Minuten auf.'
wrong_account: >-
Damit hast du dich als %actual% angemeldet, dieses Konto ist
aber %expected%. Es wurde nichts verändert. Melde dich beim
Anbieter von %actual% ab und versuche es erneut — die Adresse
zu tauschen hätte ein fremdes Postfach unter dieses gemischt.
subheading: >-
Was nicht mehr funktioniert, was das für deine Post bedeutet, und
der kleinste Schritt, der es behebt.
technical_detail: 'Technische Einzelheiten'
integrations:
ask_admin: 'Deine Administration hat diesen Dienst nicht freigeschaltet.'
auth:
appPassword: 'App-Passwort'
oauth2: 'Anmeldung'
available_heading: 'Dienst verbinden'
badge:
ask_admin: 'nicht freigeschaltet'
soon: 'bald verfügbar'
checked: 'geprüft %date%'
connect: Verbinden
disabled: 'Verbindung pausiert'
disconnect: Trennen
disconnect_confirm: '%name% trennen? Bereits angehängte Dateien bleiben unberührt.'
disconnected: 'Dienst getrennt'
edit: Bearbeiten
empty: 'Noch keine Dienste verbunden.'
enabled: 'Verbindung fortgesetzt'
field:
base_url: 'Serveradresse'
base_url_fixed: 'Verbindung zu %url%, von der Administration festgelegt.'
name: Name
name_help: 'Nur für Sie sichtbar, um zwei Verbindungen auseinanderzuhalten.'
secret:
dropbox: 'Zugriffstoken'
googleDrive: 'Zugriffstoken'
googlePhotos: 'Zugriffstoken'
immich: 'API-Schlüssel'
nextcloud: 'App-Passwort'
oneDrive: 'Zugriffstoken'
secret_help:
dropbox: ''
googleDrive: ''
googlePhotos: ''
immich: 'In Immich unter Account Settings → API Keys erzeugen.'
nextcloud: 'In Nextcloud unter Einstellungen → Sicherheit → Geräte & Sitzungen erzeugen. Nicht das Anmeldepasswort verwenden.'
oneDrive: ''
permissions:
immich: 'asset.read — Fotos und Videos sehen|asset.download — die Originaldatei anhängen|asset.view — Vorschauen im Dialog anzeigen|asset.upload — Anhänge in Immich speichern|album.read — Alben auflisten und durchsehen|albumAsset.create — gespeicherte Anhänge einem Album zuordnen'
permissions_heading: 'Berechtigungen für diesen Schlüssel'
permissions_note: 'Ein Schlüssel mit allen Berechtigungen funktioniert ebenfalls und ist einfacher, wenn Sie nicht einzeln auswählen möchten.'
secret_unchanged: 'Leer lassen, um die gespeicherten Zugangsdaten zu behalten'
username: Benutzername
heading: Integrationen
not_implemented: 'plMail kann diesen Dienst noch nicht ansprechen.'
oauth_no_code: 'Der Dienst hat keinen Autorisierungscode zurückgegeben. Bitte erneut versuchen.'
oauth_state_mismatch: 'Diese Anmeldung konnte nicht überprüft werden. Bitte neu beginnen.'
not_oauth: 'Dieser Dienst nutzt diese Anmeldeart nicht.'
pause: Pausieren
paused: pausiert
resume: Fortsetzen
save_tests: 'Beim Speichern wird die Verbindung sofort geprüft.'
saved: 'Dienst verbunden'
saved_with_error: 'Gespeichert, aber der Verbindungstest ist fehlgeschlagen'
subheading: 'Dateien aus anderen Diensten anhängen und Anhänge dorthin speichern.'
test: Testen
test_failed: 'Verbindungstest fehlgeschlagen'
test_ok: 'Verbindung funktioniert'
unavailable_heading: 'Hier nicht verfügbar'
calendars:
account_hint: Hier landen Termine aus E-Mails von %address%.
caldav:
connect: CalDAV-Server verbinden
disconnect: '"%name%" trennen'
disconnect_confirm: >-
"%name%" trennen? Jeder von dort gespiegelte Kalender wird hier
entfernt. Was darauf aus deinen E-Mails stammt und nicht von
einem Kalender, zieht vorher in deinen Standardkalender um.
disconnect_title: Diesen Server trennen
field:
address: Serveradresse
address_help: >-
Die CalDAV-Adresse, die dein Server anzeigt — oder einfach
die Domain: plMail fragt die Domain, wo ihre Kalender
liegen, bevor es aufgibt.
name: Name
name_help: Wie diese Verbindung in deinen Einstellungen heißen soll.
reuse: Das Passwort eines meiner E-Mail-Konten verwenden
reuse_account: Das Passwort welchen Kontos
reuse_account_none: Konto wählen…
reuse_help: >-
Standardmäßig aus, und das aus gutem Grund: Die meisten
Server wollen ein App-Passwort, und ein Haken hier schickt
ein Passwort, das du plMail für dein Postfach gegeben hast,
an die Adresse oben.
secret: App-Passwort
secret_help: >-
Lege eines auf deinem Server an, statt dein Anmeldepasswort
zu nehmen — iCloud und Fastmail akzeptieren nichts anderes.
username: Benutzername
username_help: Der Kontoname, unter dem dich dein Server kennt.
intro: >-
Jeder CalDAV-Server: Nextcloud, Radicale, Baïkal, Fastmail,
iCloud, eine Kiste im Schrank. Kalender von Gmail und Outlook
kommen nicht so herein — die kommen mit dem E-Mail-Konto.
submit: Verbinden und Kalender suchen
title: CalDAV-Server verbinden
count: '%count% Kalender'
default: Standard
delete: Kalender "%name%" löschen
delete_title: Kalender löschen
edit: Kalender "%name%" bearbeiten
empty: Noch keine Kalender.
from: Von %name%
heading: Kalender
hide: Kalender ausblenden
last_synced: 'Zuletzt abgeglichen %when%'
make_default: '"%name%" zum Kalender für neue Termine machen'
make_default_title: Als Standard setzen
mirrored: Gespiegelt
mirrored_hint: Wird mit %name% abgeglichen.
never_synced: Noch nicht abgeglichen
read_only: Nur lesen
read_only_hint: Dieser Kalender nimmt von hier aus keine Änderungen an.
show: Kalender einblenden
sources:
empty: >-
Noch kein Konto und keine Verbindung hier führt Kalender.
Gmail- und Outlook-Konten tun das; für alles andere verbinde
einen CalDAV-Server.
find: Kalender auf %name% suchen
heading: Woher Kalender kommen
why_admin: >-
Vielleicht hat deine Administration der App-Registrierung, mit
der plMail sich anmeldet, keine Kalenderberechtigungen gegeben.
E-Mail funktioniert auch ohne sie; Kalender nicht.
why_consent: >-
Auf Googles Zustimmungsseite lässt sich der Kalenderzugriff
abwählen, während E-Mail erlaubt wird. Verbinde das Konto neu
und lass das Kalenderhäkchen gesetzt.
why_empty: Es erscheinen keine Kalender?
why_none: Vielleicht liegen auf dem Konto schlicht keine Kalender.
subheading: >-
Name, Farbe und Zeitzone, welche Kalender die Ansichten zeigen und
wo ein neuer Termin landet.
subscribe:
default_locked: >-
Hier landen neue Termine, deshalb bleibt dieser. Mach zuerst
einen anderen Kalender zum Standard.
empty: Auf %name% liegen keine Kalender.
intro: >-
Wähle die Kalender auf %name%, die plMail mitführen soll.
Termine erscheinen innerhalb einer Minute.
mirrored: Wird bereits gespiegelt
primary: Haupt
save: Auswahl speichern
title: Meine Kalender finden
unsubscribe_note: >-
Ein abgewählter Kalender wird hier gelöscht. Was darauf aus
deinen E-Mails stammt und nicht vom Kalender, zieht vorher in
deinen Standardkalender um.
sync_now: '"%name%" jetzt abgleichen'
sync_now_title: Jetzt abgleichen
labels:
count: '%count% Labels'
delete: Label "%name%" löschen
edit: Label "%name%" bearbeiten
empty: Noch keine Labels — erstelle eines, oder sie erscheinen nach der ersten Synchronisierung.
heading: Labels
hide: Label ausblenden
show: Label anzeigen
subheading: Labels erstellen, umbenennen und ordnen — und wählen, welche in der Seitenleiste erscheinen.
system: System
profile:
heading: Dein Profil
save: Profil speichern
subheading: Name und Bild, die auf deinen gesendeten Mails erscheinen.
language:
heading: Sprache
subheading: Die Sprache der plMail-Oberfläche. Deine E-Mails bleiben so, wie sie geschrieben wurden.
nav:
sharing: Teilen
accounts: E-Mail-Konten
aliases: Aliase
app_passwords: App-Passwörter
appearance: Darstellung
calendars: Kalender
general: Allgemein
group:
access: Zugriff
calendar: Kalender
mail: E-Mail
personal: Persönlich
health: 'Zustand der Konten'
profile: Profil
filters: Filter
integrations: Integrationen
labels: Labels
notifications: Benachrichtigungen
security: Sicherheit
signature: Signaturen
notifications:
devices:
empty: >-
Noch kein Gerät registriert. Mit dem Schalter oben registrierst
du diesen Browser; eine Handy-App registriert sich selbst.
heading: 'Registrierte Geräte'
never_delivered: 'Noch nichts gesendet'
outcome:
accepted: 'Zugestellt'
failed: 'Fehlgeschlagen'
skipped: 'Nicht gesendet'
subscription-destroyed: 'Entfernt'
remove: 'Entfernen'
remove_confirm: >-
%device% entfernen? Dorthin werden keine Benachrichtigungen mehr
geschickt. Auf dem Gerät selbst wird nichts deinstalliert oder
abgeschaltet, und wenn dessen App weiterhin Benachrichtigungen
möchte, registriert sie sich beim nächsten Start erneut.
removed: >-
Gerät entfernt — dorthin wird nichts mehr geschickt. Es
registriert sich von selbst wieder, wenn seine App weiterhin
Benachrichtigungen möchte.
transport:
fcm: 'Firebase'
webpush: 'Web Push'
unverified: 'Nicht bestätigt'
verified: 'Bestätigt'
heading: Benachrichtigungen
ios_hint: >-
Auf iPhone und iPad funktionieren Benachrichtigungen erst, wenn
plMail zum Home-Bildschirm hinzugefügt wurde: in Safari öffnen, auf
Teilen tippen, dann "Zum Home-Bildschirm", und dort
Benachrichtigungen aktivieren.
state_denied: >-
In deinen Browser-Einstellungen blockiert. Erlaube
Benachrichtigungen für diese Seite und versuche es erneut.
state_error: Etwas ist schiefgelaufen. Versuche es erneut.
state_off: 'Aus — dieses Gerät wird nicht benachrichtigt.'
state_on: An — dieses Gerät wird über neue E-Mails benachrichtigt.
state_pending: Warten auf die Bestätigung dieses Geräts…
state_unconfigured: Push ist auf diesem Server nicht konfiguriert.
state_unknown: Wird geprüft…
state_unsupported: >-
Dieser Browser kann keine Benachrichtigungen empfangen. Füge plMail
auf iPhone und iPad zuerst zum Home-Bildschirm hinzu.
state_working: Wird ausgeführt…
subheading: >-
Lass dich auf diesem Gerät über neue E-Mails benachrichtigen, auch
wenn plMail geschlossen ist.
this_device: Dieses Gerät
toggle: Benachrichtigungen aktivieren
toggle_off: Benachrichtigungen deaktivieren
unconfigured: >-
Push ist auf diesem Server nicht konfiguriert — es sind keine
VAPID-Schlüssel hinterlegt. Führe
"bin/console app:push:generate-vapid-keys" aus.
security:
codes:
copy: Codes kopieren
copy_now: Sichere jetzt deine Wiederherstellungscodes
copy_now_hint: >-
Sie werden nur dieses eine Mal angezeigt. Bewahre sie dort auf, wo
du ohne dein Handy herankommst — in einem Passwortmanager oder auf
Papier in einer Schublade. Jeder Code funktioniert genau einmal.
heading: Wiederherstellungscodes
hint: >-
Mit Wiederherstellungscodes kommst du wieder hinein, wenn du dein
Handy verlierst. Ein neuer Satz ersetzt den alten — was du vorher
notiert hast, funktioniert dann nicht mehr.
regenerate: Neue Codes erzeugen
remaining: '%count% unbenutzt'
confirm_with_code: Code aus deiner App
devices:
empty: >-
Es ist kein Gerät gemerkt. Du wirst bei jeder Anmeldung nach einem
Code gefragt.
expires: 'Läuft ab am %date%'
heading: Gemerkte Geräte
hint: >-
Geräte, die 30 Tage lang nicht nach einem Code fragen. Ein Widerruf
greift sofort — beim nächsten Seitenaufruf wird wieder gefragt.
last_used: 'Zuletzt verwendet %date% von %ip%'
revoke: Widerrufen
revoke_all: Alle gemerkten Geräte widerrufen
revoke_all_confirm: >-
Jedes gemerkte Gerät wird beim nächsten Mal wieder nach einem Code
gefragt, auch dieses. Fortfahren?
revoke_confirm: '%name% nicht mehr vertrauen? Beim nächsten Mal wird wieder nach einem Code gefragt.'
this_device: dieses Gerät
disable:
confirm: >-
Dein Konto ist dann nur noch durch dein Passwort geschützt.
Fortfahren?
heading: Zwei-Faktor-Authentifizierung ausschalten
hint: >-
Das löscht deine Wiederherstellungscodes und widerruft jedes
gemerkte Gerät.
submit: Ausschalten
enable: Zwei-Faktor-Authentifizierung einrichten
enrol:
cancel: Abbrechen
heading: Zwei-Faktor-Authentifizierung einrichten
manual_copy: Schlüssel kopieren
manual_toggle: Geht das Scannen nicht? Schlüssel eingeben
qr_alt: QR-Code zum Einrichten deiner Authenticator-App
step_app: >-
Installiere eine Authenticator-App, falls du noch keine hast —
Google Authenticator, Aegis, 1Password und Bitwarden gehen alle.
step_confirm: Gib den sechsstelligen Code ein, den deine App gerade anzeigt.
step_scan: Scanne das mit der App.
submit: Bestätigen
heading: Zwei-Faktor-Authentifizierung
pitch: >-
Dein Konto ist das, was am meisten Schutz verdient: Wer da
hineinkommt, kann bei allem anderen das Passwort zurücksetzen — denn
in deiner Mail landen die Links dafür. Ein zweiter Faktor sorgt
dafür, dass ein gestohlenes Passwort allein nicht reicht.
status:
off: Zwei-Faktor-Authentifizierung ist aus
on: Zwei-Faktor-Authentifizierung ist an
on_since: 'Aktiviert am %date%'
subheading: Wie du beim Anmelden nachweist, dass du es bist.
sharing:
heading: Teilen
subheading: >-
Links, die jemandem ohne Konto einen Teil deines Kalenders zeigen,
und Seiten, auf denen er eine Stunde davon buchen kann.
signature:
for_alias: 'Signatur für %alias%'
heading: Signaturen
hint: 'Steht am Ende jeder neuen Nachricht, oberhalb des zitierten Textes.'
label: Signatur
overriding: 'Diese Adresse hat jetzt eine eigene Signatur — unten bearbeiten.'
per_address:
count: 'Adressen mit eigener Signatur: %number%'
disclosure: 'Für einzelne Adressen eine andere Signatur verwenden'
inherits: 'Verwendet die Signatur des Kontos.'
override: 'Eigene verwenden'
override_for: '%alias% eine eigene Signatur geben'
revert: 'Signatur des Kontos verwenden'
revert_for: 'Für %alias% wieder die Signatur des Kontos verwenden'
signs_with_nothing: 'Leer — diese Adresse sendet ohne Signatur.'
placeholder: 'Keine Signatur'
reverted: 'Wieder die Signatur des Kontos.'
save: 'Signatur speichern'
saved: 'Gespeichert.'
subheading: 'Was am Ende der Nachrichten steht, die Sie schreiben.'
timezone:
heading: Zeitzone
subheading: Die Uhr, nach der Zeiten und Daten angezeigt werden. Es wird nichts umgeschrieben — derselbe Zeitpunkt wird nur auf deiner Uhr gelesen.
label: Zeitzone
follow_default: 'Server-Standard (%timezone%)'
current_time: 'In dieser Zone ist es gerade %time%.'
title: Einstellungen
sidebar:
accounts:
add: Konto hinzufügen
heading: Konten
loading: Wird geladen…
none: Noch keine Konten
open: '%account% öffnen'
toggle: 'Ordner in %account% ein-/ausklappen'
compose: Schreiben
labels:
add: Label erstellen
heading: Labels
none: Noch keine Labels
new_mail_here: 'Neue Nachrichten in %where%'
nav:
calendar: Kalender
archive: Archiv
drafts: Entwürfe
inbox: Posteingang
more: Mehr
sent: Gesendet
snoozed: Zurückgestellt
spam: Spam
starred: Markiert
trash: Papierkorb
toggle: Seitenleiste ein-/ausblenden
snooze:
later_today: Später heute
next_week: Nächste Woche
pick_date: Datum und Uhrzeit wählen
this_weekend: Dieses Wochenende
tomorrow: Morgen
unsnooze: Zurückholen
snoozed:
empty: Nichts ist zurückgestellt.
heading: Zurückgestellt
until: Kommt %when% zurück
starred:
empty: Keine markierten Nachrichten.
heading: Markiert
tabs:
forums: Foren
primary: Allgemein
promotions: Werbung
social: Soziale Netzwerke
updates: Updates
thread:
no_subject: (kein Betreff)
thread_row:
account: 'Empfangen über %account%'
actions:
archive: Archivieren
cancel_schedule: Geplanten Versand abbrechen
delete: Löschen
mark_read: Als gelesen markieren
mark_unread: Als ungelesen markieren
snooze: Zurückstellen
has_attachment: Enthält Anhang
me: ich
message_count: "({ count })"
new: Dir noch nie angezeigt
new_badge: Neu
no_recipient: (kein Empfänger)
no_subject: (kein Betreff)
scheduled: 'Geplant %when%'
select: Auswählen
star: Diese Nachricht markieren
to: 'An: %recipients%'
unread: Ungelesen
unstar: Markierung dieser Nachricht entfernen
toast:
dismiss: Schließen
schedule_cancelled: Geplanter Versand abgebrochen.
send_cancelled: Senden abgebrochen — zurück zu deinem Entwurf.
undo: Rückgängig
error:
no_archive_mailbox: Es gibt kein Archiv-Postfach.
toolbar:
actions:
archive: Archivieren
delete: Löschen
label: Label vergeben
mark_read: Als gelesen markieren
mark_unread: Als ungelesen markieren
snooze: Zurückstellen
pagination:
next: Älter
of: von
prev: Neuer
select:
all: Alle
none: Keine
read: Gelesene
starred: Markierte
unread: Ungelesene
select_all: Alle Konversationen auswählen
select_menu: Weitere Auswahloptionen
spam:
empty: Keine Spam-Nachrichten.
heading: Spam
trash:
empty: Keine gelöschten Nachrichten.
heading: Papierkorb
two_factor:
cancel: Als jemand anderes anmelden
flash:
code_rejected: Der Code stimmt nicht. Sieh in deiner App nach und versuch es nochmal.
codes_regenerated: Neue Wiederherstellungscodes erzeugt. Die alten funktionieren nicht mehr.
device_revoked: Dieses Gerät wird beim nächsten Mal wieder nach einem Code gefragt.
devices_revoked: Es ist kein Gerät mehr gemerkt.
disabled: Zwei-Faktor-Authentifizierung ist aus.
enabled: Zwei-Faktor-Authentifizierung ist an.
form:
code: Bestätigungscode
code_hint: >-
Der sechsstellige Code aus deiner Authenticator-App oder einer deiner
Wiederherstellungscodes.
submit: Weiter
submitting: Wird geprüft…
trust_device: Auf diesem Gerät nicht mehr fragen
trust_device_hint: Für 30 Tage. Du kannst das jederzeit unter Einstellungen → Sicherheit widerrufen.
page_title: Zwei-Faktor-Authentifizierung
recovery_hint: >-
Handy verloren? Nimm einen der Wiederherstellungscodes, die du beim
Einrichten gesichert hast.
tagline: Noch ein Schritt