mirror of
https://github.com/karatektus/pl_mail.git
synced 2026-10-25 10:04:18 +00:00
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>
2596 lines
124 KiB
YAML
2596 lines
124 KiB
YAML
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 Kalendersynchroni
|
||
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% Hintergrundaufgaben 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% Hintergrundaufgaben 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
|