mirror of
https://github.com/karatektus/pl_mail.git
synced 2026-10-25 01:54:10 +00:00
* Run the end-to-end suite on pull requests into milestone and wip branches
A release's work is now collected on a milestone branch (milestone/v0.4.0)
before it reaches main, and the suite only ran on pull requests into main,
so nothing proposed for the milestone was tested. `milestone/**` joins
`main`, and `wip/**` comes along from wip/28, where it already runs the
suite on the phases of #28 — the same block on both, so they merge
without a conflict.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
(cherry picked from commit d009ff72ad)
* linked-issue: read the description of a pull request into a milestone branch (#254)
GitHub links an issue from "Closes #N" only in a pull request into the
default branch. Into milestone/v0.3.8 or a wip/ branch the closing
references stay empty, so the check failed on every such pull request
however its description named the issue (#252 was the first). For a pull
request into another branch, the description is now read for the same
keywords GitHub accepts.
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
* The release pull request is the suite run behind a tag (#252)
Releasing asked for the E2E workflow to be started by hand on main before
a tag. Since main became protected, the Release vX.Y.Z pull request cannot
merge until that workflow is green on it, and its commit is what is tagged,
so a manual run only ran the same jobs twice. Releasing now says so, and to
update the branch if main moved after its checks ran, since the protection
does not ask for up-to-date branches.
The paragraph in CONTRIBUTING and the header of e2e.yml that said main is
not verified commit by commit describe main before it was protected; both
now describe it as it is.
Closes #251
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
* Calendar on a phone: a readable month, a toolbar and top bar that fit, a live now line (#256)
The month chip is its title first, on up to two lines, then its time range
and place; a narrower day drops the end and the place for a third line of
title, long words are hyphenated, and an unanswered invitation has a
dashed bar. Below 39rem, where a day is bars, the grid shrinks and the
chosen day is listed in full under it: today at first, any tapped day
after, with a + for that day that the toolbar's + follows too. On a wider
touch screen the first tap opens a day's card and the second its entry
(calendar--month-tap, and a day-open: variant that the hover and the tap
share).
The calendar toolbar fits below 37rem with icons, a short date label and
smaller buttons, and under 22rem today's date in a box for Today. English
writes a same-month week as "Oct 20-26" (range_short_month). The top bar
tightens below 640px and moves Sync now, What's new and Send feedback into
the user menu. Dialogs are the whole screen below 768px, as compose is.
calendar--now moves the now line every minute on the view's clock and
redraws a view that shows the old day or the new one when the date
changes, which also moves the month's circle on today.
And a + on a day that has gone opened the editor on today:
DefaultEventStart::onDay pulled any past day to the next hour. A past day
now keeps its date.
Closes #253
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
* Close an issue when its pull request is merged into a milestone branch (#260)
GitHub acts on "Closes #N" only for merges into the default branch, so
issues fixed on a milestone branch stayed open until the release reached
main. A workflow on merged pull requests into milestone/** now closes the
issues the description names, with a comment linking the pull request.
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
* Preview the reply, not the quote, and send replies with their quote visible (#258)
The list preview flattened the whole body and skipped short blocks to find
the first long one, so a one-line reply previewed as its attribution line or
the quoted mail. The quoted history (same seam as the reading view's "···")
and a "-- " signature are cut off first now, in HTML and plain text, and the
chrome skip only applies to bulk mail. The JMAP preview uses the same code.
The composer folded the quote with an inline display: none and its clean-up
removed only the toggle, so replies went out with an invisible quote. The
fold is removed in the editor and again on the server, and the reading view
reveals a folded quote in mail already received.
Closes #257
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
* Move a thread's unread count when JMAP marks a message read or unread (#267)
EmailPatchApplier wrote seenAt for $seen and left MessageThread::$unreadCount alone, so the web list (which draws bold from that counter) disagreed with the phone app. $seen now goes through ThreadStatusUpdater::markRead(), the web UI's own path, and markRead() counts the whole thread rather than the messages passed in.
Closes #266
Co-authored-by: Philippe Delodder <7259755+phdelodder@users.noreply.github.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
* Leave a message that is already in the destination folder where it is (#270)
Trashing a conversation with a message already in the bin queued that message as a move from Trash into Trash. webklex's move() then left the connection in EXAMINE and the server refused it ("NO Not permitted in EXAMINE state"), and the row had already lost its UID. ApplyImapFlagsHandler no longer sends a move into the folder a message is in (and gives the row its UID back), and ThreadStatusUpdater's trash(), archive() and restore() leave such messages out of the move.
Closes #269
Co-authored-by: Philippe Delodder <7259755+phdelodder@users.noreply.github.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
* Hide a conversation from the lists only when all of it is in the bin (#272)
A thread's labels are the union of its messages', so one deleted message put Trash on the thread and took the whole conversation out of the Inbox, its tab, label lists, All Mail, Unread, the badges and search, along with any reply threaded into it afterwards. The bin rule is now "carries Trash and has no message outside it", written once (binnedThreads()) for every list and badge and spelled out the same way in the search SQL. Option (b) of the issue.
Closes #268
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
* Let a long message scroll in the expanded compose window (#273)
expandedValueChanged() used closest('div') to reach the editor's wrapper, but closest() starts at the element itself and the editor is a div, so the wrapper never became a flex container and the editor stayed 170px tall, clipped by [contain:paint]. The wrapper is now the flex column and the editor grows (1 0 auto) to fill the window or its content; the plain-text field fills the expanded window too.
Closes #262
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
* Write each changelog entry as a file of its own, collected at release (#275)
Every pull request added its paragraph under ## Unreleased in CHANGELOG.md at the same place, so the second of any two conflicted with the first once it merged, and each conflict fix re-ran the whole E2E suite. A pull request now adds changelog.d/<issue>-<words>.md; bin/changelog-release.sh, run in the Release vX.Y.Z pull request, collects the fragments (highlights first) and anything still under ## Unreleased into the release's section and deletes them. CHANGELOG.md stays the one file What's new, bin/release-notes.sh and GitHub read.
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
* Say which step failed when notifications can't be turned on (#278)
Every failure in the enable path (registering the service worker, the
browser's push subscription, the server's answer) ended in the same
"Something went wrong" and the exception was dropped, so a report from a
Pixel 8 could not say which. The pane now names the step and the
DOMException name or HTTP status, and logs the exception to the console.
Closes #277
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
* Contacts: one address book, with Google, Outlook, Nextcloud and CardDAV contacts in it (#282)
A contacts page and pane for plMail's own contacts and the ones on a server:
Google and Outlook on the mail account's own sign-in, Nextcloud through the
Nextcloud connection, any CardDAV server through Settings -> Contacts. Every
field a phone keeps, the photo included, syncs both ways. Duplicates merge
with 90 days to undo; vCard and CSV import and export; contacts suggested
while composing; JMAP Contact/get, /query and /set. Nextcloud calendars come
with the Nextcloud connection too.
Replaces #237 and #109 by @jo2904 and #244 by @DanversKara.
Closes #157
Closes #236
Co-authored-by: jo2904 <jo2904@users.noreply.github.com>
Co-authored-by: DanversKara <DanversKara@users.noreply.github.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
* Install APCu and Xdebug with PIE instead of from PECL (#286)
PECL is deprecated in favour of PIE and was down for most of an evening on 2026-10-21, failing every image build. PIE 1.5.2 now installs APCu (and Xdebug in the dev image) from the extensions' own releases; it is mounted for that one step and not left in the image. Nothing changes at runtime.
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
* Keep contact photos where the web container can serve them (#287)
Contact photos were stored in var/contacts, outside the volumes the web and worker containers share, so synced photos answered 404. They now live under APP_STORAGE_DIR/uploads/contacts; a migration clears the lost paths and has synced books read again so the photos come back.
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
* Match a contact's email addresses in any case (#288)
Addresses are stored lower-cased but were matched as the provider spelled them, so a pull removed and re-inserted the same address and broke the unique key (prod sync failure). They are now matched in their stored form.
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
* Open a contact's reference email in the mail pane (#294)
A click on one of a contact's reference emails in the docked contacts
pane was a Turbo visit inside the contacts frame, which blanked the mail
pane. The click is now offered to the mail pane as a mail-pane:open
event; the pane opens the message beside the contact. Without a mail
pane (the full contacts page) it stays an ordinary visit.
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
* Open mail beside the full Contacts page without a reload (#297)
The full Contacts page was a page of its own, so a reference email
clicked there was a visit: the contact was gone, and on a notebook the
mailbox came back on the calendar it remembered.
The full page is now the mailbox with data-contacts-full on the shell:
the mail column put away and the contacts dock given the row, with the
page's own content in the dock's frame. Opening a message from it loads
the message into the existing mail pane, then contacts--pane#reveal
drops the state in a view transition: the mail slides in from the left
and the dock narrows to its width, the same DOM throughout. On a
notebook the calendar gives way; on a wide screen it stays.
The reference links lose data-turbo-frame="_top", which made ui--split
stash a calendar position for a visit that never came.
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
* Preview image and video attachments on click, like PDFs (#295) (#298)
Clicking an image or video attachment chip opens a viewer in the modal
instead of downloading. Previewable chips (PDF included) get a download
half on the right. Images load from the existing attachment route; videos
from a new /mail/attachment/{id}/video route that serves a fixed video
type inline under the sandbox CSP and answers Range requests.
Closes #295
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
* Erase a message's parts with it, and delete mail one way (#300)
MessageEraser loaded a message's parts to delete their files, then removed
only the message. After the delete Doctrine forgot the message but kept the
parts managed, so the next flush in the same unit of work failed with "a new
entity was found through the relationship MessagePart#message". Every sync
that removed server-deleted mail with an attachment failed that way.
The eraser now removes the parts, removes a thread it empties (announced to
JMAP as destroyed), and logs file-delete failures instead of keeping the row.
MessagePurger hands its local delete to the eraser, so "delete forever" gains
the thread-label re-sync it lacked. ImapAccountSyncer clears an entity manager
a failed folder left open, so one folder's refused flush no longer fails the
rest.
Closes #299
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
* Rework the contact editor: quick add, paste details and Improve with AI (#305) (#306)
New contacts start in quick add: paste a name, signature, address line or
vCard and the details it finds are listed, each with a one-click type. The
editor shows the name as one field whose parts fill themselves (titles and
degrees included), rows that appear as you type, Paste details for existing
contacts and a Save to picker. Contact help is a new AI feature, off by
default, that rereads pasted text and suggests updates from the signature
of a contact's newest mail. Phones are read with libphonenumber.
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
* Keep spam off the radar and out of search; add a Not spam button (#308)
Cards read out of mail in Spam are left off the Happening Soon panel and
the mailbox strip (read-time filter, so moving the mail out brings them
back), and a spam conversation no longer shows its cards above the
message. The bin keeps its cards. Search and the type-ahead leave Spam
out unless asked with in:spam, as they already did for the bin. A spam
conversation's toolbar gets a Not spam button that moves it to the inbox.
Closes #304
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
* Add to contacts asks new or existing; contacts button gets the calendar's three positions (#312)
Closes #309
Closes #311
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Show the pictures a review request hid, dropped or never asked for (#274)
* Show the pictures a review request hid, dropped or never asked for
A BAUHAUS review request, sent through Bazaarvoice, showed neither its
logo nor its product photos, with images allowed. The image proxy was
fine; three steps around it were not.
- The logo is linked as http://. The sanitizer keeps http sources and
leaves them to render time, the fetcher only connects over TLS, and
nothing in between upgraded the URL, so every http image became the
placeholder. RemoteContentBlocker now signs the https:// form. The
fetcher's own rules also say in the log which one refused a target;
until now that refusal was the one silent path.
- The first product card sits inside a <form>, and dropElement('form')
took the photo, the name and the star links with it. The form is
unwrapped now; textarea and select still go with their content.
- Each card is class="d" style="display:none", switched on with
.d {display:block !important}. CssToInlineStyles keeps an inline
property whatever the rule says, so the card stayed hidden next to its
Outlook twin. Html5CssInliner now lets a stylesheet !important beat a
plain inline style, and matches selectors against forms as the divs
the reader will see, so `form .a` rules take the sender's fallback
for clients without forms.
app:backfill safe-html-hidden-cards
re-sanitizes stored mail with a form or a stylesheet !important. One
task for both, because neither fix brings the card back alone.
Closes #271
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Mark the German mail page as translated from the current English one
Both pages gained the same two paragraphs in the previous commit, but
the translated-from hash still named the English page before them, so
DocumentationCoverageTest reported the translation as stale.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Credit the image proxy entry and keep it as a changelog fragment
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Paul Lützner <karatektus@gmail.com>
* Swipe a mail row, choose what each swipe does, and long-press for its actions on a phone (#314)
On a phone, below md and by touch only: a row swipes right for read/unread and left for archive, each direction set under Settings → Mail → Swipe actions (read/unread, archive, star, nothing; never trash), and holding a row opens an action sheet with every action its strip offers. Mouse, trackpad and wider windows are unchanged.
Takes over #117, #118 and #119, whose fork was archived. Also gives the Contacts settings' two cards their gap.
Co-authored-by: Flouss <15911342+Flouss@users.noreply.github.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
* Admin → Integrations lists the calendar services, so a pinned CalDAV address can be changed later (#279)
CalDAV and Calendar feed get their own group below the file services, with the shared provider row and Configure form; Nextcloud stays with the file services. Calendar services are offered to everyone, so their rows say so and the form has no switch. The server address accepts only http or https, up to 512 characters.
Once people have connected, the CalDAV form says how many connections a changed or cleared pin reaches. A calendar feed offers its address only while one is stored, so it can be cleared.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Offer an address book another connection already mirrors locked, not as new (#319)
Two connections to the same server, a Nextcloud one and a CardDAV one made by hand, reach the same address book under the same remote id. Settings → Contacts now offers such a book locked, saying which connection has it, and refuses a posted tick, as it does for calendars. Otherwise every contact in it showed twice.
Closes #317
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Gmailify: the IMAP folder places a sibling's mail, Gmail deletions detach, and a switch to turn it off (#204)
Closes #203
Closes #205
- A sibling's IMAP copy keeps the placement its folder gives it; Gmail's INBOX/SENT/DRAFT/TRASH/SPAM no longer move it (by @phdelodder).
- Gmail deleting its copy detaches the sibling's IMAP copy instead of erasing it.
- app:backfill gmailify-placement repairs copies the old merge had moved.
- Settings → Aliases: a Gmailify switch per Gmail account. Off detaches carried copies in a background job and declines mail Gmail still collects for another account (Bcc'd mail excepted, as documented).
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
* Gmail sync: look up only the listed ids, not every stored one (#321)
Part of #223: newGmailIds() asks only about the ids Gmail just listed, and nothing when none were.
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
* Store whether a conversation is in the bin, kept by triggers (#322)
Part of #223: message_thread.binned holds #268's rule, kept by triggers on message_label, thread_label and message; lists, badges and search read the column. Identical results on 41 compared queries, most 5-100x faster on a 67k-thread mailbox.
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
* Account sync: wait out a provider that can't be reached, quietly (#333)
When the worker couldn't connect to the Gmail or Graph API at all, the
account sync went up Messenger's retry ladder: a WARNING with three nested
stack traces per attempt, then CRITICAL and a parked job if the outage
lasted. That job resumes from a cursor and is asked for again every
quarter hour, so nothing was ever lost.
WaitOutConnectionFailures now puts a SyncAccountMessage that failed only
with an HttpClient TransportException back on its own queue, on the
ingest ladder's delays, with one info line per attempt. After five waits
it is dropped with a single warning. Message batches and every other
failure keep the normal path.
Closes #332
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
---------
Co-authored-by: Sven Joder <sj@pmdevelopment.de>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Philippe Delodder <7259755+phdelodder@users.noreply.github.com>
Co-authored-by: jo2904 <jo2904@users.noreply.github.com>
Co-authored-by: DanversKara <DanversKara@users.noreply.github.com>
Co-authored-by: Flouss <15911342+Flouss@users.noreply.github.com>
4993 lines
265 KiB
YAML
4993 lines
265 KiB
YAML
account:
|
||
add_title: Konto hinzufügen
|
||
added: Konto wurde hinzugefügt
|
||
colour_set: Kontofarbe geändert
|
||
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
|
||
password: Passwort zum Senden
|
||
same: Zum Senden dasselbe Passwort verwenden
|
||
separate: Zum Senden ein anderes Passwort verwenden
|
||
username: Benutzername
|
||
oauth:
|
||
calendar_declined: Das Konto ist verbunden, aber der Kalenderzugriff wurde nicht erteilt — seine Kalender werden also nicht synchronisiert. Verbinde es neu und hak auf Googles Zustimmungsseite den Kalenderzugriff an.
|
||
google: Weiter mit Google
|
||
info: Melde dich bei deinem Anbieter an — es wird kein Passwort gespeichert.
|
||
microsoft: Weiter mit Microsoft
|
||
primary_set: Primäres Konto geändert
|
||
removed: Konto entfernt
|
||
tabs:
|
||
imap: IMAP / SMTP
|
||
oauth: OAuth
|
||
test:
|
||
button: Verbindung testen
|
||
hint:
|
||
expects_ssl: 'Port %port% erwartet normalerweise direktes SSL/TLS.'
|
||
expects_starttls: 'Port %port% erwartet normalerweise STARTTLS, nicht direktes SSL/TLS.'
|
||
no_encryption: 'Die Verschlüsselung steht auf „Keine“ — die meisten Anbieter verlangen SSL/TLS oder STARTTLS.'
|
||
imap: IMAP
|
||
request_failed: 'Der Test konnte nicht laufen (%status%).'
|
||
result:
|
||
auth: 'Der Server hat Benutzername oder Passwort abgelehnt.'
|
||
failed: 'Die Verbindung hat nicht geklappt. Prüf Host, Port und Verschlüsselung.'
|
||
host_invalid: 'Gib nur einen Hostnamen oder eine IP-Adresse ein — ohne Schrägstriche, Fragezeichen oder @.'
|
||
imap_ok: 'Verbunden — %count% Ordner sichtbar.'
|
||
missing_fields: 'Gib zuerst mindestens eine E-Mail-Adresse und einen IMAP-Host ein.'
|
||
missing_password: 'Kein Passwort zum Testen. Gib oben eins ein — beim Bearbeiten behält ein leeres Feld das gespeicherte Passwort, und das kann der Test erst nutzen, wenn das Konto gespeichert ist.'
|
||
smtp_none: 'Kein SMTP-Host eingetragen — Senden ist für dieses Konto aus.'
|
||
smtp_ok: 'Verbunden und angemeldet.'
|
||
timeout: 'Der Server hat nicht rechtzeitig geantwortet. Prüf Host und Port und ob eine Firewall dazwischen ist.'
|
||
tls: 'Die sichere Verbindung ist gescheitert — das Zertifikat wurde nicht akzeptiert, oder die Verschlüsselung passt nicht zum Port.'
|
||
unreachable: 'Der Server war nicht erreichbar. Prüf Hostnamen und Port.'
|
||
smtp: SMTP
|
||
updated: Konto aktualisiert
|
||
|
||
admin:
|
||
accounts:
|
||
account: 'Konto'
|
||
heading: 'Konten'
|
||
last_activity: 'Letzte Aktivität'
|
||
messages: 'Nachrichten'
|
||
threads: 'Konversationen'
|
||
address:
|
||
field:
|
||
public_url: Öffentliche Adresse
|
||
public_url_help: >-
|
||
Unter dieser Adresse ist plMail von außen erreichbar, mit http:// oder
|
||
https:// davor und ohne Pfad. Gmail und Outlook schicken
|
||
Push-Benachrichtigungen dorthin zurück, dafür muss sie aus dem Internet
|
||
über https erreichbar sein.
|
||
follow_up: >-
|
||
Was woanders eingetragen ist, zieht nicht von selbst mit: die
|
||
Weiterleitungsadressen in den Konsolen von Google und Microsoft, ein
|
||
Pub/Sub-Push-Endpunkt für Gmail und die Serveradresse in Mail- und
|
||
Kalender-Apps. Browser-Benachrichtigungen musst du auf jedem Gerät neu
|
||
einschalten.
|
||
heading: Öffentliche Adresse
|
||
in_use: Derzeit verwendet
|
||
intro: >-
|
||
Aus dieser Adresse baut plMail seine eigenen Links: wohin sich Browser für
|
||
Live-Aktualisierungen verbinden und wohin Google und Microsoft
|
||
zurückrufen sollen. Ändere sie, wenn die Installation auf eine andere
|
||
Domain, einen anderen Port oder hinter einen anderen Proxy zieht, oder
|
||
nachdem du eine Sicherung von einer anderen Maschine eingespielt hast.
|
||
none: keine
|
||
on_file: Gespeichert
|
||
pending: >-
|
||
Die gespeicherte Adresse ist nicht die verwendete. Eine Änderung greift,
|
||
sobald die Container neu starten. Weichen die beiden nach einem Neustart
|
||
immer noch voneinander ab, ist APP_PUBLIC_URL in der Compose-Datei
|
||
gesetzt, und das hat Vorrang.
|
||
restart_help: >-
|
||
Für Live-Aktualisierungen reicht es, plMail hier neu zu starten. Starte
|
||
zusätzlich den ganzen Stack neu, damit die Worker Push unter der neuen
|
||
Adresse anmelden.
|
||
save: Adresse speichern
|
||
saved: 'Gespeichert — greift beim nächsten Neustart.'
|
||
ago: 'vor %age%'
|
||
ai:
|
||
backfill:
|
||
chip:
|
||
complete: 'Fertig'
|
||
failed: 'Abgebrochen'
|
||
idle: 'Läuft nicht'
|
||
paused: 'Pausiert'
|
||
running: 'Läuft'
|
||
stalled: 'Bewegt sich nicht'
|
||
eta: 'Etwa %duration%, bei dem Tempo'
|
||
eta_label: 'Rest'
|
||
eta_settling: 'Für eine Schätzung zu früh'
|
||
failed_body: 'Der Modell-Host hat mehrmals hintereinander nichts geliefert, deshalb wurde der Durchlauf beendet. Es ist nichts verloren: Fortsetzen macht dort weiter, wo es war.'
|
||
failures: '%count% Nachrichten, für die das Modell nichts geliefert hat. Der nächste Durchlauf holt sie nach.'
|
||
failures_label: 'Übersprungen'
|
||
finished_label: 'Fertig'
|
||
heading: 'Suchindex'
|
||
intro: 'Die Suche nach Bedeutung sieht nur indexierte Mail. Das hier geht einmal durch alle Postfächer; danach wird neue Mail kurz nach einer Suche indexiert und einmal pro Nacht zur Sicherheit.'
|
||
last_activity_label: 'Zuletzt gemeldet'
|
||
model_label: 'Indexiert mit'
|
||
no_mail: 'Es gibt noch keine Mail zum Indexieren.'
|
||
outcome:
|
||
already_running: 'Es läuft bereits ein Durchlauf.'
|
||
no_mailboxes: 'Es gibt keine Postfächer, die durchlaufen werden könnten.'
|
||
not_running: 'Es läuft nichts.'
|
||
nothing_to_resume: 'Es gibt nichts mehr fortzusetzen.'
|
||
resumes_itself: 'Es kommt von selbst wieder.'
|
||
search_off: 'Die Suche nach Bedeutung ist aus, es gibt also nichts zu indexieren.'
|
||
pause: 'Pausieren'
|
||
paused:
|
||
feature_off: 'Angehalten, weil die Suche nach Bedeutung ausgeschaltet wurde.'
|
||
host_unreachable: 'Wartet darauf, dass der Modell-Host wieder antwortet. Es versucht es von selbst erneut.'
|
||
interactive: 'Pausiert, solange die Schreibhilfe gerade benutzt wird. Kurz danach läuft es von selbst weiter.'
|
||
operator: 'Pausiert. Es geht dort weiter, wo es aufgehört hat.'
|
||
progress: '%embedded% von %eligible% Nachrichten indexiert'
|
||
rate: '%rate% Nachrichten pro Sekunde, über die letzten fünf Minuten'
|
||
rate_label: 'Tempo'
|
||
resume: 'Fortsetzen'
|
||
search_off: 'Die Suche nach Bedeutung ist aus, es gibt also nichts zu indexieren. Schalte sie oben zuerst ein.'
|
||
stalled_body: 'Seit einer Weile bewegt sich nichts — der Worker, der das gemacht hat, ist vermutlich weg. Fortsetzen nimmt es dort wieder auf, wo es aufgehört hat.'
|
||
start: 'Starten'
|
||
started_label: 'Gestartet'
|
||
tuning: '%batch% Nachrichten pro Durchgang, %delay% s Pause dazwischen, und es hält sich %cooldown% s zurück, nachdem jemand die Schreibhilfe benutzt hat.'
|
||
duration:
|
||
hours: '%count% Std.'
|
||
minutes: '%count% Min.'
|
||
seconds: '%count% s'
|
||
embedding_preset:
|
||
heading: 'Gemessene Voreinstellungen — ein Klick setzt Modell, Anweisung und Schwelle gemeinsam:'
|
||
all-minilm: 'Klein und schnell: 45 MB und 384 Dimensionen, für Maschinen mit wenig Speicher. Vor allem Englisch — auf deutscher Mail also das schwächste hier. Braucht keine Anweisung.'
|
||
nomic-embed-text: 'Was plMail früher empfohlen hat, für Installationen, die schon darauf laufen. Ehrlich gesagt nur halb unterstützt: es will auch seine Dokumente beschriftet haben, nicht nur die Anfragen, und das macht plMail nicht — gemessen bringt die Anweisung allein nichts.'
|
||
qwen3-embedding_0_6b: 'Die Voreinstellung, und ohne besonderen Grund die richtige Wahl. Mehrsprachig, was für ein Postfach, das nicht nur eine Sprache spricht, mehr zählt als jeder Benchmark — und das einzige hier, das im Test perfekte Präzision erreicht hat. 639 MB.'
|
||
field:
|
||
base_url: 'Modell-Host'
|
||
contact_help: 'Kontakthilfe'
|
||
contact_help_help: 'Liest einen Kontakt aus eingefügtem Text und schlägt Korrekturen anhand der Signatur der letzten Mail vor. Nutzt das Schreibmodell und schickt ihm diesen Text.'
|
||
embedding_base_url: 'Such-Host'
|
||
embedding_own: 'Die Suche nutzt einen anderen Modell-Host'
|
||
embedding_own_help: 'Wenn das Such-Modell woanders laufen soll als das Schreib-Modell: ein gehostetes Modell zum Schreiben und ein kleines zu Hause für die Suche, oder umgekehrt. Jede Nachricht geht einmal an den Such-Host, um indiziert zu werden. Heißt das Such-Modell dort gleich, bleibt der vorhandene Index erhalten.'
|
||
embedding_provider: 'Anbieter des Such-Hosts'
|
||
headers: 'Zusätzliche Header'
|
||
headers_clear: 'Gespeicherte Header entfernen'
|
||
headers_help: 'Einer pro Zeile, geschrieben Name: Wert. Gehen mit jeder Anfrage an den Modell-Host, für einen Proxy oder ein Gateway, das mehr als ein Token verlangt. Verschlüsselt gespeichert und nie wieder angezeigt.'
|
||
headers_help_set: 'Hinterlegt: %names%. Leer lassen, um sie zu behalten. Was du hier eintippst, ersetzt alle; die gespeicherten Werte werden nie angezeigt.'
|
||
provider: 'Anbieter'
|
||
provider_help: 'Welche API der Modell-Host spricht. Über Ollama weiß plMail am meisten: Es kann ein Modell geladen halten und eines vorab laden. OpenAI-kompatibel deckt fast alles andere ab, im eigenen Netz oder gehostet.'
|
||
base_url_help: 'Bei Ollama die Adresse des Containers in deinem Netz, mit Port. Bei einem OpenAI-kompatiblen Endpunkt die Wurzel der API samt Version, etwa https://api.example.com/v1.'
|
||
categorisation: 'Mail in Tabs einsortieren'
|
||
categorisation_help: 'Läuft bei jeder eingehenden Nachricht. Immer nur als Stichentscheid — zuerst entscheiden die normalen Regeln.'
|
||
chat_keep_alive: 'Schreib-Modell geladen lassen für'
|
||
chat_keep_alive_help: '5m, 30m, 4h oder einfach eine Zahl in Sekunden. -1 lässt es dauerhaft geladen, 0 entlädt es nach jeder Anfrage. Je länger, desto schneller kommt die erste Antwort — der Host hält den Speicher aber die ganze Zeit belegt. Leer lassen, um das zu nehmen, was am Host selbst eingestellt ist.'
|
||
chat_model: 'Schreib-Modell'
|
||
chat_model_help: 'Für Antworten, Zusammenfassungen und das Einsortieren. Nimm ein instruction-tuned Modell.'
|
||
embedding_keep_alive: 'Such-Modell geladen lassen für'
|
||
embedding_keep_alive_help: 'Gleiches Format wie oben. Dieses Modell ist klein und wird ständig gebraucht, deshalb kostet -1 — dauerhaft geladen — meist kaum etwas und spart bei jeder Suche eine Wartezeit; wenn der Host den Speicher übrig hat, lohnt es sich. Leer lassen, um das zu nehmen, was am Host selbst eingestellt ist.'
|
||
embedding_model: 'Such-Modell'
|
||
embedding_model_help: 'Wandelt Mail in Vektoren um, damit die Suche Bedeutung statt Wörter findet.'
|
||
hold: 'Auf den Assistenten warten, bevor neue Mail in einem Tab erscheint'
|
||
hold_help: 'Für alle, die ihre Mail vom Assistenten sortieren lassen. Neue Mail bleibt für den Moment, den der Assistent braucht, aus den Posteingangs-Tabs heraus — sie erscheint dann einmal, im richtigen Tab, statt in einem aufzutauchen und in einen anderen zu wandern. Mail aus dem ersten Import wird nie zurückgehalten.'
|
||
hold_max_seconds: 'Höchstens warten (Sekunden)'
|
||
hold_max_seconds_help: 'Danach wird die Mail dort angezeigt, wo die normalen Regeln sie einordnen — egal, was der Assistent gerade tut — und verschoben, falls der Assistent später antwortet. Zwischen 2 und 300.'
|
||
search_query_instruction: 'Anweisung für die Suchanfrage'
|
||
search_query_instruction_help: 'Wird vor den Suchtext gesetzt, bevor er in einen Vektor umgewandelt wird. Die meisten Modelle brauchen eine und antworten ohne sie schlecht; für Modelle ohne lässt du das Feld leer. Betrifft nur Suchanfragen — du musst deine Mail dafür nie neu indexieren.'
|
||
semantic_min_similarity: 'Mindest-Ähnlichkeit'
|
||
semantic_min_similarity_help: 'Wie nah ein Treffer sein muss, von 0 bis 1. Jedes Modell hat seine eigene Skala, deshalb gehört der Wert zum Modell darüber: zu hoch findet nichts, zu niedrig liefert das ganze Postfach.'
|
||
enabled: 'Sprachmodell verwenden'
|
||
enabled_help: 'Standardmäßig aus. Solange das aus ist, wird alles darunter ignoriert.'
|
||
search: 'Nach Bedeutung suchen'
|
||
search_help: 'Ergänzt Treffer, die zu dem passen, was du gemeint hast. Die normale Suche bleibt unverändert.'
|
||
summary: 'Zusammenfassungen von Gesprächen'
|
||
summary_help: 'Nutzt das Schreibmodell. Eine kalte Anfrage dauert etwa eine Minute und belegt so lange die GPU.'
|
||
token: 'Token'
|
||
token_help: 'Nur nötig, wenn du den Host hinter etwas gestellt hast, das danach fragt. Geht als Bearer-Token mit jeder Anfrage.'
|
||
token_help_set: 'Ein Token ist hinterlegt. Leer lassen, um es zu behalten. Änderst du oben die Adresse, ohne eines einzutippen, wird es verworfen.'
|
||
writing_help: 'Beim Schreiben helfen'
|
||
writing_help_help: 'Bietet im Editor Entwürfe und Umformulierungen an, wenn du danach fragst.'
|
||
heading: 'Sprachmodell'
|
||
headers:
|
||
summary: 'Zusätzliche Header für einen Proxy oder ein Gateway'
|
||
hold:
|
||
details: 'Jede Nachricht ansehen'
|
||
measured: 'Letzte 7 Tage: %count% Nachrichten zurückgehalten, typischerweise %median% s (95 % innerhalb von %p95% s). %timeout% wurden ohne Antwort angezeigt, weil die Wartezeit abgelaufen war.'
|
||
no_data: 'In den letzten 7 Tagen wurde keine Mail zurückgehalten — es gibt noch keine Verzögerung zu berichten.'
|
||
intro: 'plMail kann ein Sprachmodell benutzen, auf einer Maschine, die du selbst betreibst, oder an einem Endpunkt deiner Wahl. Mails gehen an die Adresse, die du hier einträgst, und sonst nirgendwohin. Nichts wird eingeschaltet, bis du es sagst, und solange das aus ist, funktioniert der Mail-Client genau wie bisher.'
|
||
perf:
|
||
by_model: 'Nach Modell'
|
||
chip:
|
||
cold: 'Nichts geladen'
|
||
off: 'Aus'
|
||
answering: 'Antwortet'
|
||
split: 'Teils auf der CPU'
|
||
unreachable: 'Keine Antwort'
|
||
warm: 'Geladen'
|
||
feature:
|
||
thread_summary: 'Zusammenfassungen'
|
||
categorise: 'Mail einsortieren'
|
||
mail_index: 'Mail indexieren'
|
||
search_query: 'Suche'
|
||
writing_help: 'Schreibhilfe'
|
||
heading: 'Modell-Host'
|
||
latest: 'Letzte Anfrage: %feature% mit %model%'
|
||
model:
|
||
chat: 'Schreib-Modell'
|
||
embedding: 'Such-Modell'
|
||
missing: 'nicht auf diesem Host'
|
||
missing_body: 'Ein hier eingetragenes Modell ist auf dem Host nicht installiert. Zieh es dort, oder trag eines ein, das vorhanden ist — bis dahin scheitert jede Anfrage dafür.'
|
||
none: 'nicht gesetzt'
|
||
resident: 'im Speicher'
|
||
no_history: 'In diesem Zeitraum hat nichts ein Modell gefragt. Die Zahlen erscheinen, sobald etwas es tut.'
|
||
no_host: 'Es ist noch kein Modell-Host eingetragen. Trag oben seine Adresse ein.'
|
||
off_body: 'Die KI ist aus, es wird also kein Modell gefragt. Hier ist nichts kaputt.'
|
||
resident:
|
||
cold_cost: 'Zuletzt hat das etwa %duration% gedauert.'
|
||
full: '%size% im Speicher, vollständig auf der GPU.'
|
||
heading: 'Gerade im Speicher'
|
||
none: 'Es ist kein Modell geladen. Die nächste Anfrage lädt eines.'
|
||
split: '%vram% von %size% auf der GPU — %percent% %. Die übrigen %cpu% liegen auf der CPU.'
|
||
split_body: 'Solange das Modell geteilt ist, ist alles um ein Vielfaches langsamer. Gib GPU-Speicher frei oder nimm ein kleineres Modell und lade es neu.'
|
||
unloading: 'Wird gerade entladen.'
|
||
unloads_in: 'Wird in %duration% entladen, falls nichts danach fragt.'
|
||
retrying: 'Wird alle paar Sekunden erneut geprüft.'
|
||
table:
|
||
calls: 'Anfragen'
|
||
cold: 'Kaltstarts'
|
||
errors: 'Fehler'
|
||
feature: 'Aufgabe'
|
||
gen: 'Token/s (p50 / p95)'
|
||
hint: 'p50 ist die mittlere Anfrage, p95 die langsame: die Hälfte war schneller als p50, jede zwanzigste langsamer als p95. Ein Kaltstart ist eine Anfrage, die warten musste, bis das Modell von der Platte gelesen war.'
|
||
load: 'Ladezeit'
|
||
throughput:
|
||
heading: 'Was die Anfragen gekostet haben'
|
||
tokens_per_second: '%rate% Token pro Sekunde'
|
||
unreachable_body: 'Unter %host% antwortet nichts. plMail läuft weiter; die Funktionen, die ein Modell brauchen, tun einfach nichts.'
|
||
version: 'Ollama %version%'
|
||
window:
|
||
day: '24 Stunden'
|
||
hour: 'Stunde'
|
||
week: '7 Tage'
|
||
provider:
|
||
ollama: 'Ollama'
|
||
openai: 'OpenAI-kompatibel'
|
||
probe:
|
||
missing_model: 'Der Host hat geantwortet, hat aber nicht: %models%. Zieh sie dort erst.'
|
||
host:
|
||
search: 'Such-Host'
|
||
writing: 'Modell-Host'
|
||
no_host: 'Trag zuerst eine Adresse ein.'
|
||
no_model_list: 'Unter der Adresse antwortet etwas, aber es gibt keine Modell-Liste (HTTP %status%). Prüf, ob die Adresse auf die API-Version endet, meist /v1. Manche Server haben keine Liste und funktionieren trotzdem; speichere und probier einen Entwurf aus.'
|
||
not_an_api: 'Unter der Adresse antwortet etwas, aber nicht mit JSON. Das ist meist eine Anmeldeseite oder ein Proxy, nicht die API.'
|
||
refused: 'Der Host hat geantwortet und die Anfrage abgelehnt (HTTP %status%). Prüf das Token.'
|
||
ok: 'Der Host hat geantwortet und hält %count% Modelle bereit.'
|
||
models: 'Die %count% vorhandenen Modelle anzeigen'
|
||
status: 'Der Host hat mit HTTP %status% geantwortet.'
|
||
unreachable: 'Unter der Adresse hat nichts geantwortet. (%error%)'
|
||
prompt:
|
||
categorise:
|
||
hint: 'Läuft bei eingehender Mail, die keine Regel erkannt hat. Es muss EIN EINZELNES WORT verlangen, aus primary, social, promotions, updates, forums — plMail gleicht die Antwort genau gegen diese fünf ab; alles andere lässt die Mail stillschweigend dort, wo die normalen Regeln sie hingelegt haben.'
|
||
label: 'Mail in Tabs einsortieren'
|
||
formal:
|
||
hint: 'Wird benutzt, wenn jemand dieselbe Nachricht in förmlicherem Ton will.'
|
||
label: 'Förmlicher machen'
|
||
language:
|
||
hint: 'Wird an jeden Prompt oben angehängt, außer ans Einsortieren. Das ist der Grund, warum eine deutsche Mail eine deutsche Antwort bekommt — ohne das folgt das Modell dem Englisch, in dem diese Anweisungen geschrieben sind, und beim Korrekturlesen übersetzt es deinen deutschen Entwurf. Du kannst es umformulieren, aber nicht entfernen: Wenn du das Feld leerst, gilt wieder der mitgelieferte Text.'
|
||
label: 'Immer in der Sprache der Mail antworten'
|
||
proofread:
|
||
hint: 'Wird benutzt, wenn jemand nur Rechtschreibung und Grammatik korrigiert haben will. Lass "sonst nichts ändern" drin — ohne das schreibt das Modell Sätze um, die schon richtig waren.'
|
||
label: 'Korrektur lesen'
|
||
reply:
|
||
hint: 'Wird von "Beim Schreiben helfen" benutzt, wenn jemand einen ersten Entwurf will.'
|
||
label: 'Antwort entwerfen'
|
||
shorten:
|
||
hint: 'Wird benutzt, wenn jemand dieselbe Nachricht in weniger Worten will.'
|
||
label: 'Kürzen'
|
||
summary:
|
||
hint: 'Wird vom Zusammenfassen-Knopf im Lesebereich benutzt. Wenn du das änderst, gelten alle schon geschriebenen Zusammenfassungen als veraltet — gelöscht wird nichts, sie werden beim nächsten Mal neu geschrieben.'
|
||
label: 'Gespräch zusammenfassen'
|
||
prompts:
|
||
changed: '%count% geändert'
|
||
heading: 'System-Prompts'
|
||
intro: 'Das sind die Anweisungen, die plMail dem Modell gibt. Lass ein Feld leer, dann gilt der mitgelieferte Text — so kann ein späteres Update ihn noch verbessern. Was du einträgst, ersetzt den mitgelieferten Text vollständig.'
|
||
reset: 'Auf den mitgelieferten Text zurücksetzen'
|
||
save: 'Prompts speichern'
|
||
saved: 'Gespeichert. Neue Zusammenfassungen nutzen das hier; schon geschriebene sind jetzt veraltet.'
|
||
show_shipped: 'Mitgelieferten Text anzeigen'
|
||
untouched: 'Wie ausgeliefert'
|
||
save: 'Speichern'
|
||
saved: 'Gespeichert.'
|
||
status:
|
||
incomplete: 'Host fehlt'
|
||
off: 'Aus'
|
||
on: 'An'
|
||
paused: 'Pausiert'
|
||
test: 'Testen'
|
||
warmup:
|
||
button: 'Jetzt vorladen'
|
||
failed: 'Keine Antwort. Versuch es noch einmal.'
|
||
loaded_ms: 'Modell in %count% ms geladen — es war schon im Speicher.'
|
||
loaded_seconds: 'Modell in %count% s geladen.'
|
||
loading: 'Modell wird geladen …'
|
||
model_missing: 'Auf dem Host gibt es kein Modell namens „%model%“. Zieh es dort, oder trag eines ein, das da ist. (%error%)'
|
||
no_host: 'Trag zuerst einen Modell-Host ein und speichere.'
|
||
no_model: 'Trag zuerst ein Schreib-Modell ein und speichere.'
|
||
not_ollama: 'Nur ein Ollama-Host lässt sich bitten, ein Modell vorab zu laden.'
|
||
status: 'Der Host hat mit HTTP %status% abgelehnt. (%error%)'
|
||
timeout: 'Der Host hat nach vier Minuten immer noch geladen, plMail hat aufgehört zu warten. Gut möglich, dass er fertig wird — vermutlich ist das Modell aber zu groß für seinen Speicher.'
|
||
unexpected: 'Etwas ist schiefgegangen, bevor der Host antworten konnte. (%error%)'
|
||
unreachable: 'Unter der Adresse hat nichts geantwortet. (%error%)'
|
||
client_errors:
|
||
browser: 'Browser'
|
||
clear: 'Leeren'
|
||
clear_confirm: 'Wirklich alle Browser-Fehler löschen? Sie kommen von allein wieder, wenn sie noch auftreten.'
|
||
count: '{0}nichts gemeldet|{1}1 Fehler|]1,Inf[ %count% Fehler'
|
||
empty: 'Keine Browser-Fehler.'
|
||
empty_hint: 'Hier landen nicht abgefangene Fehler aus plMails eigenen Skripten, nach Fehler gruppiert. Fehler aus Browser-Erweiterungen werden herausgefiltert — das meiste, was ein Browser meldet, kommt nicht von dieser Anwendung.'
|
||
first_seen: 'Zuerst gesehen'
|
||
heading: 'Browser-Fehler'
|
||
kind:
|
||
csp: 'Blockiert'
|
||
error: 'Fehler'
|
||
unhandledrejection: 'Rejection'
|
||
occurrences: '{1}bei 1 Seitenaufruf|]1,Inf[ bei %count% Seitenaufrufen'
|
||
page: 'Letzte Seite'
|
||
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.
|
||
collision: >-
|
||
Die Datei beschreibt jemanden, von dem diese Installation noch Reste hat — ein
|
||
App-Passwort, einen Freigabe-Link oder eine Buchungsseite, deren Token hier noch
|
||
registriert ist, meist von einem entfernten Konto übrig geblieben. Es wurde
|
||
nichts geändert. Entferne diese Reste, oder importiere auf eine Installation
|
||
ohne 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.
|
||
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.'
|
||
demo_stats:
|
||
active: 'Gerade offen: %count%'
|
||
col:
|
||
period: 'Zeitraum'
|
||
sessions: 'Gestartete Sitzungen'
|
||
visitors: 'Verschiedene Besucher'
|
||
heading: 'Demo-Besucher'
|
||
intro: 'Wie viele Demo-Sitzungen diese Instanz vergeben hat. Eine Sitzung ist ein Postfach, das über /demo angelegt wurde; wer nach Ablauf wiederkommt, startet eine neue.'
|
||
privacy: 'Es wird keine Adresse gespeichert. Jede Sitzung behält einen Hashwert mit geheimem Schlüssel über das Netz des Besuchers (die Adresse ohne ihren letzten Teil), damit jemand, der wiederkommt, einmal zählt; wer sich ein Netz teilt, zählt als einer. Der Hashwert wird nach %days% Tagen gelöscht, deshalb hat die Gesamtzahl keine Besucherzahl.'
|
||
window:
|
||
day: 'Letzte 24 Stunden'
|
||
hour: 'Letzte Stunde'
|
||
month: 'Letzte 30 Tage'
|
||
total: 'Insgesamt'
|
||
week: 'Letzte 7 Tage'
|
||
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?'
|
||
insight_reports:
|
||
clear_handled:
|
||
button: 'Erledigte Meldungen löschen'
|
||
confirm: '%count% als erledigt markierte Meldung(en) löschen? Die Kopien der Mails verschwinden mit ihnen.'
|
||
heading: 'Erledigtes aufräumen'
|
||
lead: '%count% Meldung(en) hast du als erledigt markiert. Was noch wartet, bleibt liegen.'
|
||
copy: 'Auswahl kopieren'
|
||
copy_hint: 'Die ausgewählten Meldungen als Textzeilen, zum Einfügen in eine Anweisung oder ein Ticket.'
|
||
delete: 'Diese Meldung löschen'
|
||
delete_confirm: 'Diese Meldung löschen? Die Kopie der Mail verschwindet mit ihr.'
|
||
download: 'Als Text sichern'
|
||
download_hint: 'Dieselben Zeilen, als Textdatei.'
|
||
empty: 'Es wurde nichts gemeldet.'
|
||
empty_hint: 'Hier sammelt sich, was jemand plMail als falsch gemeldet hat — eine Mail, die eine Info hätte liefern sollen, oder eine, die im falschen Tab lag.'
|
||
export:
|
||
intro: 'Eine JSON-Datei mit den ausgewählten Meldungen, vollständig: alle Urteile, die Header, auf denen sie beruhen, und der Mailtext, wo es einen gibt. Daraus schreibst du eine Regel oder eine neue Auswertung. Wählst du nichts aus, bekommst du alles.'
|
||
not_handled: 'Der Download ändert hier nichts — erledigt ist eine Meldung, wenn du das sagst.'
|
||
submit: 'Auswahl exportieren'
|
||
warning: 'Diese Datei enthält fremde Mails. Bewahre sie so auf, wie du das Postfach selbst aufbewahren würdest.'
|
||
filter: 'Zeigen'
|
||
filter_handled: 'Erledigt'
|
||
filter_pending: 'Offen'
|
||
handled: 'Erledigt'
|
||
handled_at: 'Erledigt seit %when%'
|
||
heading: 'Gemeldete Mails'
|
||
kind:
|
||
category: 'Falscher Tab'
|
||
insight: 'Keine Info'
|
||
mark_handled: 'Als erledigt markieren'
|
||
no_body: 'Zu dieser Meldung gibt es keinen Mailtext.'
|
||
no_sender: 'kein Absender gespeichert'
|
||
no_subject: '(kein Betreff)'
|
||
pending: '{0}Nichts offen|{1}1 offen|]1,Inf[ %count% offen'
|
||
pending_badge: 'Offen'
|
||
problem:
|
||
no_insight: 'Keine Info'
|
||
received_at: 'Mail kam am %when%'
|
||
reported_by: 'Gemeldet von %who%'
|
||
reporter_gone: 'einem gelöschten Konto'
|
||
select_all: 'Alles Gezeigte auswählen'
|
||
selected: '%count% ausgewählt'
|
||
verdict:
|
||
body: 'Text für das Modell'
|
||
body_none: 'keiner — nur HTML'
|
||
body_text: 'ja'
|
||
gmail: 'Gmail sagt'
|
||
headers: 'Massenmail-Header'
|
||
model: 'Das Modell sagt'
|
||
none: 'keine'
|
||
not_asked: 'nicht gefragt'
|
||
rules: 'Die Regeln sagen'
|
||
integrations:
|
||
base_url_exempt: 'nimmt nur Feeds auf diesem Host von der Prüfung auf private Netze aus'
|
||
base_url_per_user: 'Jede Person gibt ihre eigene Serveradresse ein.'
|
||
base_url_pinned: 'für alle festgelegt'
|
||
calendar:
|
||
connected_warning: 'Bereits verbunden: %count%. Eine geänderte oder entfernte Adresse gilt für jede dieser Verbindungen, sobald ihre Kalender das nächste Mal gesucht werden. Wer mit einem anderen Server verbunden ist, etwa iCloud, wird dann mit dem eigenen Passwort bei diesem angefragt. Bereits gespiegelte Kalender behalten die Adresse, unter der sie gefunden wurden; lag eine entfernte Adresse in einem privaten Netz, synchronisieren sie nicht mehr, bis ihr Host in INTEGRATIONS_ALLOWED_HOSTS steht.'
|
||
heading: 'Kalender'
|
||
intro: 'Server und Feeds, aus denen unter Einstellungen → Kalender Kalender gespiegelt werden. Beide stehen allen zur Verfügung; hier lässt sich eine Serveradresse für alle festlegen. Nextcloud wird oben bei den Dateidiensten eingerichtet, seine Kalender kommen mit.'
|
||
clear_secret: 'Gespeichertes Client-Secret entfernen'
|
||
configure: 'Konfigurieren'
|
||
connected_users: '%count% 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_ics: 'Leer lassen. Jeder Feed hat seine eigene Adresse, ein Eintrag hier ändert also nichts daran, welche Feeds abonniert werden. Eine hier gespeicherte Adresse nimmt nur Feeds auf ihrem Host von der Prüfung auf private Netze aus.'
|
||
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.'
|
||
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.'
|
||
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.'
|
||
redirect_uri: 'Redirect-URI'
|
||
redirect_uri_help: 'Genau so in die Konsole des Anbieters eintragen. Eine spätere Änderung bricht alle bestehenden Verbindungen.'
|
||
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.'
|
||
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.
|
||
consent_heading: 'Wenn deine Organisation Apps für ihre Benutzer freigibt'
|
||
consent_microsoft: 'Manche Microsoft-365-Organisationen lassen Benutzer Apps nicht selbst freigeben: Ein Administrator hat plMail einmal freigegeben, für die Berechtigungen, die es damals verlangt hat. plMail fragt jetzt zusätzlich nach Contacts.ReadWrite, und das deckt diese Freigabe nicht ab. Microsoft lehnt deshalb jede Anmeldung bei plMail ab, auch für Mail, bis die Freigabe erneuert ist. Bevor sich jemand neu anmeldet: Öffne das Microsoft Entra Admin Center → Unternehmensanwendungen → plMail → Berechtigungen und wähle „Administratorzustimmung erteilen“. Private Microsoft-Konten und Organisationen, in denen Benutzer Apps selbst freigeben, sind nicht betroffen.'
|
||
contacts_google: >-
|
||
Aktiviere die Google People API für dieses Projekt und füge den
|
||
Scope .../auth/contacts zum Zustimmungsbildschirm hinzu — dann
|
||
bekommen Nutzer ihre Kontakte mit derselben Anmeldung. Konten,
|
||
die schon vorher verbunden waren, werden in ihren Einstellungen
|
||
einmal gebeten, sich neu anzumelden. Ohne das funktionieren Mail
|
||
und Kalender weiter, und Kontakte erscheinen einfach nicht.
|
||
contacts_heading: 'Die Kontakt-Synchronisation nutzt dieselbe App'
|
||
contacts_microsoft: >-
|
||
Füge dieser App-Registrierung die delegierte Berechtigung
|
||
Contacts.ReadWrite hinzu — dann bekommen Nutzer ihre
|
||
Outlook-Kontakte mit derselben Anmeldung. Konten, die schon
|
||
vorher verbunden waren, werden in ihren Einstellungen einmal
|
||
gebeten, sich neu anzumelden. Ohne das funktionieren Mail und
|
||
Kalender weiter, und Kontakte 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:
|
||
always_offered: 'Für alle verfügbar'
|
||
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_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.'
|
||
ics:
|
||
intro: 'Ein Kalender-Feed braucht hier keine Einrichtung. Jede Person fügt die Adresse, unter der ein Kalender veröffentlicht ist (meist auf .ics endend), unter Einstellungen → Kalender → „Adresse abonnieren“ ein.'
|
||
security: 'Bei einem veröffentlichten Kalender wirkt die Adresse wie ein Passwort: Wer sie kennt, kann den Kalender lesen.'
|
||
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.'
|
||
paperless:
|
||
asynchronous: 'Beim Speichern übergibt plMail den Anhang an den Paperless-Consumer, der ihn ein paar Sekunden später ablegt. Gemeldet wird die Übergabe, nicht das fertige Dokument — ein Testdokument taucht also kurz nach der Erfolgsmeldung in Paperless auf, und eine Datei, die Paperless als Dublette ablehnt, gar nicht.'
|
||
intro: 'Paperless-ngx authentifiziert sich mit einem API-Token pro Benutzer, hier ist also nichts zu registrieren.'
|
||
no_share_links: 'plMail legt keine Paperless-Freigabelinks an. Freigaben sind dort eine eigene, rechtegesteuerte Funktion mit eigenem Ablaufdatum, und ein Dokument zu veröffentlichen ist ein größerer Schritt als es anzuhängen — Dokumente über der Anhangsgrenze lassen sich deshalb gar nicht anhängen.'
|
||
step_base_url: 'Optional die Serveradresse festlegen, etwa https://paperless.example.com.'
|
||
step_enable: 'Oben „Diesen Dienst anbieten“ einschalten.'
|
||
step_token: 'Jede Person kopiert ihr API-Token in Paperless unter My Profile → API Auth Token und trägt es in ihren eigenen Integrationseinstellungen ein.'
|
||
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 sie frisch neu starten. 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:
|
||
reference: 'Referenz'
|
||
all_channels: 'Alle Kanäle'
|
||
capture:
|
||
from_env: 'aus der Umgebung (%level%)'
|
||
hint: 'Alles darunter wird gar nicht erst festgehalten.'
|
||
label: 'Einträge behalten ab'
|
||
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:
|
||
address: Adresse
|
||
ai: KI
|
||
backup: Sicherung
|
||
database: Datenbank
|
||
demo_stats: 'Demo-Besucher'
|
||
insight_reports: Gemeldete Mails
|
||
integrations: Integrationen
|
||
logs: Protokolle
|
||
performance: Leistung
|
||
push: Push
|
||
reset: Zurücksetzen
|
||
sso: 'SSO'
|
||
system: System
|
||
updates: Aktualisierungen
|
||
users: Benutzer
|
||
performance:
|
||
hold:
|
||
col:
|
||
account: 'Konto'
|
||
arrived: 'Eingegangen'
|
||
call: 'Modellaufruf'
|
||
call_hint: 'Der Weg zum Modell-Host und zurück, vom Start bis zur Antwort.'
|
||
filed: 'Einsortiert unter'
|
||
load: 'davon Laden'
|
||
load_hint: 'Der Teil des Aufrufs, den der Host mit dem Laden des Modells in den Speicher verbracht hat. Nahe null, wenn das Modell schon geladen war.'
|
||
outcome: 'Was passiert ist'
|
||
queued: 'Gewartet'
|
||
queued_hint: 'Vom Speichern der Mail bis zur Frage an den Assistenten. Auf die Sekunde gerundet.'
|
||
shown_after: 'Angezeigt nach'
|
||
empty: 'In diesem Zeitraum wurde keine Mail zurückgehalten.'
|
||
footnote: 'Die neuesten %limit% zurückgehaltenen Nachrichten. Für Mail, die einsortiert wurde, bevor es diese Seite gab, fehlen die Zeiten. Was in der Mail stand, wird hier nicht gezeigt — und nirgends sonst in diesem Bereich.'
|
||
heading: 'Neue Mail, die auf den Assistenten wartet'
|
||
lead: 'Für alle, die vom Assistenten sortieren lassen, bleibt neue Mail aus den Posteingangs-Tabs heraus, bis sie einsortiert ist — höchstens %ceiling% Sekunden. Jede Zeile ist eine Nachricht und zeigt, wohin ihre Wartezeit ging.'
|
||
lead_off: 'Das Zurückhalten neuer Mail für den Assistenten ist unter KI abgeschaltet, hier kommt also nichts Neues hinzu. Was vorher zurückgehalten wurde, steht weiterhin hier.'
|
||
outcome:
|
||
answered: 'Einsortiert, dann angezeigt'
|
||
cold: 'Einsortiert, dann angezeigt — das Modell musste erst geladen werden'
|
||
moved: 'Zuerst angezeigt, mit der Antwort verschoben'
|
||
no_answer: 'Ohne Antwort angezeigt'
|
||
unusable: 'Die Antwort war nicht verwendbar; angezeigt, wo die Regeln sie einordnen'
|
||
waiting: 'Wartet noch'
|
||
stat:
|
||
held: 'Zurückgehalten'
|
||
max: 'Längste'
|
||
median: 'Übliche Wartezeit'
|
||
p95: '95 % innerhalb'
|
||
shown_first: 'Vor dem Einsortieren angezeigt'
|
||
lag:
|
||
col:
|
||
account: 'Konto'
|
||
arrives_by: 'Kommt an über'
|
||
elsewhere: 'Nicht im Posteingang'
|
||
elsewhere_hint: 'Spam und Mail, die ein Filter woanders abgelegt hat: wie viele, und ihre übliche Verzögerung. Anbieter melden nur Mail im Posteingang, der Rest wartet auf den Takt.'
|
||
max: 'Längste'
|
||
median: 'Übliche Verzögerung'
|
||
messages: 'Mail im Posteingang'
|
||
p95: '95 % innerhalb'
|
||
footnote: 'Von dem Moment, in dem der Anbieter eine Nachricht angenommen hat, bis plMail sie gespeichert hat – für Mail, die im Posteingang gelandet ist. Mail aus einem Import und Mail, die aus plMail selbst verschickt wurde, zählt nicht mit.'
|
||
heading: 'Wie spät Mail ankommt'
|
||
lead: 'Sekunden heißt: Der Anbieter meldet plMail neue Mail, sobald sie eintrifft. Minuten heißt: Das Konto wird stattdessen im Viertelstundentakt abgefragt.'
|
||
no_accounts: 'Keine aktiven Konten.'
|
||
provider:
|
||
google: 'Gmail'
|
||
imap: 'IMAP'
|
||
microsoft: 'Outlook'
|
||
push: 'Push an'
|
||
slowest:
|
||
by:
|
||
idle: 'IDLE'
|
||
manual: 'Sync-Knopf'
|
||
poll: 'Takt'
|
||
push: 'Push'
|
||
unknown: '—'
|
||
col:
|
||
accepted: 'Beim Anbieter angekommen'
|
||
account: 'Konto'
|
||
by: 'Geholt durch'
|
||
in: 'Abgelegt in'
|
||
lag: 'Danach bis plMail sie hatte'
|
||
lag_hint: 'Von der Annahme durch den Anbieter bis zum Speichern in plMail. Hervorgehoben, wenn Mail im Posteingang fünf Minuten oder länger gebraucht hat.'
|
||
underway: 'Schon unterwegs seit'
|
||
underway_hint: 'Vom Datum, das die Nachricht trägt, bis zur Annahme durch den Anbieter: ein Absender, der sie zurückgehalten oder zu früh datiert hat. Daran hätte plMail nichts verkürzen können.'
|
||
empty: 'In diesem Zeitraum ist keine Mail angekommen.'
|
||
footnote: 'Die langsamsten zuerst. Mail außerhalb des Posteingangs meldet der Anbieter nie, bis zu fünfzehn Minuten sind dort also der Takt, wie er gedacht ist. Wodurch eine Nachricht geholt wurde, wird ab dieser Version festgehalten.'
|
||
heading: 'Die langsamsten in diesem Zeitraum'
|
||
in:
|
||
elsewhere: 'Woanders'
|
||
inbox: 'Posteingang'
|
||
spam: 'Spam'
|
||
window:
|
||
day: '24 Stunden'
|
||
hour: '1 Stunde'
|
||
label: 'Zeitraum'
|
||
week: '7 Tage'
|
||
workers:
|
||
col:
|
||
in_hand: 'In Arbeit'
|
||
oldest: 'Älteste wartet'
|
||
queue: 'Warteschlange'
|
||
running_for: 'Seit'
|
||
waiting: 'Wartend'
|
||
worker: 'Worker'
|
||
footnote: 'Ein Stand von diesem Moment, nicht vom Zeitraum oben: Wie lange ein Job gewartet hat, wird nicht aufbewahrt, sobald er erledigt ist. Ein Worker mit zwei Warteschlangen arbeitet die erste ab, bevor er in die zweite schaut.'
|
||
heading: 'Was bei jedem Worker wartet'
|
||
lead: 'Welcher Prozess im Rückstand ist, und um wie viel. Jeder Worker nimmt einen Job nach dem anderen.'
|
||
refresh: 'Aktualisieren'
|
||
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'
|
||
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%'
|
||
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'
|
||
sso:
|
||
clear_secret: 'Gespeichertes Client-Secret vergessen'
|
||
clear_secret_help: 'Leere dazu auch den Issuer und die Client-ID. Die Anmeldung fällt dann auf die OIDC_*-Variablen der Umgebung zurück oder schaltet sich aus, wenn es keine gibt.'
|
||
env_note: 'Lass Issuer, Client-ID und Secret alle leer, und die Anmeldung fällt auf OIDC_ISSUER, OIDC_CLIENT_ID und OIDC_CLIENT_SECRET aus der Umgebung zurück — eine so eingerichtete Installation läuft also weiter. Was hier gespeichert ist, hat Vorrang.'
|
||
field:
|
||
auto_create: 'Konto für Personen anlegen, die plMail noch nicht kennt'
|
||
auto_create_help: 'An, und jede Person, die der Anbieter durchlässt, bekommt hier ein gewöhnliches Konto — begrenz also beim Anbieter, wer das ist. Aus, und die Administration legt jedes Konto vorher mit derselben Adresse an.'
|
||
button_label: 'Name auf dem Button'
|
||
button_label_help: 'Auf dem Login-Button steht „Mit … anmelden“ und dieser Name. Leer heißt es „Single Sign-on“.'
|
||
client_id: 'Client-ID'
|
||
client_secret: 'Client-Secret'
|
||
issuer: 'Issuer'
|
||
issuer_help: 'Die Issuer-URL des Anbieters, genau so, wie sein Discovery-Dokument sie angibt. In Authentik ist das der „OpenID Configuration Issuer“ auf der Seite des Providers.'
|
||
password_login_disabled: 'Nur Single Sign-on'
|
||
password_login_disabled_help: 'Blendet das Passwortformular aus und weist Passwort-Anmeldungen ab, sodass alle über den Anbieter hereinkommen. Gilt nur, solange hier ein Anbieter eingerichtet ist. Du kannst es erst ankreuzen, nachdem du dich selbst über den Anbieter angemeldet hast, und fällt der Anbieter einmal aus, holt bin/console app:sso:allow-password-login das Formular zurück. Passwörter für Mail-Programme (App-Passwörter) sind nicht betroffen.'
|
||
require_verified_email: 'Nur eine Adresse verknüpfen, die der Anbieter bestätigt hat'
|
||
require_verified_email_help: 'Eine erste Anmeldung findet ihr Konto über die E-Mail-Adresse. Schalt das nur aus, wenn man die eigene Adresse beim Anbieter nicht selbst ändern kann: Ist es aus, kann jede Person, die das darf, jedes Konto übernehmen, das sich noch nicht über den Anbieter angemeldet hat.'
|
||
scopes: 'Scopes'
|
||
scopes_help: 'Durch Leerzeichen getrennt. „openid“ wird immer ergänzt, und ohne „email“ findet eine erste Anmeldung ihr Konto nicht. Leer fragt openid, email und profile an.'
|
||
heading: 'Single Sign-on'
|
||
intro: 'Lass Menschen sich über einen OpenID-Connect-Anbieter anmelden, den du ohnehin betreibst: Authentik, Keycloak, Authelia und ähnliche. Die Login-Seite zeigt dann einen Button über dem Passwortformular, das bleibt.'
|
||
redirect_uri_help: 'Trag das beim Anbieter als Redirect-URI ein, genau so, wie es hier steht.'
|
||
save: 'Speichern'
|
||
saved: 'Single Sign-on gespeichert.'
|
||
status:
|
||
environment: 'An, aus der Umgebung'
|
||
'off': 'Aus'
|
||
'on': 'An'
|
||
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'
|
||
continue: 'Weiter'
|
||
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'
|
||
lapsed: 'abgelaufen'
|
||
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'
|
||
updates:
|
||
heading: 'Aktualisierungen'
|
||
header: '%version% ist verfügbar'
|
||
intro: 'plMail prüft jede Stunde, ob der Kanal, dem du folgst, einen neueren Build veröffentlicht hat, und sagt es den Administratoren einmal pro Build: mit einer Benachrichtigung auf jedem Gerät, das sie für Push angemeldet haben, und mit einem Hinweis oben in diesem Bereich.'
|
||
saved: 'Kanal gespeichert.'
|
||
channel:
|
||
label: 'Folgen'
|
||
save: 'Speichern'
|
||
follows_build: ' Noch hat niemand gewählt, deshalb folgt die Installation dem Build, der gerade läuft.'
|
||
releases:
|
||
name: 'Veröffentlichungen'
|
||
hint: 'Jede getaggte Veröffentlichung: das Image mit dem Tag latest. Für die meisten Installationen das Richtige.'
|
||
main:
|
||
name: 'Main'
|
||
hint: 'Jeder Build des main-Zweigs, sobald er veröffentlicht ist: das Image mit dem Tag main. Das ist, woran gerade gearbeitet wird, und das Änderungsprotokoll beschreibt es noch nicht.'
|
||
'off':
|
||
name: 'Aus'
|
||
hint: 'Keine Prüfung. Dafür wird nichts irgendwohin gesendet.'
|
||
state:
|
||
available: 'Aktualisierung verfügbar'
|
||
current: 'Aktuell'
|
||
failed: 'Keine Antwort'
|
||
incomparable: 'Nicht vergleichbar'
|
||
'off': 'Aus'
|
||
unknown: 'Noch nicht geprüft'
|
||
running: 'Diese Installation'
|
||
newest:
|
||
releases: 'Neueste Veröffentlichung'
|
||
main: 'Neuester main-Build'
|
||
built_at: 'gebaut %when%'
|
||
not_yet: 'Noch nicht geprüft'
|
||
incomparable: 'In diesen Build ist kein Commit eingestempelt (ein Checkout oder ein Image, das nicht der Release-Workflow gebaut hat), deshalb gibt es nichts, womit sich der neueste Build des Kanals vergleichen ließe.'
|
||
checked: 'Zuletzt geprüft'
|
||
never: 'nie'
|
||
check_now: 'Jetzt prüfen'
|
||
error: 'Die letzte Prüfung hat keine Antwort bekommen: %error%.'
|
||
error_kept: ' Angezeigt wird, was die letzte beantwortete Prüfung gefunden hat.'
|
||
changes:
|
||
heading: 'Was neu ist'
|
||
count: '{1}Eine Änderung seit diesem Build|]1,Inf[%count% Änderungen seit diesem Build'
|
||
all: 'Alle Änderungen auf GitHub'
|
||
changelog: 'Änderungsprotokoll'
|
||
how:
|
||
heading: 'Aktualisieren'
|
||
body: 'Hol das neue Image und erstelle die Container neu; auf einem NAS stellst du die App neu bereit. plMail migriert seine Datenbank beim Start, lies also vorher im Änderungsprotokoll, was unter „Before you upgrade“ steht.'
|
||
privacy: 'Eine Prüfung fragt die Registry nach dem neuesten Image von %image% und api.github.com, was sich seit diesem Build geändert hat. Über diese Installation wird dabei nichts gesendet außer den Anfragen selbst.'
|
||
push:
|
||
title: 'plMail %version% ist verfügbar'
|
||
body: 'Du verwendest %running%. Öffne Admin → Aktualisierungen, um zu sehen, was sich geändert hat.'
|
||
users:
|
||
add: Benutzer hinzufügen
|
||
console_note: 'Passwörter und die Wiederherstellung der Zwei-Faktor-Authentifizierung laufen über die Server-Konsole, nicht hier — `app:user:password` und `app:user:2fa-disable`. Wer beides im Browser ändern könnte, hätte einen zweiten Weg in jedes Postfach dieser Installation.'
|
||
deactivate: Abschalten
|
||
deactivate_confirm: '%name% abschalten? Eine Anmeldung ist dann nicht mehr möglich, und schon verbundene Mail-Programme hören ebenfalls auf. Gelöscht wird nichts, und du kannst das Konto hier wieder einschalten.'
|
||
deactivated: 'Abgeschaltet'
|
||
deactivated_since: 'Abgeschaltet seit %when%'
|
||
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. Danach lässt es sich hier nicht mehr ändern: Ein vergessenes Passwort setzt du auf der Server-Konsole mit `app:user:password` zurück.'
|
||
flash:
|
||
deactivated: 'Abgeschaltet. Eine Anmeldung ist erst wieder möglich, wenn du das Konto einschaltest.'
|
||
demote_last_refused: 'Das ist die letzte Person mit Administratorrechten — das Häkchen blieb, wie es war. Ernenne zuerst jemand anderen.'
|
||
demote_self_refused: 'Du kannst dir die Administratorrechte nicht selbst entziehen. Alles andere im Formular wurde gespeichert.'
|
||
reactivated: 'Wieder eingeschaltet. Eine Anmeldung ist wieder möglich.'
|
||
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.
|
||
reactivate: Wieder einschalten
|
||
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.
|
||
# The All Mail lists — every conversation outside Spam and the bin
|
||
# (LabelRole::AllMail). Their heading is sidebar.nav.all_mail.
|
||
all_mail:
|
||
empty: "Keine Mail außerhalb von Spam und Papierkorb."
|
||
|
||
alias:
|
||
added: 'Adresse hinzugefügt.'
|
||
catch_all_added: 'Catch-all-Domain hinzugefügt.'
|
||
catch_all_duplicate: 'Diese Domain ist in diesem Konto bereits als Catch-all eingetragen.'
|
||
catch_all_invalid: 'Das sieht nicht nach einer Domain aus. Gib sie so ein: example.com.'
|
||
catch_all_removed: 'Catch-all-Domain entfernt.'
|
||
catch_all_unsupported: 'Gmail und Outlook senden nur über Adressen, die der Anbieter kennt. Eine Catch-all-Domain lässt sich in diesem Konto deshalb nicht nutzen.'
|
||
deleted: 'Adresse entfernt.'
|
||
duplicate: 'Diese Adresse ist bereits in diesem Konto vorhanden.'
|
||
gmailify_off: 'Gmailify ist aus. Dieses Gmail-Konto behält nur Mail, die an es gerichtet ist, und die Kopien der anderen Konten folgen Gmail nicht mehr.'
|
||
gmailify_on: 'Gmailify ist an. Mail, die dieses Gmail-Konto für deine anderen Konten abholt, wird unter diesen abgelegt.'
|
||
gmailify_unsupported: 'Gmailify ist eine Einstellung von Gmail-Konten.'
|
||
invalid: 'Das sieht nicht nach einer gültigen E-Mail-Adresse aus.'
|
||
name_cleared: 'Absendername entfernt. Diese Adresse sendet wieder unter dem Namen des Kontos.'
|
||
name_set: 'Absendername gespeichert.'
|
||
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
|
||
|
||
attachment:
|
||
download_named: '%name% herunterladen'
|
||
sign:
|
||
action: Unterschreiben
|
||
draw: Zeichne deine Unterschrift und setze sie dann auf die Seite.
|
||
clear: Neu zeichnen
|
||
cancel: Abbrechen
|
||
place: Auf die Seite setzen
|
||
hint: Zieh sie an die richtige Stelle und häng sie dann an eine Antwort.
|
||
download: Unterschriebene Kopie herunterladen
|
||
reply: Mit unterschriebener Kopie antworten
|
||
protected: Dieses PDF ist geschützt und kann hier nicht unterschrieben werden. Lesen geht weiterhin.
|
||
unreadable: Dieses PDF lässt sich hier nicht bearbeiten. Lesen geht weiterhin.
|
||
use_saved: Gespeicherte Unterschrift verwenden
|
||
preview:
|
||
download: Herunterladen
|
||
failed: Dieses PDF konnte nicht geöffnet werden. Du kannst es trotzdem herunterladen.
|
||
loading: Wird geöffnet…
|
||
media_failed: Diese Datei kann hier nicht angezeigt werden. Du kannst sie trotzdem herunterladen.
|
||
untitled: Anhang
|
||
zoom_in: Vergrößern
|
||
zoom_out: Verkleinern
|
||
calendar:
|
||
# plMail's date-and-time picker; see calendar--when.
|
||
when:
|
||
previous_month: 'Vorheriger Monat'
|
||
next_month: 'Nächster Monat'
|
||
send_at: 'Senden am'
|
||
group: 'Beginn und Ende'
|
||
today: 'Heute'
|
||
tomorrow: 'Morgen'
|
||
same_day: 'Am selben Tag'
|
||
same_short: 'Selber'
|
||
another_day: 'Anderer Tag'
|
||
back_to_week: 'Zurück zu dieser Woche'
|
||
hour: 'Stunde'
|
||
minute: 'Minute'
|
||
half: 'Vormittag oder Nachmittag'
|
||
another_minute: 'Andere Minute'
|
||
quarter_hours: 'Viertelstunden'
|
||
exact_minute: 'Genaue Minute'
|
||
minutes: '%count% Min.'
|
||
hours: '%count% Std.'
|
||
day_one: '1 Tag'
|
||
days: '%count% Tage'
|
||
length: 'Dauer'
|
||
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
|
||
empty_day: Nichts an diesem Tag
|
||
details:
|
||
description: Beschreibung
|
||
edit: Bearbeiten
|
||
extracted_hint: plMail hat diesen Termin aus dieser Nachricht gelesen. Eingetragen hat ihn niemand.
|
||
participants: Teilnehmende
|
||
provenance: Aus dieser E-Mail
|
||
recurring: Wiederkehrender Termin
|
||
status: Status
|
||
until: bis %date%
|
||
your_answer: Deine Antwort
|
||
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
|
||
calendar: Kalender
|
||
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.
|
||
hidden: Dieser Kalender ist ausgeblendet — der Termin erscheint erst, wenn du ihn einblendest
|
||
legend: Kalender
|
||
mirrored: 'Dieser Kalender wird mit seinem Anbieter synchronisiert — der Termin landet auch auf deinen anderen Geräten'
|
||
read_only: Dieser Kalender nimmt keine Änderungen an
|
||
same_remote: 'Schon abgedeckt: Dieser Kalender spiegelt denselben wie einer weiter oben'
|
||
delete: Löschen
|
||
description: Beschreibung
|
||
details_heading: 'Termin'
|
||
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
|
||
repeats: 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.
|
||
until: bis %when%
|
||
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.
|
||
held:
|
||
applied: 'Änderung übernommen.'
|
||
apply: 'Änderung übernehmen'
|
||
hint: 'Diese Nachricht will diesen Termin ändern, kommt aber nicht von dem Absender, von dem der Termin stammt (%sender%). Es wurde nichts geändert.'
|
||
not_applied: 'Die Änderung ließ sich nicht übernehmen — eine neuere ist schon eingetragen, oder du hast den Termin selbst bearbeitet.'
|
||
offer:
|
||
accepted: In den Kalender
|
||
declined: Nein danke
|
||
hint: "An diese Nachricht angehängt — in deinem Kalender wurde nichts eingetragen."
|
||
status:
|
||
accepted: In deinem Kalender
|
||
declined: Nicht eingetragen
|
||
organiser: Eingeladen von %name%
|
||
organiser_tag: Organisation
|
||
placed: '%title% steht jetzt in deinem Kalender: %when%.'
|
||
reply:
|
||
body: '%name% hat auf diese Einladung mit %status% geantwortet.'
|
||
status:
|
||
accepted: Zugesagt
|
||
declined: Abgesagt
|
||
needs_action: Keine Antwort
|
||
tentative: Vielleicht
|
||
toast:
|
||
added: In deinen Kalender eingetragen.
|
||
not_added: Nicht in deinen Kalender eingetragen.
|
||
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
|
||
open_day: 'Alles am %date%'
|
||
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
|
||
keep: Aktuelle Regel beibehalten
|
||
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:
|
||
next: 'Als Nächstes'
|
||
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
|
||
status:
|
||
cancelled: Abgesagt
|
||
confirmed: Bestätigt
|
||
tentative: Vorläufig
|
||
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.
|
||
event_saved: Termin gespeichert
|
||
hidden: Kalender ausgeblendet
|
||
saved_on_hidden: >-
|
||
Termin in %calendars% gespeichert — dieser Kalender ist
|
||
ausgeblendet. Blende ihn ein, um den Termin zu sehen.
|
||
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
|
||
toolbar:
|
||
range: '%start%–%end%'
|
||
range_day: '%day%.'
|
||
range_short: '%start%–%end%'
|
||
range_short_month: '%start%.–%end%. %month%'
|
||
upcoming:
|
||
imminent: Beginnt innerhalb einer Stunde
|
||
later: Heute noch
|
||
soon: In wenigen Stunden
|
||
view:
|
||
agenda: Agenda
|
||
day: Tag
|
||
monday_week: Woche
|
||
month: Monat
|
||
week: '7 Tage'
|
||
|
||
clipboard:
|
||
copied: Kopiert
|
||
copy_failed: Kopieren fehlgeschlagen
|
||
|
||
compose:
|
||
# Wird im Dock gezeigt, wenn ein Klick auf „Schreiben“ kein Fenster
|
||
# hervorbringt — ein 5xx, eine abgelaufene Sitzung, eine tote Verbindung.
|
||
ai:
|
||
accept: 'Einfügen'
|
||
disabled: 'Die Schreibhilfe ist ausgeschaltet.'
|
||
discard: 'Verwerfen'
|
||
disclaimer: 'Von einem Modell geschrieben. Lies es, bevor du es abschickst.'
|
||
error:
|
||
not_pulled: 'Der Modell-Host hat dieses Modell nicht. Ein Administrator muss es zuerst laden.'
|
||
refused: 'Der Modell-Host hat die Anfrage abgelehnt.'
|
||
timeout: 'Der Modell-Host hat zu lange gebraucht.'
|
||
failed: 'Die Anfrage konnte nicht gesendet werden.'
|
||
label: 'Beim Schreiben helfen'
|
||
no_answer: 'Der Modell-Host hat nicht geantwortet.'
|
||
preview: 'Vorgeschlagener Text, noch nicht in deiner Nachricht'
|
||
prompt:
|
||
toggle: 'Anweisungen'
|
||
title: 'Die Anweisungen für den nächsten Versuch ändern'
|
||
label: 'Wie für dich geschrieben werden soll'
|
||
placeholder: 'z. B. Höchstens drei Sätze, und fang nie mit „ich hoffe, es geht dir gut“ an.'
|
||
retry: 'Damit noch mal versuchen'
|
||
hint: 'Nur in diesem Fenster. Dauerhaft änderst du das unter Einstellungen → KI.'
|
||
rate: '%count% Tokens · %rate% pro Sekunde'
|
||
regenerate: 'Nochmal versuchen'
|
||
slow_hint: 'Die erste Anfrage nach einer Weile dauert etwa fünfzehn Sekunden, solange das Modell lädt.'
|
||
state:
|
||
done: 'Fertig. In deiner Nachricht steht noch nichts davon.'
|
||
sent: 'An das Modell geschickt…'
|
||
stopped: 'Angehalten. Behalte, was angekommen ist, oder wirf es weg.'
|
||
stop: 'Anhalten'
|
||
task:
|
||
formal: 'Förmlicher formulieren'
|
||
proofread: 'Rechtschreibung und Grammatik korrigieren'
|
||
reply: 'Antwort entwerfen'
|
||
shorten: 'Kürzer fassen'
|
||
timing: 'Modell laden %load% s · %count% Tokens in %seconds% s · insgesamt %total% s'
|
||
working: 'Schreibt…'
|
||
open_failed:
|
||
dismiss: Schließen
|
||
failed: Das Schreibfenster konnte nicht geöffnet werden. Bitte versuche es erneut.
|
||
offline: Das Schreibfenster konnte nicht geöffnet werden — du scheinst offline zu sein.
|
||
signed_out: Deine Sitzung ist abgelaufen. Lade die Seite neu und melde dich erneut an.
|
||
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?
|
||
open_variables: 'Ein Platzhalter aus einer Vorlage ist noch nicht ausgefüllt.'
|
||
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_fields: Absender, Cc, Bcc und Betreff anzeigen
|
||
more_options: Weitere Optionen
|
||
new_message: Neue Nachricht
|
||
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
|
||
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
|
||
# The template picker in the compose window. The templates themselves
|
||
# are written in Settings → Templates (settings.templates).
|
||
template:
|
||
all_accounts: 'Alle Konten'
|
||
empty: 'Noch keine Vorlagen. Schreib eine in den Einstellungen oder speichere diese Nachricht als Vorlage.'
|
||
failed: 'Die Vorlage konnte nicht geladen werden.'
|
||
insert: 'Vorlage einfügen'
|
||
loading: 'Vorlagen werden geladen…'
|
||
manage: 'Vorlagen verwalten'
|
||
no_match: 'Keine Vorlage mit diesem Namen.'
|
||
nothing_to_save: 'Hier steht kein Text, der sich als Vorlage speichern ließe.'
|
||
save_draft: 'Diese Nachricht als Vorlage speichern'
|
||
saved: 'Als Vorlage „%name%“ gespeichert. Umbenennen oder verschieben kannst du sie in den Einstellungen.'
|
||
search: 'Vorlage suchen'
|
||
untitled: 'Unbenannte Vorlage'
|
||
|
||
demo:
|
||
bar:
|
||
title: Demo
|
||
blurb: Ein Wegwerf-Postfach. Nichts davon ist echt, und was du schreibst, verlässt den Server nicht.
|
||
next: 'Als Nächstes: %subject%'
|
||
receive: Mail empfangen
|
||
flash:
|
||
blocked: Ein echtes Postfach zu verbinden ist in der Demo abgeschaltet.
|
||
login:
|
||
blurb: Sieh dich in plMail um — mit einem eigenen Postfach, ohne Anmeldung und ohne Adresse.
|
||
start: Demo starten
|
||
disclaimer: Dein Demo-Postfach wird nach ein paar Stunden automatisch gelöscht.
|
||
privacy:
|
||
account: >-
|
||
Beim Start der Demo wird ein Wegwerf-Konto mit einer zufällig erzeugten
|
||
Adresse angelegt. Du wirst nicht nach Namen, E-Mail-Adresse oder Passwort
|
||
gefragt, und es wird nichts davon gespeichert. Alles, was du dort eingibst —
|
||
Nachrichten, Entwürfe, Kalendereinträge — existiert nur in diesem Konto und
|
||
wird zusammen mit ihm automatisch gelöscht, etwa %ttl% nach dem Anlegen. In
|
||
der Demo geschriebene Mail wird nie versendet: Es besteht keine Verbindung zu
|
||
einem Mailserver.
|
||
account_title: Das Demo-Konto
|
||
complaint: >-
|
||
Außerdem steht dir ein Beschwerderecht bei einer Datenschutz-Aufsichtsbehörde
|
||
zu.
|
||
controller_intro: Verantwortlich für die hier beschriebene Verarbeitung:
|
||
controller_title: Verantwortlicher
|
||
controller_unset: 'Nicht gesetzt. Eine Datenschutzerklärung muss den Verantwortlichen nennen — setz diese Werte, bevor du die Instanz öffentlich machst.'
|
||
cookie_mercure: hält die Verbindung für Live-Aktualisierungen offen, solange du angemeldet bist.
|
||
cookie_session: hält dich in deinem Demo-Konto angemeldet. Wird beim Schließen des Browsers gelöscht.
|
||
cookie_ui: merkt sich das gewählte Design und die Sprache.
|
||
cookies: >-
|
||
Es werden drei Cookies gesetzt, alle technisch notwendig für den Betrieb.
|
||
Es gibt kein Tracking-, Werbe- oder Analyse-Cookie und deshalb auch kein
|
||
Cookie-Banner.
|
||
cookies_title: Cookies
|
||
host: Der Server wird in unserem Auftrag von %host% betrieben, als Auftragsverarbeiter auf Grundlage eines Auftragsverarbeitungsvertrags.
|
||
host_unset: 'Nicht gesetzt. Das Unternehmen, das den Server betreibt, ist Auftragsverarbeiter und muss hier genannt werden.'
|
||
logs: >-
|
||
Wie jeder Webserver protokolliert auch dieser jeden Abruf: die IP-Adresse,
|
||
von der er kam, den Zeitpunkt, die angeforderte Seite, die verweisende Seite
|
||
und die Browserkennung. Das ist für den Betrieb und die Absicherung des
|
||
Dienstes erforderlich (Art. 6 Abs. 1 lit. f DSGVO — berechtigtes Interesse).
|
||
Diese Protokolle werden rotiert und nicht zur Profilbildung verwendet.
|
||
logs_title: Server-Logfiles
|
||
processing_title: Was verarbeitet wird, und auf welcher Grundlage
|
||
rights: >-
|
||
Du hast das Recht auf Auskunft über die zu dir gespeicherten Daten sowie auf
|
||
deren Berichtigung, Löschung oder Einschränkung der Verarbeitung, außerdem
|
||
ein Widerspruchsrecht und ein Recht auf Datenübertragbarkeit. Wende dich
|
||
dafür an die oben genannte Adresse.
|
||
rights_title: Deine Rechte
|
||
stats: >-
|
||
Um zu sehen, wie stark die Demo genutzt wird, wird jede gestartete Demo-Sitzung
|
||
gezählt. Gespeichert werden der Zeitpunkt und ein mit einem geheimen Schlüssel
|
||
gebildeter Hashwert der um ihren letzten Teil gekürzten IP-Adresse (bei IPv4 das
|
||
letzte Oktett, bei IPv6 die letzten 80 Bit) — nie die Adresse selbst. Der Hashwert
|
||
zeigt nur, dass zwei Sitzungen aus demselben Netz kamen, und wird nach %days% Tagen
|
||
gelöscht (Art. 6 Abs. 1 lit. f DSGVO — berechtigtes Interesse daran zu wissen,
|
||
wie stark die Demo genutzt wird).
|
||
stats_title: 'Nutzungsstatistik'
|
||
third_parties: >-
|
||
Es werden keine Daten an Dritte weitergegeben. Diese Seite lädt keine
|
||
externen Schriftarten, Skripte, Karten oder Analysedienste — ihre Content
|
||
Security Policy erlaubt Verbindungen ausschließlich zu diesem Server.
|
||
third_parties_title: Weitergabe an Dritte
|
||
title: Datenschutzerklärung
|
||
unavailable:
|
||
title: In der Demo nicht verfügbar
|
||
body: >-
|
||
Ein echtes Postfach zu verbinden ist hier abgeschaltet. Diese Demo
|
||
läuft auf einem Server, der dir nicht gehört, und niemand sollte
|
||
dort sein Mail-Passwort eintippen. Alles andere — Themes, Filter,
|
||
Kalender, Mail schreiben — funktioniert wie auf deiner eigenen
|
||
Installation.
|
||
dismiss: Zurück zur Demo
|
||
impressum:
|
||
link: Impressum
|
||
title: Impressum
|
||
heading: Angaben gemäß § 5 TMG
|
||
operator: Betreiber
|
||
unset: 'Nicht gesetzt. Diese Seite muss von Gesetzes wegen einen echten Betreiber nennen — setz diese Werte in der Umgebung, bevor du die Instanz öffentlich machst.'
|
||
contact: Kontakt
|
||
contact_email: 'E-Mail:'
|
||
disclaimer_title: Über diese Demo
|
||
disclaimer: >-
|
||
Dies ist eine Demonstration von plMail. Die gezeigten Postfächer,
|
||
Absender und Nachrichten sind erfunden; nichts davon ist echte
|
||
Korrespondenz. Hier geschriebene Mail verlässt den Server nie, und
|
||
Demo-Konten werden nach einigen Stunden automatisch gelöscht.
|
||
privacy_title: Daten
|
||
privacy: >-
|
||
Ein Demo-Besuch legt ein Wegwerf-Konto ohne persönliche Daten an.
|
||
Was du dort eingibst, wird mit dem Konto gelöscht. Server-Logs
|
||
speichern IP-Adressen aus den üblichen Betriebsgründen und werden
|
||
rotiert.
|
||
source_title: Quellcode
|
||
source: 'plMail ist freie Software unter der AGPL-3.0:'
|
||
dnd:
|
||
dragging: '%count% Unterhaltungen'
|
||
|
||
drafts:
|
||
empty: Keine Entwürfe.
|
||
heading: Entwürfe
|
||
|
||
errors:
|
||
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
|
||
|
||
confirm_dialog:
|
||
heading: Bist du sicher?
|
||
cancel: Abbrechen
|
||
confirm: Weiter
|
||
discarded:
|
||
actions:
|
||
purge: Endgültig löschen
|
||
purge_confirm: 'Diese Unterhaltung endgültig löschen? Sie lässt sich nicht zurückholen und wird auch vom Mailserver entfernt.'
|
||
restore: In den Posteingang
|
||
header:
|
||
search:
|
||
close: Suche schließen
|
||
live:
|
||
status: '%count% passende Unterhaltungen'
|
||
status_none: Keine passende Mail
|
||
status_one: 1 passende Unterhaltung
|
||
title: Mail
|
||
open: Mails durchsuchen
|
||
placeholder: E-Mails durchsuchen…
|
||
recents:
|
||
clear: Leeren
|
||
title: Zuletzt gesucht
|
||
suggestions:
|
||
title: Vorschläge
|
||
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.
|
||
empty_account: In diesem Konto ist noch nichts angekommen.
|
||
|
||
insights:
|
||
card:
|
||
heading: In dieser Konversation gefunden
|
||
kind:
|
||
flight: Flug
|
||
github-issue: Issue
|
||
github-pr: Pull Request
|
||
invoice: Rechnung
|
||
otp: Anmeldecode
|
||
parcel: Paket
|
||
subscription: Abo
|
||
ticket: Ticket
|
||
pane:
|
||
dismiss: Ausblenden
|
||
dismiss_all: Leiste ausblenden
|
||
heading: Steht bald an
|
||
more: Weitere Aktionen
|
||
when:
|
||
today: Heute
|
||
tomorrow: Morgen
|
||
panel:
|
||
dismiss: Ausblenden
|
||
heading: Auf deinem Radar
|
||
open_mail: Zur Mail
|
||
track: Verfolgen
|
||
undated_heading: Außerdem gefunden
|
||
report:
|
||
already_reported: Du hast diese Mail bereits gemeldet.
|
||
cancel: Abbrechen
|
||
disclosure: "Du meldest diese Mail, damit plMail daraus künftig ein Insight lesen kann. Inhalt und Absender der Mail werden dabei an deine Administration weitergegeben."
|
||
heading: Fehlendes Insight melden
|
||
note_label: Was hätte hier stehen sollen?
|
||
note_placeholder: "Zum Beispiel: Das ist eine Rechnung, fällig am 3."
|
||
submit: Mail melden
|
||
success: "Danke — deine Meldung liegt bei deiner Administration."
|
||
status:
|
||
announced: Angekündigt
|
||
delivered: Zugestellt
|
||
in_transit: Unterwegs
|
||
ordered: Bestellt
|
||
out_for_delivery: In Zustellung
|
||
ready_for_pickup: Abholbereit
|
||
|
||
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'
|
||
# Der Picker ohne Anhang in der Hand: ein Filter benennt den Ordner, in
|
||
# den er später speichert — für Mail, die noch gar nicht da ist.
|
||
choose_for_filter: 'Wähle, wohin dieser Filter Anhänge speichert.'
|
||
choose_here: 'Diesen Ordner wählen'
|
||
choose_tag: 'Tag für %file% wählen'
|
||
choose_this: Wählen
|
||
create: Erstellen
|
||
folder_name: 'Ordnername'
|
||
library: 'Mediathek (kein Album)'
|
||
new_album: 'Neues Album'
|
||
new_folder: 'Neuer Ordner'
|
||
new_tag: 'Neuer Tag'
|
||
no_albums: 'Noch keine Alben.'
|
||
no_subfolders: 'Keine Ordner hier.'
|
||
no_tag: 'Kein Tag'
|
||
no_tags: 'Noch keine Tags.'
|
||
save_here: 'Hier speichern'
|
||
start_over: 'Von vorn beginnen'
|
||
tag_name: 'Tag-Name'
|
||
picker:
|
||
attach: Anhängen
|
||
attach_from: 'Aus %name% anhängen'
|
||
attach_from_service: 'Aus einem Dienst anhängen'
|
||
empty: 'Dieser Ordner ist leer.'
|
||
link: Link
|
||
more: 'Mehr anzeigen'
|
||
no_results: 'Nichts gefunden für „%query%“.'
|
||
not_an_image: 'Keine Bilddatei'
|
||
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'
|
||
paperless: 'Titel und gescannten Text durchsuchen'
|
||
status:
|
||
attach_failed: 'Anhängen fehlgeschlagen'
|
||
attaching: 'Wird angehängt …'
|
||
load_failed: 'Mehr konnte nicht geladen werden'
|
||
loading: 'Wird geladen …'
|
||
nothing_selected: 'Nichts ausgewählt'
|
||
save_draft_first: 'Speichere zuerst den Entwurf'
|
||
skipped: 'Übersprungen: %files%'
|
||
timeline: 'Zu einem Datum springen'
|
||
too_big: 'Zu groß zum Anhängen'
|
||
use_as_avatar: 'Als Profilbild verwenden'
|
||
|
||
jobs:
|
||
button:
|
||
failed: "Etwas ist fehlgeschlagen"
|
||
importing: "Import läuft"
|
||
importing_percent: "Import · %percent% %"
|
||
working: "Arbeitet …"
|
||
heading: Hintergrundarbeit
|
||
import:
|
||
folder: "Gerade: %folder%"
|
||
heading: "%account% wird importiert"
|
||
newest_first: "Neueste Mail zuerst"
|
||
quota: "Gmail-Kontingent: etwa %used% von %limit% Einheiten in dieser Minute"
|
||
quota_assumed: "Gmail-Kontingent: etwa %used% von %limit% Einheiten in dieser Minute (Limit angenommen, bis Google es nennt)"
|
||
quota_paused: "Pausiert durch Gmails Kontingent · weiter in %seconds% s"
|
||
quota_refused: "Gmail hat bei etwa %used% von %limit% Einheiten pro Minute abgelehnt"
|
||
rate: "Etwa %count% Nachrichten pro Minute"
|
||
remaining_hours: "Noch etwa %hours% Std. %minutes% Min."
|
||
remaining_minutes: "Noch etwa %minutes% Min."
|
||
waiting: "Wartet darauf, weiterzumachen"
|
||
started: '%action% gestartet — das läuft im Hintergrund.'
|
||
failure:
|
||
abandoned: 'Unterbrochen — das ist auf halber Strecke stehen geblieben; was schon erledigt war, bleibt erledigt.'
|
||
kind:
|
||
mark_read: Als gelesen markieren
|
||
mark_unread: Als ungelesen markieren
|
||
archive: Archivieren
|
||
trash: In den Papierkorb verschieben
|
||
restore: Wiederherstellen
|
||
snooze: Zurückstellen
|
||
wake: Zurückholen
|
||
move_to: Verschieben
|
||
purge: Endgültig löschen
|
||
reclassify: Sortiert neueste Mail neu
|
||
delete_label: Löscht ein Label
|
||
state:
|
||
done: '%count% erledigt'
|
||
failed: fehlgeschlagen
|
||
queued: wartet
|
||
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:
|
||
already_running: '"%name%" wird schon gelöscht.'
|
||
destination: Mail verschieben nach
|
||
destination_placeholder: '— wähle ein Ziel —'
|
||
destination_required: 'Wähle, wohin die Mail soll. Der Ordner wird nicht gelöscht, solange Mail darin liegt.'
|
||
failed_destination_create: 'Der Mailserver hat den Ordner %name%, in den die Mail sollte, nicht angelegt. Es wurde nichts verschoben oder gelöscht.'
|
||
failed_destination_gone: 'Das Ziel, das du für die Mail gewählt hast, gibt es nicht mehr. Lösche das Label noch einmal und wähle ein anderes.'
|
||
failed_new_mail: 'Nachdem du auf Löschen gedrückt hast, ist neue Mail im Ordner angekommen. Lösche das Label noch einmal, um zu wählen, wohin sie soll.'
|
||
failed_not_empty: 'Im Ordner "%name%" liegt auf dem Server noch Mail, deshalb wurde er nicht gelöscht. Verschiebe diese Mail in deinem Mailprogramm und lösche das Label dann noch einmal.'
|
||
failed_server: 'Der Mailserver hat "%name%" nicht gelöscht: %error%'
|
||
mail_count: 'Darin liegen %count% Nachricht(en). Sie werden an das Ziel verschoben, das du unten wählst, bevor der Ordner gelöscht wird.'
|
||
on_server: 'Es ist ein Ordner auf deinem Mailserver, deshalb wird der Ordner dort auch gelöscht.'
|
||
still_importing: 'plMail importiert die Mail in "%name%" noch vom Server. Lösche es, sobald der Import fertig ist, damit nichts davon zurückbleibt.'
|
||
title: '"%name%" löschen'
|
||
waiting: 'Wartet, bis "%name%" auf dem Mailserver leer ist, und löscht den Ordner dann.'
|
||
delete_confirm: 'Das Label "%name%" löschen? Es verschwindet aus allen Konten. Nachrichten behalten ihre übrigen Labels und werden nicht gelöscht.'
|
||
delete_confirm_children: '"%name%" und die %count% untergeordneten Label(s) löschen? Sie verschwinden aus allen Konten. Nachrichten werden nicht gelöscht.'
|
||
deleted: Label gelöscht.
|
||
error:
|
||
duplicate: Hier gibt es bereits ein Label mit diesem Namen. Groß- und Kleinschreibung macht daraus keinen anderen.
|
||
form:
|
||
color: Farbe
|
||
delete: Label löschen
|
||
delete_hint: 'Beim Löschen verschwindet das Label aus allen Konten, zusammen mit allen darunter eingeordneten Labels. Nachrichten damit behalten ihre übrigen Labels und werden nicht gelöscht.'
|
||
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
|
||
oidc:
|
||
button: Mit Single Sign-on anmelden
|
||
button_named: Mit %provider% anmelden
|
||
or: oder
|
||
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
|
||
collapse: Diese Nachricht zuklappen
|
||
expand: Diese Nachricht aufklappen
|
||
mark_unread: Als ungelesen markieren
|
||
more: Mehr
|
||
print: Drucken
|
||
report_insight: Fehlendes Insight melden
|
||
show_original: Original anzeigen
|
||
star: Markieren
|
||
unstar: Markierung entfernen
|
||
attachments: Anhänge
|
||
back: Zurück
|
||
body_frame: Nachrichteninhalt
|
||
bounce:
|
||
failed: 'Diese Nachricht wurde nicht zugestellt.'
|
||
failed_for: 'Nicht zugestellt an %recipient%.'
|
||
reported_at: 'Gemeldet %datetime%'
|
||
details:
|
||
categorised:
|
||
ai: 'ein Sprachmodell, weil keine Regel gegriffen hat: '
|
||
ai_differs: 'die Regeln sehen das anders'
|
||
awaiting_resort: 'Wird neu einsortiert — du hast geändert, wie Mail sortiert wird, und diese hier ist noch nicht umgezogen.'
|
||
own_filter: 'dort von einem deiner Filter abgelegt'
|
||
gmail_overruled: 'wird nicht benutzt — du hast plMail gebeten, selbst zu sortieren'
|
||
in_force: 'das hier entscheidet'
|
||
ai_no_answer: 'gefragt, keine brauchbare Antwort'
|
||
ai_not_asked: 'nicht gefragt'
|
||
correspondent: 'Du hast diesem Absender geschrieben'
|
||
default: 'nichts wies auf Massenmail hin'
|
||
forum: 'ein Mailinglisten-Header: '
|
||
gmail: 'laut Gmail: '
|
||
pinned: 'du hast sie hierher verschoben'
|
||
promotion: 'ein Massenmail-Header: '
|
||
social: 'die Absenderdomain '
|
||
switched_off: "es wäre %category%, und das hast du ausgeschaltet"
|
||
thread_differs: 'Diese Nachricht allein wäre %category% — eine Unterhaltung übernimmt die Kategorie ihrer neuesten Nachricht.'
|
||
update: 'ein Hinweis auf automatischen Versand: '
|
||
category: Kategorie
|
||
category_ai: 'das Modell'
|
||
category_gmail: 'Gmail sagt'
|
||
category_rules: 'die Regeln'
|
||
bcc: BCC
|
||
cc: CC
|
||
copy_address: 'Adresse %address% kopieren'
|
||
copy_headers: Kopfzeilen kopieren
|
||
report:
|
||
failed: 'Konnte nicht gemeldet werden'
|
||
label: 'Falscher Tab? Gehört nach'
|
||
send: Melden
|
||
stale: 'Liegt schon da — neu laden'
|
||
sent: Gemeldet
|
||
date: Datum
|
||
from: von
|
||
hide_all_headers: Alle Kopfzeilen ausblenden
|
||
label: Details
|
||
mailed_by: gesendet über
|
||
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
|
||
copy_failed: Kopieren fehlgeschlagen
|
||
fields:
|
||
created_at: Erstellt am
|
||
from: Von
|
||
message_id: Nachrichten-ID
|
||
subject: Betreff
|
||
to: An
|
||
heading: Originalnachricht
|
||
reconstructed: 'Die Originalbytes dieser Nachricht wurden nicht aufbewahrt. Du siehst eine Rekonstruktion aus den gespeicherten Headern und dem Textteil — die MIME-Struktur und ein etwaiger HTML-Teil fehlen, und gegen eine DKIM-Signatur lässt sie sich nicht prüfen.'
|
||
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 du diese Nachricht liest.'
|
||
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 — behandle 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. Hat es vorher funktioniert, fragt plMail jetzt zusätzlich nach Zugriff auf deine Kontakte, und auch das muss freigegeben werden. Bitte deinen Microsoft-Administrator, den Zugriff zu erteilen.'
|
||
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_ai:
|
||
body: 'Die Adresse eines Ollama-Containers in deinem Netz oder eines beliebigen OpenAI-kompatiblen Endpunkts, und die Namen zweier Modelle, die es dort gibt — eines zum Schreiben, eines für die Suche. Mails gehen an diese Adresse und sonst nirgendwohin.'
|
||
heading: 'Was du brauchst'
|
||
skip_body: 'Klick auf Weiter, ohne etwas auszufüllen. plMail ist auch ohne das ein vollständiger Mail-Client, und du kannst später jederzeit unter Administration → KI zurückkommen.'
|
||
skip_heading: 'Kein Interesse?'
|
||
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-ai:
|
||
intro: 'plMail kann ein Sprachmodell benutzen — eines, das du selbst betreibst, oder einen Endpunkt deiner Wahl — zum Suchen nach Bedeutung, zum Einsortieren und als Hilfe beim Schreiben. Das ist völlig optional, du darfst hier alles leer lassen.'
|
||
lead: 'Optional. Lass es leer, wenn du es nicht willst.'
|
||
title: 'Sprachmodell'
|
||
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:
|
||
not_an_image: 'Diese Datei ist kein Bild, das plMail verwenden kann. Wähle ein PNG, JPEG, GIF oder WebP.'
|
||
too_large: 'Das Bild ist größer als 4 MB. Wähle ein kleineres.'
|
||
unavailable: 'Der Dienst hat das Bild nicht geliefert. Versuch es gleich noch einmal.'
|
||
empty: Von diesem Dienst gibt es nichts anzuzeigen.
|
||
heading: Oder eins aus einem verbundenen Dienst wählen
|
||
field:
|
||
avatar: Bild
|
||
avatar_help: PNG, JPEG, GIF oder WebP, bis 4 MB.
|
||
avatar_remove: Aktuelles Bild entfernen
|
||
name_first: Vorname
|
||
name_last: Nachname
|
||
|
||
# The reading pane beside the message list (Settings → Reading pane turns it on).
|
||
# `handle` is what a screen reader calls the divider between the two; the
|
||
# placeholder stands where the message will be until one is opened.
|
||
reading_pane:
|
||
handle: Größe des Nachrichtenbereichs ändern
|
||
placeholder: Wähle eine Unterhaltung aus, um sie hier zu lesen
|
||
|
||
# Said in a toast when a request fails and there is no better place to say it;
|
||
# see request_errors.js.
|
||
request_error:
|
||
copy_reference: 'Referenz kopieren'
|
||
server: 'Das hat nicht geklappt – bei uns ist etwas schiefgegangen. Versuch es gleich noch einmal.'
|
||
not_found: 'Das gibt es nicht mehr. Vielleicht wurde es verschoben oder gelöscht.'
|
||
refused: 'Das konnte plMail nicht erledigen. Lade die Seite neu und versuch es noch einmal.'
|
||
offline: 'plMail ist nicht erreichbar. Prüf deine Verbindung und versuch es noch einmal.'
|
||
reference: 'Ref. %id%'
|
||
sync_now:
|
||
label: 'Jetzt synchronisieren'
|
||
syncing_one: '1 Konto wird synchronisiert …'
|
||
syncing_other: '%count% Konten werden synchronisiert …'
|
||
still_running: 'Die Synchronisierung läuft im Hintergrund weiter.'
|
||
complete: 'Synchronisierung abgeschlossen.'
|
||
session_expired: 'Deine Sitzung ist abgelaufen – lade die Seite neu, um dich wieder anzumelden.'
|
||
pull_to_refresh:
|
||
pull: 'Zum Synchronisieren nach unten ziehen'
|
||
release: 'Loslassen zum Synchronisieren'
|
||
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
|
||
semantic:
|
||
admin_link: 'Fortschritt ansehen'
|
||
indexing: 'Bedeutung wird über %embedded% von %total% Nachrichten durchsucht — zu %percent%% fertig.'
|
||
model_changed: 'Das Such-Modell hat sich geändert. Die %count% Nachrichten, die mit dem vorherigen indexiert wurden, werden nicht nach Bedeutung durchsucht, bis sie neu indexiert sind.'
|
||
nothing_extra: 'Die Suche nach Bedeutung hat nichts gefunden, was die Wörter nicht schon hatten.'
|
||
skipped:
|
||
bad_answer: 'Das Modell hat etwas geantwortet, das sich nicht verwenden lässt — deshalb wurde nur nach Wörtern gesucht.'
|
||
host_unreachable: 'Der Modell-Host hat nicht geantwortet — deshalb wurde nur nach Wörtern gesucht.'
|
||
model_missing: 'Der Modell-Host hat das Such-Modell nicht — deshalb wurde nur nach Wörtern gesucht.'
|
||
not_configured: 'Die Suche nach Bedeutung ist an, aber es ist kein Modell-Host eingerichtet — deshalb wurde nur nach Wörtern gesucht.'
|
||
query_too_short: 'Schreib etwas mehr, dann wird auch nach Bedeutung gesucht.'
|
||
search_failed: 'Die Suche nach Bedeutung konnte nicht abgeschlossen werden — deshalb wurde nur nach Wörtern gesucht. Warum, steht im Server-Log.'
|
||
search_too_slow: 'Die Suche nach Bedeutung hat hier zu lange gebraucht — deshalb wurde nur nach Wörtern gesucht.'
|
||
timed_out: 'Das Modell hat zu lange gebraucht — deshalb wurde nur nach Wörtern gesucht.'
|
||
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.
|
||
locale: Sprache
|
||
name_first: Vorname
|
||
name_last: Nachname
|
||
password: Passwort
|
||
password_repeat: Passwort wiederholen
|
||
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.
|
||
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'
|
||
|
||
session:
|
||
expired:
|
||
heading: Du bist abgemeldet worden
|
||
body: Deine Sitzung wurde woanders beendet. Melde dich erneut an, um weiterzumachen.
|
||
body_writing: Deine Sitzung wurde woanders beendet. Melde dich in einem neuen Tab an und komm zurück — was du hier geschrieben hast, steht noch da.
|
||
sign_in: Erneut anmelden
|
||
sign_in_new_tab: In neuem Tab anmelden
|
||
reload: Seite neu laden
|
||
settings:
|
||
ai:
|
||
context:
|
||
heading: 'Wie viel der Assistent liest'
|
||
message: 'Die Mail'
|
||
message_hint: 'Der Assistent liest die Mail, auf die du antwortest. So war es bisher schon.'
|
||
none: 'Nichts'
|
||
none_hint: 'Der Assistent sieht nur, was du getippt hast. Am schnellsten — und „Antwort entwerfen“ hat in einem leeren Fenster nichts, womit es arbeiten könnte, und meldet, dass es nicht antworten konnte. Kürzen, Förmlicher und Korrekturlesen sind davon nicht betroffen.'
|
||
subheading: 'Mehr vom Gesprächsverlauf bedeutet eine bessere Antwort und eine längere Wartezeit. Das Modell läuft auf diesem Rechner — es kostet also vor allem Zeit.'
|
||
thread: 'Das ganze Gespräch'
|
||
thread_hint: 'Der Assistent liest das ganze Gespräch, ältestes zuerst, so viel davon wie hineinpasst. Bessere Antworten in langen Verläufen — und längeres Warten.'
|
||
feature:
|
||
admin_off: 'Für diese Installation nicht aktiviert'
|
||
categorise: 'Mails in Tabs einsortieren'
|
||
categorise_hint: 'Lässt das Modell entscheiden, wenn die normalen Regeln eine Mail nicht einordnen können. Aus lässt diese Mails dort, wo die Regeln sie abgelegt haben.'
|
||
contact_help: 'Kontakthilfe'
|
||
contact_help_hint: 'Füllt einen Kontakt aus einer eingefügten Signatur oder Visitenkarte aus und schlägt Änderungen anhand der Signatur der letzten Mail vor, wenn du darum bittest.'
|
||
search: 'Suche nach Bedeutung'
|
||
search_hint: 'Findet Mails, die meinen, wonach du gefragt hast — nicht nur solche, die es genauso schreiben. Aus bedeutet: Deine Mails werden weder durchsucht noch indiziert.'
|
||
summary: 'Zusammenfassungen'
|
||
summary_hint: 'Fasst ein langes Gespräch zusammen, wenn du darum bittest. Von allein passiert nichts.'
|
||
writing_help: 'Schreibhilfe'
|
||
writing_help_hint: 'Entwirft Antworten, kürzt, formuliert förmlicher, liest Korrektur — im Schreibfenster, wenn du danach fragst.'
|
||
features:
|
||
heading: 'Assistent-Funktionen'
|
||
subheading: 'Welche Funktionen des Assistenten du nutzen willst. Dein Administrator legt fest, was verfügbar ist — du entscheidest, was du davon verwendest.'
|
||
notes:
|
||
about_me_hint: 'Dein Beruf, an wen du normalerweise schreibst — alles, was jemand Fremdes wissen müsste, um deine Mails gut zu beantworten.'
|
||
about_me_label: 'Wer du bist'
|
||
about_me_placeholder: 'Ich betreibe eine Fahrradwerkstatt, und die meisten Mails kommen von Kunden, die Reparaturen buchen.'
|
||
heading: 'Über dich'
|
||
save: 'Speichern'
|
||
saved: 'Gespeichert.'
|
||
subheading: 'Was der Assistent wissen sollte, bevor er für dich schreibt. Beide Notizen werden mit jedem Entwurf mitgeschickt und sonst für nichts verwendet.'
|
||
system_prompt_hint: 'Vorlieben, keine Anweisungen — die Regeln der App gehen vor, unter anderem die, in der Sprache der Mail zu schreiben. Halte es kurz: Lange Notizen verdrängen die eigentliche Mail aus der Aufmerksamkeit des Modells.'
|
||
system_prompt_label: 'Wie für dich geschrieben werden soll'
|
||
system_prompt_placeholder: 'Kurze Sätze. Keine Ausrufezeichen. Als Grußformel nur mein Vorname.'
|
||
reads:
|
||
categorise: 'Einsortieren: Absender, Betreff und der Anfang der Mail.'
|
||
contact_help: 'Kontakte: der Text, den du einfügst, oder ein Kontakt und die Signatur seiner letzten Mail, wenn du darum bittest.'
|
||
heading: 'Was der Assistent bekommt'
|
||
search: 'Indizierung: Betreff, Absender und der Anfang jeder Mail.'
|
||
summary: 'Die Nachrichten eines Gesprächs, das du zusammenfassen lässt'
|
||
writing_help: 'Schreiben: deine Betreffzeile, was du getippt hast, und so viel vom Gespräch, wie die Einstellung oben zulässt.'
|
||
seg:
|
||
off: 'Aus'
|
||
on: 'An'
|
||
accounts:
|
||
colour:
|
||
change: 'Farbe von %account% ändern'
|
||
swatch:
|
||
'0': Orange
|
||
'1': Grün
|
||
'2': Blau
|
||
'3': Violett
|
||
'4': Bernstein
|
||
'5': Pink
|
||
'6': Petrol
|
||
'7': Oliv
|
||
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
|
||
folders:
|
||
always_synced: Der Posteingang wird immer synchronisiert
|
||
button: Zu synchronisierende Ordner wählen
|
||
empty: Noch keine Ordner. Nach der ersten Synchronisation erscheinen sie hier.
|
||
intro: >-
|
||
Schalte einen Ordner aus, und plMail ruft ihn nicht mehr ab.
|
||
Bereits gespeicherte Nachrichten bleiben, wo sie sind, und wenn
|
||
du den Ordner wieder einschaltest, geht es dort weiter, wo es
|
||
aufgehört hat.
|
||
placeholder: 'Ein Platzhalter, der nur andere Ordner zusammenfasst — darin gibt es nichts zu synchronisieren'
|
||
start_sync: 'Synchronisierung von %folder% starten'
|
||
stop_sync: 'Synchronisierung von %folder% beenden'
|
||
title: 'Ordner — %account%'
|
||
heading: E-Mail-Konten
|
||
make_primary: Als primär festlegen
|
||
make_primary_explained: 'Neue Nachrichten standardmäßig von %account% senden'
|
||
reconnect: Neu verbinden
|
||
reconnect_explained: 'Melde dich erneut bei %account% an — um eine abgelehnte Berechtigung doch noch zu erteilen oder nach einer Passwortänderung'
|
||
move_down: '%account% in der Liste nach unten schieben'
|
||
move_up: '%account% in der Liste nach oben schieben'
|
||
order_hint: >-
|
||
Ziehen, um diese Liste zu ordnen. Die Reihenfolge bestimmt nur die
|
||
Anzeige — das Konto, von dem neue Nachrichten gesendet werden, ist
|
||
das mit „Primär“ markierte.
|
||
password_help: Leer lassen, um das aktuelle Passwort zu behalten.
|
||
primary: Primär
|
||
primary_explained: Neue Nachrichten werden standardmäßig von diesem Konto gesendet.
|
||
push:
|
||
lapsed_hint: >-
|
||
Die Push-Registrierung ist abgelaufen und wurde nicht erneuert,
|
||
es wird also nichts zugestellt. Die Erneuerung läuft täglich von
|
||
selbst — passiert das öfter, steht der Worker für geplante
|
||
Aufgaben still. Die Post wird weiterhin nach Zeitplan
|
||
abgerufen.
|
||
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
|
||
lapsed: Push (abgelaufen)
|
||
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.
|
||
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…'
|
||
catch_all:
|
||
add: 'Als Catch-all eintragen'
|
||
hint: 'Wenn jede Adresse einer Domain in diesem Postfach ankommt, trage die Domain hier ein. Eine Antwort geht dann von der Adresse aus, an die die Mail gerichtet war, ohne dass du jede einzeln oben hinzufügst.'
|
||
label: 'Catch-all-Domains'
|
||
placeholder: 'example.com'
|
||
remove: '%domain% entfernen'
|
||
delete: 'Entfernen'
|
||
disable: 'Deaktivieren'
|
||
empty: 'Noch keine Adressen.'
|
||
enable: 'Aktivieren'
|
||
gmailify:
|
||
hint: 'Für ein Gmail-Konto, das Mail von einer anderen Adresse abholt, die du hier verbunden hast. An: Diese Mail wird unter dem anderen Konto abgelegt, und ihre Kopie dort folgt dem, was du in Gmail tust. Aus: Dieses Konto behält nur Mail an sich selbst, und die Kopien des anderen Kontos folgen Gmail nicht mehr. Am besten schaltest du es aus, sobald Gmail diese Mail nicht mehr abholt: Solange es das noch tut, nennt Mail, die per Bcc an die andere Adresse ging, niemanden und landet deshalb hier und dort.'
|
||
label: 'Mail für meine anderen Konten unter diesen ablegen (Gmailify)'
|
||
'off': 'Aus'
|
||
'on': 'An'
|
||
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'
|
||
name_for: 'Absendername für %alias%'
|
||
name_placeholder: 'Absendername'
|
||
name_save: 'Namen speichern'
|
||
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 und wo die aktuelle Uhrzeit steht. 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%)'
|
||
placement:
|
||
label: 'Uhrzeit anzeigen'
|
||
option:
|
||
topbar: 'Auf dem Demnächst-Knopf in der oberen Leiste'
|
||
brand: 'Unter dem plMail-Namen'
|
||
sidebar: 'Unten in der Seitenleiste'
|
||
'off': 'Nirgends'
|
||
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
|
||
solid: Einfarbig
|
||
theme: Theme-Standard
|
||
upload: Bild hochladen
|
||
density:
|
||
comfortable: Komfortabel
|
||
compact: Kompakt
|
||
cosy: Gemütlich
|
||
follow: Übernehmen
|
||
heading: Dichte
|
||
subheading: Wie viel Platz jede Zeile bekommt. Einmal für alles, oder pro Bereich eigens festgelegt.
|
||
surface:
|
||
list: Nachrichtenliste
|
||
reading: Lesebereich
|
||
sidebar: Seitenleiste
|
||
motion:
|
||
full: Voll
|
||
heading: Bewegung
|
||
minimal: Dezent
|
||
none: Keine
|
||
reduced: Wenn dein System weniger Bewegung verlangt, hält sich plMail daran — egal, was hier steht.
|
||
subheading: Wie stark sich die Oberfläche bewegt, wenn etwas erscheint. Dezent blendet ein, ohne etwas zu verschieben.
|
||
export: Theme exportieren
|
||
glass:
|
||
heading: Glas
|
||
paneAlpha: Deckkraft der Flächen
|
||
paneAlphaHint: Seitenleiste, Kopfleiste, Hauptbereich und Kalender — der Rahmen, in dem die App liegt. Dahinter liegt nichts außer dem Hintergrund.
|
||
paneBlur: Weichzeichnen
|
||
popoverAlpha: Deckkraft von Fenstern und Menüs
|
||
popoverAlphaHint: Das Schreibfenster, Dialoge und Menüs. Jedes davon liegt auf einer Fläche, also scheinen beide Schichten gleichzeitig durch. Nahezu deckend bleiben sie lesbar.
|
||
radius: Eckenradius
|
||
scrimAlpha: Hintergrundabdunklung
|
||
subheading: Wie viel vom Hintergrund durch deine Flächen scheint.
|
||
heading: Darstellung
|
||
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.
|
||
list:
|
||
accountCorner: Konto-Ecke
|
||
accountCornerHint: Das farbige Dreieck in der Ecke einer Zeile, das zeigt, über welches Konto sie eingegangen ist. Wird nur in Listen gezeichnet, die mehrere Konten mischen.
|
||
heading: Nachrichtenliste
|
||
listAvatars: Absenderkreise
|
||
listAvatarsHint: Der farbige Kreis mit der Initiale des Absenders. Ausgeschaltet wird daraus ein schlichter Kreis, statt zu verschwinden — er ist zugleich das Auswahlkästchen der Zeile.
|
||
tabUnreadCount: 'Ungelesen-Zahl auf den Posteingangs-Tabs'
|
||
tabUnreadCountHint: 'Die Zahl neben dem Namen jedes Tabs: in wie vielen Unterhaltungen dieser Kategorie Ungelesenes liegt. Zusammen ergeben die Tabs den Posteingangs-Badge der Seitenleiste. Das Fähnchen „3 neu“ ist davon getrennt und bleibt.'
|
||
previewLines: Vorschauzeilen
|
||
previewLines0: Keine
|
||
previewLines1: Eine Zeile
|
||
previewLines2: Zwei Zeilen
|
||
subheading: Was jede Zeile der Liste zeigt.
|
||
unread:
|
||
standard: Standard
|
||
strong: Stark
|
||
subtle: Dezent
|
||
unreadEmphasis: Ungelesene Zeilen
|
||
logo:
|
||
colour: 'Farbe'
|
||
heading: Logo
|
||
icon: 'Symbol'
|
||
independent: 'Selbst wählen'
|
||
linked: 'Dem Theme folgen'
|
||
# U+00AD, a soft hyphen, where the long compounds may break: a tile
|
||
# has 72px for its name at its narrowest, and "Klammeraffenhorn"
|
||
# does not fit in it. Invisible whenever the word does fit.
|
||
motif:
|
||
airmail: 'Luftpost'
|
||
at-horn: "Klammer\u00ADaffen\u00ADhorn"
|
||
blue-horn: 'Das blaue Horn'
|
||
happy-mail: 'Fröhliche Post'
|
||
love-letter: "Liebes\u00ADbrief"
|
||
mailbox: "Brief\u00ADkasten"
|
||
pl: 'Klassisch'
|
||
pl-stamp: "Brief\u00ADmarke"
|
||
snail-mail: "Schnecken\u00ADpost"
|
||
wax-seal: 'Siegel'
|
||
original: 'Original'
|
||
style:
|
||
aurora: 'Polarlicht'
|
||
berry: 'Beere'
|
||
blue-tonal: 'Blau in Blau'
|
||
bronze-flick: 'Bronzener Schwung'
|
||
bronze-ink: 'Bronze & Tinte'
|
||
burgundy: 'Burgunder'
|
||
charcoal-amber: 'Anthrazit & Bernstein'
|
||
cobalt-coral: 'Kobalt & Koralle'
|
||
copper: 'Kupfer'
|
||
deep-violet: 'Tiefviolett'
|
||
ember: 'Glut'
|
||
espresso-cream: 'Espresso & Sahne'
|
||
forest: 'Wald'
|
||
forest-lime: 'Wald & Limette'
|
||
graphite-red: 'Graphit & Rot'
|
||
indigo-violet: 'Indigo–Violett'
|
||
ink: 'Tinte'
|
||
midnight-gold: 'Mitternacht & Gold'
|
||
navy-sky: 'Marine & Himmel'
|
||
ocean: 'Ozean'
|
||
petrol-copper: 'Petrol & Kupfer'
|
||
plum-rose: 'Pflaume & Rosé'
|
||
postal: 'Post'
|
||
product-blue: 'Produktblau'
|
||
red-flick: 'Roter Schwung'
|
||
sky-flick: 'Blauer Schwung'
|
||
slate: 'Schiefer'
|
||
sunset: 'Abendrot'
|
||
teal-gold: 'Türkis & Gold'
|
||
tricolore: 'Tricolore'
|
||
twilight: 'Dämmerung'
|
||
violet-flick: 'Violetter Schwung'
|
||
subheading: 'Dein Symbol, dann seine Farben. Topbar und Tab-Symbol tragen sie.'
|
||
main:
|
||
heading: Hauptbereich
|
||
matchGlass: An Glas-Deckkraft angleichen
|
||
subheading: Farbton und Deckkraft des Hauptbereichs, unabhängig von der Seitenleiste.
|
||
tint: Hintergrundfarbton
|
||
preview:
|
||
body: Eine kurze Nachricht, damit der Lesebereich etwas zu zeigen hat. Nichts davon ist echte Post — die Vorschau lädt keine.
|
||
heading: Vorschau
|
||
hide: Vorschau ausblenden
|
||
resize: Vorschau in der Breite ändern
|
||
compose_body: Eine halb geschriebene Antwort, damit im Fenster etwas steht. Hier wird nichts verschickt.
|
||
compose_heading: Neue Nachricht
|
||
compose_send: Senden
|
||
compose_subject: 'Re: Notizen zur Analytical Engine'
|
||
compose_to: ada@plmail.test
|
||
field_date: Datum
|
||
field_from: Von
|
||
field_subject: Betreff
|
||
field_to: An
|
||
reply: Antworten
|
||
sender1: Ada Lovelace
|
||
sender2: Grace Hopper
|
||
sender3: Kathleen Booth
|
||
sender4: Margaret Hamilton
|
||
sender5: Barbara Liskov
|
||
sender6: Karen Spärck Jones
|
||
sender7: Radia Perlman
|
||
sender8: Frances Allen
|
||
show: Vorschau anzeigen
|
||
snippet: So sieht eine Vorschauzeile aus, und so viel davon passt hinein, bevor der Platz in der Zeile ausgeht.
|
||
subheading: Deine Einstellungen an einer Beispielliste. Hier wird nichts aus deinen Nachrichten geladen.
|
||
to: an dich
|
||
value_from: Ada Lovelace <ada@plmail.test>
|
||
value_to: du@plmail.test
|
||
subject1: Notizen zur Analytical Engine
|
||
subject2: 'Re: Entwurf des Compilers'
|
||
subject3: Assembler-Notizen, wie versprochen
|
||
subject4: Steuerungssoftware — die Prioritätenliste
|
||
subject5: 'Re: Abstraktion und die Typhierarchie'
|
||
subject6: Termgewichtung, und warum sie zählt
|
||
subject7: Entwurf für den Spanning Tree
|
||
subject8: 'Die innere Schleife optimieren: Ergebnisse'
|
||
reset: Auf Standard zurücksetzen
|
||
subheading: Farbschema, Dichte, Schrift und Hintergrund — das ganze Erscheinungsbild der App an einem Ort.
|
||
seg:
|
||
custom: 'Eigene'
|
||
default: 'Theme-Vorgabe'
|
||
hidden: 'Ausgeblendet'
|
||
shown: 'Sichtbar'
|
||
text:
|
||
autoDerive: Automatisch ableiten
|
||
color: Textfarbe
|
||
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
|
||
more: 'Mehr Themes'
|
||
light: Hell
|
||
nord: Nord
|
||
paper: Papier
|
||
solar: Solar
|
||
subheading: Farbschema für die gesamte Oberfläche.
|
||
system: System
|
||
typography:
|
||
family: Schriftart
|
||
font:
|
||
grotesk: Grotesk
|
||
monospace: Dickengleich
|
||
serif: Serif
|
||
system: System
|
||
heading: Typografie
|
||
scale: Textgröße
|
||
scaleHint: Gilt für die gesamte Oberfläche. Das Verfassen-Fenster behält seine eigene Schrift und Größe — die gehen mit der Nachricht hinaus.
|
||
subheading: Schriftart und Größe, in der die Oberfläche gezeichnet wird.
|
||
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 du seine Nachricht gelesen hast.'
|
||
inherit: 'Konto-Standard (%mode%)'
|
||
label: 'Lesebestätigungen'
|
||
mode:
|
||
always: 'Immer senden'
|
||
ask: 'Jedes Mal fragen'
|
||
never: 'Nie senden'
|
||
saved: 'Gespeichert.'
|
||
subheading: 'Was jede deiner Adressen beim Senden und Empfangen standardmäßig tut.'
|
||
filters:
|
||
account: Account
|
||
action:
|
||
applyLabel: Label vergeben
|
||
archive: Posteingang überspringen
|
||
fileInCategory: In Kategorie ablegen
|
||
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
|
||
fromAddress: 'Von ist genau'
|
||
fromDomain: 'Absender-Domain ist'
|
||
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
|
||
folder:
|
||
choose: Ordner wählen
|
||
# Steht da, solange eine "Anhänge speichern in"-Aktion keinen
|
||
# eigenen Ordner nennt. Dann speichert die Regel keinen, und der
|
||
# Upload landet dort, wo die Verbindung ihn standardmäßig ablegt —
|
||
# dasselbe kommt zurück, wenn im Picker die oberste Ebene gewählt
|
||
# wird.
|
||
default: Standardordner
|
||
heading: Filter
|
||
join:
|
||
and: und
|
||
none: 'keines von: %list%'
|
||
or: oder
|
||
keyword:
|
||
answered: beantwortet
|
||
draft: ein Entwurf
|
||
flagged: markiert
|
||
seen: gelesen
|
||
category_missing: '(gelöschte Kategorie)'
|
||
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_categories: 'Noch keine Kategorien — leg zuerst eine an.'
|
||
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.
|
||
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.
|
||
spam_rule_name: 'Spam: %sender%'
|
||
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'
|
||
full: 'Wenn %conditions% → %actions%'
|
||
in_account: '%conditions%, in %account%'
|
||
# Ohne das lesen sich zwei Regeln, die in dieselbe Verbindung
|
||
# speichern, exakt gleich — und genau dafür wählt man einen Ordner.
|
||
into_folder: '%action% nach %folder%'
|
||
no_actions: 'Wenn %conditions% → (noch keine Aktionen)'
|
||
then: Dann
|
||
when: Wenn
|
||
yes: Ja
|
||
handwriting:
|
||
heading: Handschriftliche Unterschrift
|
||
subheading: Einmal zeichnen und danach auf jedes PDF setzen, ohne sie neu zu zeichnen. Das ist ein Bild deines Namens, kein digitales Zertifikat.
|
||
saved: Deine gespeicherte Unterschrift
|
||
save: Unterschrift speichern
|
||
clear: Löschen
|
||
remove: Gespeicherte Unterschrift entfernen
|
||
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?
|
||
fact:
|
||
granted_at: 'Angemeldet am'
|
||
last_full_resync: 'Postfach komplett neu gelistet (%count%×)'
|
||
never: 'nie'
|
||
never_delivered: 'es kam noch nie etwas an'
|
||
never_run: 'kein Lauf aufgezeichnet'
|
||
not_recorded: 'nicht erfasst'
|
||
not_registered: 'nicht registriert'
|
||
push_expires: 'Registrierung läuft ab'
|
||
push_last_delivered: 'Letzte Benachrichtigung erhalten'
|
||
push_last_renewal: 'Erneuerung lief zuletzt'
|
||
flash:
|
||
calendar_resync: >-
|
||
%calendar% wurde zur Synchronisierung angemeldet. Sie läuft
|
||
jetzt im Hintergrund, und die Karte unten meldet das Ergebnis.
|
||
push_repair_failed: >-
|
||
Die Sofortzustellung für %account% konnte nicht neu registriert
|
||
werden. Sie bleibt beim Abruf nach Zeitplan, deine Post kommt
|
||
also weiter an. Die Karte unten zeigt, was bekannt ist.
|
||
push_repaired: >-
|
||
Sofortzustellung für %account% neu registriert.
|
||
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, erscheint „Zustand der Konten“ wieder in der
|
||
Einstellungsliste, und hier steht dann, woran es liegt.
|
||
title: 'Alles funktioniert'
|
||
issue:
|
||
account_grant_weekly_expiry:
|
||
body: >-
|
||
Mail kommt weiterhin an. Aber die letzte Anmeldung dieses
|
||
Kontos hat %days% Tage gehalten, bevor Google sie nicht mehr
|
||
akzeptiert hat, und die aktuelle ist inzwischen ungefähr
|
||
genauso alt — sie wird also wahrscheinlich in ein bis zwei
|
||
Tagen aufhören.
|
||
|
||
Dieses Muster macht Google bei OAuth-Apps, deren
|
||
Zustimmungsbildschirm noch auf „Testing‟ steht: deren
|
||
Refresh-Token laufen nach etwa einer Woche ab, egal wie die
|
||
App sie anfragt. Eine neue Anmeldung kauft dir eine weitere
|
||
Woche und behebt nichts. Die Lösung liegt in der Google
|
||
Cloud Console — stell den Veröffentlichungsstatus des
|
||
Zustimmungsbildschirms auf „In production‟. Veröffentlichen
|
||
ist nicht dasselbe wie Verifizieren; eine unverifizierte App
|
||
funktioniert, sie zeigt beim ersten Mal nur einen Warnhinweis.
|
||
|
||
Wenn du sie nicht auf Testing stehen hast, ignorier das —
|
||
dann hat etwas anderes die Anmeldung früh beendet, und es
|
||
passiert vielleicht nicht wieder.
|
||
title: '%account% braucht wahrscheinlich in ein bis zwei Tagen eine neue Anmeldung'
|
||
account_reconnect_weekly:
|
||
body: >-
|
||
Für dieses Konto kommt keine neue Mail mehr an, und alles,
|
||
was daran hängt, steht ebenfalls still — Kalender-Sync,
|
||
Filter beim Empfang und das Senden von dieser Adresse. Die
|
||
bereits geladene Mail ist sicher und weiterhin da.
|
||
|
||
Diese Anmeldung hat %days% Tage gehalten, und genau das
|
||
macht Google mit OAuth-Apps, deren Zustimmungsbildschirm
|
||
noch auf „Testing‟ steht: deren Refresh-Token laufen nach
|
||
etwa einer Woche ab. Wenn das auf diese Installation
|
||
zutrifft, bringt eine neue Anmeldung die Mail wieder ins
|
||
Laufen — und nächste Woche passiert dasselbe. Was es
|
||
abstellt, liegt in der Google Cloud Console: stell den
|
||
Veröffentlichungsstatus des Zustimmungsbildschirms auf
|
||
„In production‟. Veröffentlichen ist nicht dasselbe wie
|
||
Verifizieren; eine unverifizierte App funktioniert, sie
|
||
zeigt beim ersten Mal nur einen Warnhinweis.
|
||
title: '%account% braucht eine neue Anmeldung — und nächste Woche wieder'
|
||
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'
|
||
account_contacts_scope_missing:
|
||
body: >-
|
||
plMail kann jetzt die Kontakte dieses Kontos
|
||
synchronisieren, aber %account% wurde verbunden, bevor
|
||
plMail danach gefragt hat. Mail und Kalender sind nicht
|
||
betroffen. Melde dich einmal neu an und erlaube den Zugriff
|
||
auf Kontakte, dann erscheint sein Adressbuch unter Kontakte.
|
||
title: '%account% erneut verbinden, um seine Kontakte zu synchronisieren'
|
||
account_scope_missing:
|
||
body: >-
|
||
Einige Rechte, die plMail beim Verbinden dieses Kontos
|
||
angefragt hat, wurden nicht erteilt — deshalb funktionieren
|
||
Teile davon nicht und können es auch nicht. Kalender werden
|
||
womöglich nicht synchronisiert, und Änderungen, die du hier
|
||
machst — als gelesen markieren, archivieren, markieren —
|
||
werden vielleicht auf diesem Bildschirm übernommen, vom
|
||
Anbieter abgelehnt und beim nächsten Abgleich wieder
|
||
zurückgesetzt. Verbinde das Konto neu und erlaube alles,
|
||
wonach du gefragt wirst.
|
||
title: '%account% hat nicht alle Rechte bekommen'
|
||
account_sync_failing:
|
||
body: >-
|
||
Mehrere Versuche hintereinander sind fehlgeschlagen — für
|
||
dieses Konto kommt also keine neue Mail an, und alles, was
|
||
davon abhängt, steht still: Filter, die beim Empfang laufen,
|
||
und die Ungelesen-Zähler. Die Mail, die schon da ist, bleibt
|
||
unverändert. Die Anmeldung ist in Ordnung, es liegt also am
|
||
Mailserver — er lehnt ab oder ist nicht erreichbar. Prüf, ob
|
||
er läuft und ob sich an Host, Port oder Passwort etwas
|
||
geändert hat.
|
||
title: '%account% scheitert immer wieder beim Abgleich'
|
||
server_alert:
|
||
body: >-
|
||
Dein Mailserver hat diese Nachricht für dich geschickt, hier
|
||
Wort für Wort: „%alert%“. plMail kann nichts daran ändern —
|
||
ein volles Postfach, ein bald ablaufendes Passwort oder ein
|
||
Server, der umzieht, lassen sich nur von dir oder deinem
|
||
Anbieter klären. Sie bleibt hier stehen, bis der Server sie
|
||
nicht mehr schickt.
|
||
title: '%account% — eine Nachricht von deinem Mailserver'
|
||
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'
|
||
calendars_blocked:
|
||
body: >-
|
||
Alle aus demselben Grund stehengeblieben — dem Grund in der
|
||
Karte darüber. Wenn du den behebst, laufen sie wieder,
|
||
alle zusammen. Sie zeigen, was sie beim letzten
|
||
funktionierenden Abgleich wussten, und es wurde nichts
|
||
gelöscht.
|
||
title: '%count% Kalender werden nicht synchronisiert: %calendars%'
|
||
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'
|
||
integration_scope_missing:
|
||
body: >-
|
||
Diese Verbindung funktioniert, aber einige der Rechte, die
|
||
plMail angefragt hat, wurden nicht erteilt — Teile davon
|
||
funktionieren deshalb nicht und können es auch nicht.
|
||
Vielleicht bleibt das Durchsuchen leer, während Speichern
|
||
klappt, oder umgekehrt. Verbinde sie neu und erlaube alles,
|
||
wonach du gefragt wirst.
|
||
title: '%connection% hat nicht alle Rechte bekommen'
|
||
push_degraded:
|
||
body: >-
|
||
Die Registrierung ist aktiv und nicht abgelaufen, aber es
|
||
ist Post angekommen, die sie nie angekündigt hat — die
|
||
Benachrichtigungen gehen also zwischen Anbieter und dieser
|
||
Installation verloren, sie werden nicht etwa gar nicht
|
||
angefordert. Bei Gmail deutet das auf das Pub/Sub-Abo in
|
||
der Google Cloud: Prüfe, ob es dein Topic noch an diese
|
||
Adresse weiterleitet. Deine Post kommt inzwischen weiter
|
||
über den Abruf nach Zeitplan an, ein paar Minuten später
|
||
als sie sollte.
|
||
title: 'Sofortzustellung ist für %account% registriert, kommt aber nicht an'
|
||
push_lapsed:
|
||
body: >-
|
||
Die Registrierung ist abgelaufen und wurde nicht erneuert,
|
||
es wird also gar nichts mehr zugestellt. Die Erneuerung
|
||
läuft einmal täglich von selbst; liegt der letzte Lauf
|
||
unten Tage zurück, steht der Worker für geplante Aufgaben
|
||
still — dann ist das zu reparieren, nicht dieses Konto.
|
||
Deine Post kommt weiter über den Abruf nach Zeitplan an,
|
||
ein paar Minuten später als sie sollte.
|
||
title: 'Sofortzustellung für %account% ist abgelaufen'
|
||
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_grant:
|
||
label: 'Alle Rechte erteilen'
|
||
promise: >-
|
||
Bringt dich zurück zu %connection%, um dich neu anzumelden
|
||
und alles zu erteilen, wonach plMail fragt. Was dort liegt,
|
||
wird nicht angefasst.
|
||
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.
|
||
grant_contacts:
|
||
label: 'Kontakte erlauben'
|
||
promise: >-
|
||
Bringt dich zurück zum Anbieter, um dich als %account%
|
||
anzumelden und den Zugriff auf Kontakte zu erlauben. An
|
||
deiner Mail ändert sich nichts, und keine Mail wird neu
|
||
heruntergeladen.
|
||
grant_calendar:
|
||
label: 'Alle Rechte erteilen'
|
||
promise: >-
|
||
Bringt dich zurück zum Anbieter, um dich als %account%
|
||
anzumelden und alles zu erteilen, wonach plMail fragt. An
|
||
deiner Mail ändert sich nichts, und es wird nichts neu
|
||
geladen.
|
||
reconnect_early:
|
||
label: 'Jetzt neu anmelden'
|
||
promise: >-
|
||
Meldet dich neu an, bevor die aktuelle Anmeldung ausläuft,
|
||
damit zwischendurch nichts stehen bleibt. Mail, Ordner,
|
||
Labels, Filter, Kalender und Einstellungen bleiben genau so,
|
||
wie sie sind. Du musst dich als %account% anmelden. Das
|
||
kauft dir eine weitere Woche — es verhindert nicht, dass es
|
||
wieder passiert; das tut nur das Veröffentlichen des
|
||
Zustimmungsbildschirms.
|
||
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'
|
||
compose_behavior:
|
||
folded: 'Eingeklappt'
|
||
forward_quote: 'Zitierter Text beim Weiterleiten'
|
||
forward_quote_hint: 'Öffne eine Weiterleitung mit dem Original hinter der Kapsel — oder gleich ausgeklappt.'
|
||
send_feedback: Beim Senden
|
||
send_feedback_hint: 'Fenster sofort schließen und den Rückgängig-Countdown in einer Einblendung zeigen — oder das Fenster offen lassen, sodass sein eigener Senden-Knopf der Abbruch ist.'
|
||
send_optimistic: Schließen
|
||
send_hold: Offen lassen
|
||
heading: 'Verfassen'
|
||
open: 'Ausgeklappt'
|
||
subheading: 'Wie sich das Verfassen-Fenster für dich verhält, über alle Konten.'
|
||
insights:
|
||
extractor:
|
||
flight: Flüge
|
||
flight_hint: Flugnummern und Abflüge aus Airline-Buchungen und Check-in-Mails.
|
||
github: GitHub
|
||
github_hint: Issues und Pull Requests aus GitHub-Benachrichtigungen.
|
||
invoice: Rechnungen
|
||
invoice_hint: Beträge und Fälligkeiten aus Rechnungen und Zahlungserinnerungen.
|
||
otp: Anmeldecodes
|
||
otp_hint: Einmalcodes aus Anmelde- und Bestätigungsmails, mit der Gültigkeit, die die Mail nennt.
|
||
parcel: Pakete
|
||
parcel_hint: Sendungsnummern und Zustellstatus aus Versandbestätigungen.
|
||
subscription: Abos
|
||
subscription_hint: Automatische Verlängerungen und endende Testphasen, mit dem Datum dazu.
|
||
ticket: Tickets
|
||
ticket_hint: Veranstaltungstickets und Buchungen mit Datum.
|
||
heading: Radar
|
||
pane: Streifen über der Mailliste
|
||
pane_hint: >-
|
||
Zeigt dein nächstes Paket, deinen nächsten Flug oder dein
|
||
nächstes Ticket in einem Band über dem Posteingang. Schaltest
|
||
du ihn aus, verschwindet nur das Band — plMail liest diese
|
||
Angaben weiterhin aus deinen Mails, und du findest sie im
|
||
Radar und an der Mail selbst.
|
||
seg:
|
||
'off': 'Aus'
|
||
'on': 'An'
|
||
subheading: >-
|
||
Was plMail aus deinen Mails herausliest — Pakete, Flüge, Tickets,
|
||
GitHub-Aktivität — lokal und nach festen Regeln statt Cloud oder
|
||
Modell; schaltest du eine Quelle aus, entstehen daraus keine neuen
|
||
Karten mehr.
|
||
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.'
|
||
disconnect_confirm_mirrored: '%name% trennen? %calendars% Kalender und %books% Adressbuch/Adressbücher, die von dort gespiegelt werden, werden hier ebenfalls entfernt; Termine aus deinen E-Mails kommen vorher in deinen Standardkalender. 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 dich sichtbar, um zwei Verbindungen auseinanderzuhalten.'
|
||
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 du nicht einzeln auswählen möchtest.'
|
||
secret:
|
||
dropbox: 'Zugriffstoken'
|
||
googleDrive: 'Zugriffstoken'
|
||
googlePhotos: 'Zugriffstoken'
|
||
immich: 'API-Schlüssel'
|
||
nextcloud: 'App-Passwort'
|
||
oneDrive: 'Zugriffstoken'
|
||
paperless: 'API-Token'
|
||
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: ''
|
||
paperless: 'In Paperless unter My Profile → API Auth Token kopieren.'
|
||
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'
|
||
calendar_behaviour:
|
||
button: Kalenderschaltfläche
|
||
button_hint: 'Welche Ansichten die Schaltfläche in der Kopfleiste durchläuft. Eine ausgelassene Ansicht wird nicht entfernt: Mit dem Ziehgriff erreichst du sie weiterhin.'
|
||
heading: Verhalten
|
||
option_calendar: Nur geteilt
|
||
option_none: Alle drei
|
||
option_split: Nur volle Breite
|
||
subheading: 'Wie die Kalenderschaltfläche in der Kopfleiste zwischen den Ansichten wechselt.'
|
||
contacts_behaviour:
|
||
button: 'Kontakte-Knopf'
|
||
button_hint: 'Durch welche Ansichten der Knopf in der oberen Leiste schaltet. Eine ausgelassene Ansicht ist nicht weg: Der Ziehgriff erreicht sie weiterhin.'
|
||
heading: 'Verhalten'
|
||
option_contacts: 'Nur neben der Mail'
|
||
option_none: 'Alle drei'
|
||
option_split: 'Nur volle Breite'
|
||
subheading: 'Wie der Kontakte-Knopf in der oberen Leiste zwischen den Ansichten wechselt.'
|
||
contacts:
|
||
allow_contacts: 'Kontakte erlauben'
|
||
allow_contacts_hint: 'Verbunden, bevor plMail nach Kontakten gefragt hat. Melde dich einmal neu an und erlaube sie, dann erscheint das Adressbuch dieses Kontos hier.'
|
||
allow_contacts_microsoft: 'Gibt deine Organisation Apps für ihre Benutzer frei, bitte zuerst deinen Administrator, plMails Berechtigung für Kontakte freizugeben. Bis dahin lehnt Microsoft diese Anmeldung ab.'
|
||
carddav:
|
||
connect: CardDAV-Server verbinden
|
||
disconnect: '"%name%" trennen'
|
||
disconnect_confirm: >-
|
||
"%name%" trennen? Jedes von dort gespiegelte Adressbuch wird
|
||
hier entfernt, samt Änderungen, die noch nicht an den Server
|
||
gegangen sind. Die Kontakte auf dem Server bleiben unberührt.
|
||
field:
|
||
address: Serveradresse
|
||
address_help: >-
|
||
Die CardDAV-Adresse, die dein Server anzeigt — oder einfach
|
||
die Domain: plMail fragt die Domain, wo ihre Adressbücher
|
||
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 CardDAV-Server: Nextcloud, Radicale, Baïkal, Fastmail,
|
||
iCloud. Meist dieselbe Adresse und dasselbe App-Passwort wie
|
||
bei deinen Kalendern.
|
||
submit: Verbinden und Adressbücher suchen
|
||
title: CardDAV-Server verbinden
|
||
empty: Noch kein Kontakte-Server verbunden.
|
||
find: Adressbücher wählen
|
||
heading: Kontakte
|
||
intro: >-
|
||
Adressbücher, gespiegelt von einem CardDAV-Server. Ihre Kontakte
|
||
werden dir beim Schreiben vorgeschlagen, und was du hier änderst,
|
||
geht zurück an den Server.
|
||
never_synced: Noch nicht synchronisiert
|
||
no_books: Von diesem Server ist noch kein Adressbuch gewählt.
|
||
open: Kontakte öffnen
|
||
read_only: Schreibgeschützt
|
||
subheading: Woher deine Adressbücher kommen.
|
||
subscribe:
|
||
empty: '"%name%" bietet keine Adressbücher an.'
|
||
intro: Wähle, welche Adressbücher von "%name%" plMail spiegeln soll.
|
||
mirrored: Gespiegelt
|
||
mirrored_elsewhere: 'Wird bereits über %name% gespiegelt'
|
||
save: Speichern
|
||
title: Adressbücher wählen
|
||
unsubscribe_note: >-
|
||
Nimmst du den Haken bei einem Adressbuch weg, verschwindet seine
|
||
Kopie hier, samt Änderungen, die noch nicht gesendet sind. Der
|
||
Server behält seine eigene.
|
||
sync_now: '"%name%" jetzt synchronisieren'
|
||
synced: Synchronisiert %date%
|
||
toast:
|
||
disconnected: Kontakte-Server getrennt
|
||
saved: Adressbücher gespeichert
|
||
sync_queued: Synchronisierung eingereiht
|
||
unchanged: Nichts geändert
|
||
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
|
||
managed: 'Unter Integrationen eingerichtet'
|
||
managed_hint: '%name% enthält auch deine Dateien. Trenne die Verbindung unter Einstellungen → Integrationen.'
|
||
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
|
||
mirrored_elsewhere: 'Wird bereits über %name% 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.
|
||
disposal:
|
||
delete_now: Knöpfe zum sofortigen Löschen
|
||
delete_now_hint: >-
|
||
Zeigt „Endgültig löschen“ an einer Zeile im Spam und im Papierkorb und
|
||
über einer Auswahl dort. Die Mail wird auch vom Mailserver entfernt und
|
||
lässt sich nicht zurückholen, deshalb ist es aus, bis du es einschaltest.
|
||
heading: Entsorgen
|
||
'off': Aus
|
||
'on': An
|
||
subheading: Wie Mail endgültig weggeworfen wird.
|
||
images:
|
||
always_show: Externe Bilder immer anzeigen
|
||
always_show_hint: >-
|
||
Lädt die Bilder in jeder Mail, ohne vorher zu fragen. Absender können
|
||
dann sehen, dass und wann du ihre Mail geöffnet hast, aber nicht deine
|
||
Adresse: Die Bilder kommen weiterhin über plMail zu dir. Mail im Spam
|
||
bleibt so oder so blockiert. Aus, bis du es einschaltest.
|
||
heading: Bilder
|
||
'off': Aus
|
||
'on': An
|
||
subheading: Ob Bilder, die eine Mail von anderswo lädt, erst auf Nachfrage geladen werden.
|
||
swipe_actions:
|
||
heading: Wischgesten
|
||
hint: >-
|
||
Eine Wischbewegung wirkt, sobald du weit genug ziehst oder schnell
|
||
wischst. Gelesen/ungelesen und Stern nimmst du zurück, indem du noch
|
||
einmal wischst. Archivieren bietet „Rückgängig“ an. Den Papierkorb gibt
|
||
es hier nicht: Eine Wischbewegung, die Mail löscht, hätte nichts, womit
|
||
sie sich zurücknehmen ließe.
|
||
left:
|
||
label: Nach links wischen
|
||
option:
|
||
archive: Archivieren
|
||
none: Nichts
|
||
read_unread: Gelesen / ungelesen
|
||
star: Stern
|
||
right:
|
||
label: Nach rechts wischen
|
||
subheading: Was eine Wischbewegung über eine Zeile auf dem Telefon bewirkt.
|
||
whats_new:
|
||
heading: 'Was ist neu'
|
||
'off': 'Aus'
|
||
'on': 'An'
|
||
show: 'Nach einem Update zeigen, was neu ist'
|
||
show_hint: 'Aus: Nach einem Update öffnet sich nichts, und das ? oben zeigt keinen Punkt. Die Hinweise findest du weiter unter ? → Was ist neu.'
|
||
subheading: 'Was plMail dir zeigt, nachdem es aktualisiert wurde.'
|
||
nav:
|
||
accounts: E-Mail-Konten
|
||
ai: 'Assistent'
|
||
aliases: Aliase
|
||
app_passwords: App-Passwörter
|
||
appearance: Darstellung
|
||
calendar_behaviour: Verhalten
|
||
calendars: Kalender
|
||
categories: "Kategorien"
|
||
contacts: Kontakte
|
||
disposal: Entsorgen
|
||
filters: Filter
|
||
general: Allgemein
|
||
group:
|
||
access: Zugriff
|
||
calendar: Kalender
|
||
features: Funktionen
|
||
mail: E-Mail
|
||
personal: Persönlich
|
||
health: 'Zustand der Konten'
|
||
images: Bilder
|
||
insights: Radar
|
||
integrations: Integrationen
|
||
labels: Labels
|
||
notifications: Benachrichtigungen
|
||
profile: Profil
|
||
read_receipts: Lesebestätigungen
|
||
reading_pane: Lesebereich
|
||
security: Sicherheit
|
||
sharing: Teilen
|
||
shortcuts: Tastenkürzel
|
||
signature: Signaturen
|
||
swipe_actions: Wischgesten
|
||
templates: 'Vorlagen'
|
||
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'
|
||
error_server: 'Der Server hat dieses Gerät abgelehnt (%error%). Versuch es erneut; passiert es wieder, sag deiner Administration Bescheid.'
|
||
error_subscribe: 'Der Push-Dienst des Browsers hat diesem Gerät keine Adresse gegeben (%error%). In Brave schalte vorher „Google-Dienste für Push-Nachrichten verwenden“ ein.'
|
||
error_worker: 'Der Hintergrunddienst von plMail ist nicht gestartet (%error%). Versuch es erneut; passiert es wieder, sag deiner Administration Bescheid.'
|
||
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.
|
||
password:
|
||
field:
|
||
current: Aktuelles Passwort
|
||
new: Neues Passwort
|
||
new_help: 'Mindestens %count% Zeichen. Mehr wird nicht verlangt — etwas Langes, das du dir merken kannst, ist besser als etwas Kurzes, das du vergisst.'
|
||
repeat: Neues Passwort wiederholen
|
||
flash:
|
||
changed: 'Passwort geändert. Jedes Gerät, auf dem du „angemeldet bleiben“ gesetzt hattest, fragt wieder danach.'
|
||
refused: 'Es wurde nichts geändert — die Meldung steht unter dem Feld.'
|
||
heading: Passwort
|
||
remember_me_note: 'Ein Passwortwechsel meldet jeden gemerkten Browser ab, außer diesem. Genau deshalb lohnt er sich, wenn ein Gerät abhandenkommt.'
|
||
subheading: 'Womit du dich anmeldest. Nur du kannst es ändern — nicht einmal die Administration kann es für dich setzen.'
|
||
submit: Passwort ändern
|
||
reading_pane:
|
||
heading: Lesebereich
|
||
hint: '„Aus“ zeigt Liste und Nachricht nacheinander; „Rechts“ stellt die Nachricht neben die Liste, sobald das Fenster genug Platz für beide hat – am Trenner dazwischen stellst du ein, wie viel jede bekommt.'
|
||
label: 'Geöffnete Nachricht anzeigen'
|
||
off: Aus
|
||
right: Rechts
|
||
subheading: 'Wo eine Unterhaltung aufgeht: anstelle der Liste oder daneben.'
|
||
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.
|
||
shortcuts:
|
||
heading: "Tastenkürzel"
|
||
hint: "c zum Schreiben, e zum Archivieren, j und k, um durch eine Liste zu gehen. Sie wirken nur, solange du nicht gerade irgendwo tippst, und was du so ablegst, lässt sich wie sonst auch rückgängig machen."
|
||
label: "Kürzel"
|
||
'off': "Aus"
|
||
'on': "An"
|
||
show: "Kürzel anzeigen"
|
||
subheading: "Einzelne Tasten für das, was du den ganzen Tag tust."
|
||
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.'
|
||
source:
|
||
clean: 'Es wurde nichts entfernt.'
|
||
embedded: 'In der Signatur gespeicherte Bilder: %count%.'
|
||
failed: 'Die Signatur konnte nicht dargestellt werden. Dein HTML ist unverändert. Versuch es noch einmal.'
|
||
html: 'HTML'
|
||
label: '%label% als HTML'
|
||
placeholder: 'Füge das HTML deiner Signatur ein oder schreib es hier…'
|
||
remote: 'Bilder, die nicht gespeichert werden konnten und verlinkt bleiben: %count%. Sie werden hier nicht angezeigt, und manche Empfänger müssen sie erst erlauben.'
|
||
removed: 'Entfernt, weil Mailprogramme es nicht anzeigen würden oder es nicht sicher zu versenden ist: %items%.'
|
||
rendered: 'Darstellung'
|
||
toggle: 'Ansicht der Signatur'
|
||
subheading: 'Was am Ende der Nachrichten steht, die du schreibst.'
|
||
categories:
|
||
add: Hinzufügen
|
||
built_in: "Eingebaut"
|
||
built_in_off: "Eingebaut · ausgeschaltet — die Mail liegt in Allgemein"
|
||
created: 'Kategorie „%name%“ angelegt.'
|
||
delete: Kategorie löschen
|
||
delete_confirm: 'Kategorie „%name%“ löschen? Die dort abgelegte Mail kommt zurück in den Tab, in dem sie sonst wäre. Es wird keine Mail gelöscht.'
|
||
deleted: 'Kategorie „%name%“ gelöscht.'
|
||
error:
|
||
empty: 'Eine Kategorie braucht einen Namen.'
|
||
reserved: 'Dieser Name gehört zu einem der eingebauten Tabs.'
|
||
taken: 'Du hast bereits eine Kategorie mit diesem Namen.'
|
||
too_long: 'Dieser Name ist zu lang (höchstens 40 Zeichen).'
|
||
filters_link: 'Einstellungen → Filter.'
|
||
heading: "Tabs"
|
||
hint: "Ein eigener Tab erscheint im Posteingang, solange er Mail enthält. Mail kommt über einen Filter mit der Aktion „In Kategorie ablegen“ hinein — richte einen ein unter"
|
||
move_down: "%tab% nach unten"
|
||
move_up: "%tab% nach oben"
|
||
name_label: Name
|
||
off: "Aus"
|
||
on: "An"
|
||
placeholder: 'z. B. Sendungen'
|
||
primary_fixed: "Immer zuerst und immer an — Mail aus einem Tab, den du ausschaltest, landet hier."
|
||
rename: Umbenennen
|
||
renamed: 'Umbenannt in „%name%“.'
|
||
reorder: "Zum Umsortieren ziehen"
|
||
subheading: "Schalte die eingebauten Tabs ein oder aus, leg eigene an und zieh sie in die Reihenfolge, die du willst."
|
||
sorting:
|
||
account_tabs:
|
||
hint: Zeigt die Tabs auch im eigenen Posteingang eines Kontos, wenn du das Konto in der Seitenleiste anklickst. Aus zeigt den ganzen Posteingang dieses Kontos als eine Liste.
|
||
label: Tabs in jedem Konto
|
||
'off': Aus
|
||
'on': An
|
||
again:
|
||
button: Nochmal fragen
|
||
hint: Der Assistent antwortet einmal pro Nachricht und behält die Antwort. Frag noch einmal, wenn sich Modell, Anweisung oder eine plMail-Version geändert haben — es kostet einen Modell-Aufruf pro Nachricht und gilt deshalb nur für deine neueste Mail.
|
||
label: Neueste Mail neu einsortieren
|
||
applies_to_new: Wenn du hier etwas änderst, wird deine vorhandene Mail im Hintergrund neu einsortiert — bei einem großen Postfach dauert das ein paar Minuten, gib den Tabs also einen Moment. Gespräche, die du selbst in einen Tab geschoben hast, bleiben, wo sie sind.
|
||
heading: "Sortierung"
|
||
override:
|
||
hint: Ein Gmail-Konto kommt bereits von Google sortiert an. Hier entscheidest du, ob plMail das so lässt oder selbst antwortet.
|
||
label: Bei Gmail-Konten
|
||
plmail: Selbst sortieren
|
||
provider: Googles behalten
|
||
source:
|
||
assistant: Der Assistent
|
||
assistant_help: Der Assistent liest jede Nachricht und entscheidet, worum es geht. Besser bei Mail, die sich nicht selbst ankündigt — und gelegentlich selbstbewusst daneben. Was er noch nicht erreicht hat, übernehmen die Regeln.
|
||
label: Sortiert nach
|
||
rules: Regeln
|
||
rules_help: Nur Header — ein Mailinglisten-Header, ein Abmeldelink, ein bekannter Absender. Vorhersagbar und wörtlich, und es fragt nie ein Modell.
|
||
unavailable: Sortieren per Assistent setzt voraus, dass die Mail-Sortierung für diese Installation und für dich eingeschaltet ist.
|
||
subheading: Ob dein Posteingang Tabs hat, in welchem eine Nachricht landet — und wer das entscheidet.
|
||
tabs:
|
||
assistant_warning: Der Assistent liest weiterhin jede neue Nachricht, um zu entscheiden, in welchen Tab sie gehört — in Tabs, die du ausgeschaltet hast. Mail, für die er noch nicht geantwortet hat, kann dabei ein paar Sekunden zurückgehalten werden. Wähle unten „Regeln“, um das zu beenden.
|
||
hint: Allgemein, Soziale Netzwerke, Werbung und der Rest. Aus zeigt den Posteingang als eine Liste. Mail wird im Hintergrund weiter einsortiert, damit die Tabs stimmen, sobald du sie wieder einschaltest.
|
||
label: Tabs im Posteingang
|
||
'off': Eine Liste
|
||
'on': Tabs
|
||
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
|
||
templates:
|
||
add: 'Neue Vorlage'
|
||
add_folder: 'Neuer Ordner'
|
||
body: 'Nachricht'
|
||
body_placeholder: 'Schreib die Nachricht. Für alles, was sich ändert, nimm „Variable einfügen“.'
|
||
copy_of: 'Kopie von %name%'
|
||
date:
|
||
after: 'nach heute'
|
||
before: 'vor heute'
|
||
direction: 'Vor oder nach heute'
|
||
example: 'Heute geschrieben, steht dort:'
|
||
format: 'Format'
|
||
heading: 'Datum'
|
||
offset: 'Abstand'
|
||
pattern: 'Muster'
|
||
pattern_hint: 'Im Muster steht d für den Tag, M für den Monat, y für das Jahr und E für den Wochentag: dd.MM.yyyy, EEEE, d. MMMM.'
|
||
unit: 'Einheit'
|
||
delete: 'Löschen'
|
||
delete_confirm: 'Die Vorlage „%name%“ löschen?'
|
||
deleted: 'Vorlage gelöscht.'
|
||
duplicate: 'Duplizieren'
|
||
duplicated: 'Vorlage dupliziert.'
|
||
editor_empty: 'Wähl eine Vorlage aus, um sie zu bearbeiten, oder leg eine neue an.'
|
||
empty: 'Noch keine Vorlagen. Eine Vorlage, die unter einem Konto liegt, wird dir zuerst angeboten, wenn du von dort schreibst.'
|
||
error:
|
||
folder_name_required: 'Gib dem Ordner einen Namen.'
|
||
name_required: 'Gib der Vorlage einen Namen.'
|
||
folder: 'Ordner'
|
||
folder_delete_confirm: 'Den Ordner „%folder%“ löschen? Seine Vorlagen rücken eine Ebene nach oben und bleiben erhalten.'
|
||
folder_deleted: 'Ordner gelöscht. Seine Vorlagen sind noch da.'
|
||
folder_heading_new: 'Neuer Ordner'
|
||
folder_heading_rename: 'Ordner umbenennen'
|
||
folder_in: 'In'
|
||
folder_name: 'Name'
|
||
folder_saved: 'Ordner gespeichert.'
|
||
format:
|
||
custom: 'Eigenes Muster'
|
||
full: 'Ausführlich'
|
||
iso: 'ISO'
|
||
long: 'Lang'
|
||
medium: 'Mittel'
|
||
short: 'Kurz'
|
||
weekday: 'Wochentag'
|
||
group:
|
||
date: 'Datum'
|
||
recipient: 'Empfänger'
|
||
sender: 'Absender'
|
||
heading: 'Vorlagen'
|
||
insert_variable: 'Variable einfügen'
|
||
name: 'Name'
|
||
name_placeholder: 'Zahlungserinnerung'
|
||
preview: 'Vorschau'
|
||
preview_heading: 'So würde sie heute eingefügt, für einen Beispielempfänger'
|
||
preview_no_subject: 'Kein Betreff'
|
||
preview_unavailable: 'Füg ein E-Mail-Konto hinzu, um eine Vorschau zu sehen.'
|
||
# "Name <address>" exactly: it is read by the same code that reads a
|
||
# recipient chip in the compose window, so the preview fills a first
|
||
# name the way a real message would.
|
||
sample_recipient: 'Dana Weber <dana@example.org>'
|
||
saved: 'Vorlage gespeichert.'
|
||
signature:
|
||
automatic: 'Automatisch — die Adresse, von der du schreibst'
|
||
heading: 'Signatur'
|
||
hint: 'Automatisch folgt der Absenderadresse und ersetzt die Signatur, die schon in der Nachricht steht. Eine ausgewählte Signatur bleibt, egal von welcher Adresse du schreibst.'
|
||
subheading: 'Nachrichten, die du einmal schreibst und beim Verfassen einfügst.'
|
||
subject: 'Betreff'
|
||
subject_hint: 'optional, füllt eine leere Betreffzeile'
|
||
subject_placeholder: 'Kein Betreff'
|
||
top_level: 'Kein Ordner'
|
||
tree:
|
||
add_folder_here: 'Neuer Ordner in %folder%'
|
||
add_here: 'Neue Vorlage in %folder%'
|
||
delete_folder: 'Den Ordner %folder% löschen'
|
||
rename: 'Den Ordner %folder% umbenennen'
|
||
unit:
|
||
d: 'Tage'
|
||
m: 'Monate'
|
||
w: 'Wochen'
|
||
|
||
shortcuts:
|
||
groups:
|
||
actions: "Auf Mail"
|
||
actions_hint: "Was ausgewählt ist; sonst die geöffnete Unterhaltung; sonst die hervorgehobene Zeile."
|
||
anywhere: "Überall"
|
||
conversation: "In einer Unterhaltung"
|
||
list: "In einer Liste"
|
||
keys:
|
||
archive: "Archivieren"
|
||
back: "Zurück zur Liste"
|
||
compose: "Neue Nachricht schreiben"
|
||
delete: "Löschen"
|
||
forward: "Weiterleiten"
|
||
go_archive: "Zum Archiv"
|
||
go_drafts: "Zu den Entwürfen"
|
||
go_inbox: "Zum Posteingang"
|
||
go_sent: "Zu Gesendet"
|
||
go_starred: "Zu Markiert"
|
||
help: "Diese Liste anzeigen"
|
||
label: "Label vergeben"
|
||
mark_read: "Als gelesen markieren"
|
||
mark_unread: "Als ungelesen markieren"
|
||
move: "Verschieben nach"
|
||
next: "Eine Unterhaltung nach unten"
|
||
next_conversation: "Nächste Unterhaltung öffnen"
|
||
open: "Hervorgehobene Unterhaltung öffnen"
|
||
previous: "Eine Unterhaltung nach oben"
|
||
previous_conversation: "Vorherige Unterhaltung öffnen"
|
||
reply: "Antworten"
|
||
reply_all: "Allen antworten"
|
||
search: "Suchen"
|
||
select: "Hervorgehobene Unterhaltung auswählen"
|
||
select_all: "Alle auf der Seite auswählen"
|
||
select_none: "Auswahl aufheben"
|
||
select_read: "Gelesene auswählen"
|
||
select_starred: "Markierte auswählen"
|
||
select_unread: "Ungelesene auswählen"
|
||
snooze: "Zurückstellen"
|
||
spam: "Als Spam markieren"
|
||
star: "Markieren oder Markierung entfernen"
|
||
undo: "Letzte Aktion rückgängig machen"
|
||
or: "oder"
|
||
switched_off: "Die Kürzel sind für dich ausgeschaltet. Schalte sie unter Einstellungen → Allgemein ein."
|
||
then: "dann"
|
||
title: "Tastenkürzel"
|
||
|
||
sidebar:
|
||
accounts:
|
||
add: Konto hinzufügen
|
||
heading: Konten
|
||
none: Noch keine Konten
|
||
colour: 'Farbmarkierung für %account%'
|
||
colour_disabled: 'Farbmarkierung für %account%, das deaktiviert ist'
|
||
open: '%account% öffnen'
|
||
toggle: 'Ordner in %account% ein-/ausklappen'
|
||
badge:
|
||
total: '%count% insgesamt'
|
||
unread: '%count% ungelesen'
|
||
unsent: Ein Entwurf konnte nicht gesendet werden
|
||
compose: Schreiben
|
||
labels:
|
||
add: Label erstellen
|
||
heading: Labels
|
||
none: Noch keine Labels
|
||
new_mail_here: 'Neue Nachrichten in %where%'
|
||
new_mail_here_count: '%count% neu in %where%'
|
||
nav:
|
||
all_mail: Alle E-Mails
|
||
archive: Archiv
|
||
calendar: Kalender
|
||
drafts: Entwürfe
|
||
inbox: Posteingang
|
||
more: Mehr
|
||
sent: Gesendet
|
||
snoozed: Zurückgestellt
|
||
spam: Spam
|
||
starred: Markiert
|
||
trash: Papierkorb
|
||
unread: Ungelesen
|
||
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.
|
||
|
||
starred:
|
||
empty: Keine markierten Nachrichten.
|
||
heading: Markiert
|
||
|
||
tabs:
|
||
forums: Foren
|
||
new_count: '%count% neu'
|
||
primary: Allgemein
|
||
promotions: Werbung
|
||
social: Soziale Netzwerke
|
||
updates: Benachrichtigungen
|
||
|
||
thread:
|
||
no_subject: (kein Betreff)
|
||
summary:
|
||
button: 'Gespräch zusammenfassen'
|
||
disclaimer: 'Von einem Modell aus den Nachrichten unten geschrieben. Lies sie, wenn es darauf ankommt.'
|
||
error:
|
||
connection_lost: 'Die Verbindung zu plMail ist abgerissen, während die Zusammenfassung geschrieben wurde. Am Modell-Host liegt es nicht — irgendetwas zwischen diesem Browser und dem Server hat die Verbindung geschlossen.'
|
||
disabled: 'Zusammenfassungen sind ausgeschaltet.'
|
||
generic: 'Die Zusammenfassung konnte nicht geschrieben werden.'
|
||
model_missing: 'Der Modell-Host hat das Schreib-Modell nicht. Jemand mit Admin-Rechten muss es erst ziehen.'
|
||
no_answer: 'Das Modell hat nichts geantwortet.'
|
||
refused: 'Der Modell-Host hat die Anfrage abgelehnt. Wenn das das ganze Gespräch war, ist es vielleicht mehr, als die Maschine auf einmal halten kann.'
|
||
timeout: 'Der Modell-Host hat zu lange gebraucht.'
|
||
unreachable: 'Der Modell-Host war nicht erreichbar.'
|
||
generated: 'Zusammengefasst %when%'
|
||
heading: 'Zusammenfassung'
|
||
regenerate: 'Neu zusammenfassen'
|
||
partial: 'Das Gespräch war zu lang, um es ganz zu schicken — die Zusammenfassung ist aus einem Teil davon geschrieben.'
|
||
send_full: 'Stattdessen das ganze Gespräch zusammenfassen — dauert länger und verlangt dem Modell-Host mehr ab.'
|
||
stale: 'Das Gespräch hat sich geändert, seit das hier geschrieben wurde.'
|
||
state:
|
||
sent: 'An das Modell geschickt …'
|
||
stopped: 'Angehalten. Nichts wurde gespeichert.'
|
||
waiting: 'Die erste Anfrage nach einer Weile dauert etwa eine Minute, solange das Modell lädt und das Gespräch liest.'
|
||
queued: 'In der Warteschlange. Das ganze Gespräch wird im Hintergrund zusammengefasst — du kannst das hier zumachen und später wiederkommen, dann ist es da.'
|
||
reading: 'Liest das Gespräch noch — %elapsed% bisher. Danach erscheint die Zusammenfassung Wort für Wort.'
|
||
waiting_full: 'Liest das ganze Gespräch. Bei einem langen Verlauf kann das mehrere Minuten dauern, und bis es fertig gelesen hat, passiert sichtbar nichts.'
|
||
working: 'Fasst zusammen …'
|
||
stop: 'Anhalten'
|
||
too_short: 'Eine Nachricht. Da gibt es nichts zusammenzufassen.'
|
||
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
|
||
answer: Neue Antwort auf deine Nachricht
|
||
answer_badge: Antwort
|
||
has_attachment: Enthält Anhang
|
||
me: ich
|
||
meaning: 'Über die Bedeutung gefunden, nicht über die eingegebenen Wörter'
|
||
meaning_badge: 'Bedeutung'
|
||
message_count: "({ count })"
|
||
new: Dir noch nie angezeigt
|
||
new_badge: Neu
|
||
no_recipient: (kein Empfänger)
|
||
no_subject: (kein Betreff)
|
||
send_failed:
|
||
failed: Nicht gesendet
|
||
may_have_sent: 'Vielleicht gesendet: schau unter Gesendet nach, bevor du sie noch einmal sendest'
|
||
rate_limited: 'Nicht gesendet: dein Mailanbieter hat das Senden begrenzt'
|
||
refused: 'Nicht gesendet: der Mailserver hat sie abgelehnt'
|
||
unavailable: 'Nicht gesendet: dein Mailanbieter war nicht erreichbar'
|
||
scheduled: 'Geplant %when%'
|
||
select: Auswählen
|
||
sheet:
|
||
label: Aktionen für diese Unterhaltung
|
||
select: Auswählen
|
||
star: Diese Nachricht markieren
|
||
to: 'An: %recipients%'
|
||
unread: Ungelesen
|
||
unstar: Markierung dieser Nachricht entfernen
|
||
|
||
toast:
|
||
archived: Unterhaltung archiviert.
|
||
categorised: 'Nach %category% verschoben'
|
||
dismiss: Schließen
|
||
labelled: 'Label %label% vergeben'
|
||
moved: 'Nach %folder% verschoben'
|
||
schedule_cancelled: Geplanter Versand abgebrochen.
|
||
send_too_late: Zu spät — diese Nachricht wurde bereits gesendet.
|
||
send_failed: 'Diese Nachricht konnte nicht gesendet werden: %subject%'
|
||
send_failed_may_have_sent: '%subject% wurde vielleicht gesendet, aber die Antwort ging verloren. Schau unter Gesendet nach, bevor du sie noch einmal sendest.'
|
||
send_failed_rate_limited: 'Diese Nachricht konnte nicht gesendet werden: %subject%. Dein Mailanbieter begrenzt gerade das Senden; versuch es in ein paar Minuten noch einmal.'
|
||
send_failed_refused: 'Diese Nachricht konnte nicht gesendet werden: %subject%. Der Mailserver hat sie abgelehnt.'
|
||
send_failed_unavailable: 'Diese Nachricht konnte nicht gesendet werden: %subject%. Dein Mailanbieter war nicht erreichbar.'
|
||
sent: Nachricht gesendet.
|
||
spam_filtered: 'In den Spam verschoben. Künftige Mail von %sender% landet auch dort.'
|
||
undo: Rückgängig
|
||
undo_expired: Das lässt sich nicht mehr rückgängig machen.
|
||
undone: Rückgängig gemacht.
|
||
unlabelled: 'Label %label% entfernt'
|
||
|
||
toolbar:
|
||
view_select:
|
||
offer: 'Es lassen sich alle %count% Unterhaltungen in dieser Ansicht auswählen.'
|
||
offer_action: 'Alle %count% auswählen'
|
||
selected: 'Alle %count% Unterhaltungen in dieser Ansicht sind ausgewählt.'
|
||
clear: 'Nur diese Seite auswählen'
|
||
actions:
|
||
archive: Archivieren
|
||
delete: Löschen
|
||
label: Label vergeben
|
||
mark_read: Als gelesen markieren
|
||
mark_unread: Als ungelesen markieren
|
||
more: Mehr
|
||
move_to: Verschieben nach
|
||
not_spam: 'Kein Spam'
|
||
purge: Endgültig löschen
|
||
snooze: Zurückstellen
|
||
spam: 'Als Spam markieren'
|
||
star: Markieren
|
||
# Asked before a selection in Spam is deleted for good. Two sentences rather
|
||
# than one with a number swapped in, because the singular reads differently.
|
||
purge_confirm:
|
||
one: 'Diese Unterhaltung endgültig löschen? Sie lässt sich nicht zurückholen und wird auch vom Mailserver entfernt.'
|
||
many: 'Diese %count% Unterhaltungen endgültig löschen? Sie lassen sich nicht zurückholen und werden auch vom Mailserver entfernt.'
|
||
filter:
|
||
show_all: Alle anzeigen
|
||
unread_only: Nur ungelesene
|
||
pagination:
|
||
next: Älter
|
||
of: von
|
||
prev: Neuer
|
||
select:
|
||
all: Alle
|
||
none: Keine
|
||
read: Gelesene
|
||
starred: Markierte
|
||
unread: Ungelesene
|
||
whole_view: 'Alle %count% in dieser Ansicht'
|
||
select_all: Alle Konversationen auswählen
|
||
select_menu: Weitere Auswahloptionen
|
||
|
||
spam:
|
||
empty: Keine Spam-Nachrichten.
|
||
heading: Spam
|
||
|
||
spam_menu:
|
||
confirm_body: 'Mail von jeder Adresse bei %domain% landet dann im Spam, auch von Leuten, die dir noch nie geschrieben haben.'
|
||
confirm_cancel: 'Abbrechen'
|
||
confirm_shared: 'Das ist ein Mail-Anbieter, den viele nutzen.'
|
||
confirm_yes: 'Ganze Domain filtern'
|
||
domain: 'Diese ganze Domain immer in den Spam'
|
||
filter_heading: 'Und künftige Mail filtern'
|
||
heading: 'Als Spam markieren'
|
||
more: 'Weitere Optionen'
|
||
move: 'In den Spam verschieben'
|
||
move_hint: 'Nur diese Unterhaltung.'
|
||
sender: 'Diesen Absender immer in den 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
|
||
|
||
unread:
|
||
empty: Keine ungelesenen Nachrichten.
|
||
heading: Alle ungelesenen Nachrichten
|
||
|
||
# The names of template variables, as they read on a chip in the editor and
|
||
# on a placeholder still open in a message. Top-level because both the
|
||
# settings page and the compose window use them.
|
||
templates:
|
||
variable:
|
||
date: 'Datum'
|
||
recipient_email: 'Adresse des Empfängers'
|
||
recipient_first_name: 'Vorname'
|
||
recipient_name: 'Voller Name'
|
||
sender_email: 'Deine Adresse'
|
||
sender_name: 'Dein Name'
|
||
signature: 'Signatur'
|
||
|
||
whats_new:
|
||
admin: 'Für Administratoren'
|
||
also: 'Außerdem in dieser Version'
|
||
changes: '{0}Keine Änderungen|{1}1 Änderung|]1,Inf[ %count% Änderungen'
|
||
changes_heading: 'Änderungen'
|
||
done: 'Fertig'
|
||
feedback:
|
||
back: 'Zurück zu den Änderungen'
|
||
error:
|
||
account: 'Wähle das Konto, von dem gesendet wird.'
|
||
empty: 'Schreib eine Nachricht oder sag, wie es mit plMail läuft.'
|
||
screenshot: 'Der Screenshot ließ sich nicht anhängen. Nimm den Haken heraus und sende noch einmal.'
|
||
send: 'Die Mail konnte nicht gesendet werden. Dein Text ist noch da; versuch es gleich noch einmal.'
|
||
transport: 'Nicht gesendet: Der Server hat mit %status% statt mit plMail geantwortet. Versuch es ohne den Screenshot oder frag, wer diese Installation betreibt.'
|
||
from: 'Senden von'
|
||
message:
|
||
label: 'Deine Nachricht'
|
||
placeholder: 'Was dir gefällt, was dir fehlt, was kaputt ist.'
|
||
nudge: 'Gefällt dir etwas, fehlt dir etwas oder ist etwas kaputt?'
|
||
rating:
|
||
better: 'Besser'
|
||
label: 'Seit dem Update ist plMail (optional)'
|
||
same: 'Wie vorher'
|
||
worse: 'Schlechter'
|
||
screenshot:
|
||
failed: 'Die Seite ließ sich nicht aufnehmen, also wird nichts angehängt.'
|
||
label: 'Screenshot der Seite anhängen, auf der du warst'
|
||
preview: 'Der Screenshot, der angehängt wird'
|
||
taking: 'Screenshot wird aufgenommen …'
|
||
send: 'Feedback senden'
|
||
sent:
|
||
body: 'Eine Kopie liegt in deinem Ordner „Gesendet“, und eine Antwort kommt an wie jede andere Mail.'
|
||
title: 'Feedback gesendet.'
|
||
title: 'Feedback senden'
|
||
where: 'Geht per Mail an %address%, mit deiner plMail-Version. Eine Kopie bleibt in deinem Ordner „Gesendet“.'
|
||
highlights: 'Highlights'
|
||
menu:
|
||
label: 'Hilfe und Feedback'
|
||
unseen: 'Es gibt Versionshinweise, die du noch nicht gesehen hast'
|
||
version: 'plMail %version%'
|
||
missing: 'Die Versionshinweise sind in dieser Installation nicht enthalten.'
|
||
nav:
|
||
current: 'Installiert'
|
||
history: 'Vollständiges Änderungsprotokoll'
|
||
label: 'Versionen'
|
||
new: 'Neu für dich'
|
||
quiet: 'Nach Updates nicht mehr anzeigen'
|
||
screenshot: 'Screenshot'
|
||
screenshot_close: 'Screenshot schließen'
|
||
screenshot_open: 'Screenshot in voller Größe öffnen'
|
||
title: 'Was ist neu'
|
||
contacts:
|
||
add_address: 'Adresse hinzufügen'
|
||
add_custom: 'Feld hinzufügen'
|
||
add_date: 'Datum hinzufügen'
|
||
add_email: 'E-Mail hinzufügen'
|
||
add_im: 'Chat-Adresse hinzufügen'
|
||
add_phone: 'Telefon hinzufügen'
|
||
add_relation: 'Person hinzufügen'
|
||
add_to_address_book: 'Zu Kontakten hinzufügen'
|
||
add_url: 'Website hinzufügen'
|
||
back: Zurück
|
||
book_all: 'Alle Bücher'
|
||
book_local: 'Nicht synchronisiert'
|
||
cancel: Abbrechen
|
||
check_carefully: 'Genau prüfen'
|
||
city: Ort
|
||
company: Firma
|
||
confidence: '%pct%% Übereinstimmung'
|
||
count: '{0}Keine Kontakte|{1}1 Kontakt|]1,Inf[ %count% Kontakte'
|
||
country: Land
|
||
created: 'Kontakt angelegt.'
|
||
custom_label_placeholder: 'Feldname'
|
||
custom_value_placeholder: 'Wert'
|
||
date_full: '%day%. %month% %year%'
|
||
date_no_year: '%day%. %month%'
|
||
day: 'Tag'
|
||
delete: Löschen
|
||
delete_confirm: '%name% löschen? Der Kontakt kommt in den Papierkorb und wird nach 90 Tagen endgültig entfernt.'
|
||
deleted_contact: '(gelöschter Kontakt)'
|
||
display_name: 'Vollständiger Name'
|
||
duplicates: Doppelte
|
||
duplicates_count: '{1}1 mögliches Paar|]1,Inf[ %count% mögliche Paare'
|
||
duplicates_none: 'Keine Doppelten gefunden. Neue Importe werden automatisch geprüft.'
|
||
edit: 'Kontakt bearbeiten'
|
||
email_placeholder: name@example.com
|
||
empty: 'Noch keine Kontakte. Leg den ersten an oder importiere eine vCard- oder CSV-Datei.'
|
||
empty_search: 'Kein Kontakt passt zu dieser Suche.'
|
||
export_vcf: 'Als vCard exportieren'
|
||
field:
|
||
birthday: 'Geburtstag'
|
||
company: 'Firma'
|
||
department: 'Abteilung'
|
||
familyName: 'Nachname'
|
||
givenName: 'Vorname'
|
||
jobTitle: 'Position'
|
||
middleName: 'Zweiter Vorname'
|
||
namePrefix: 'Anrede/Titel'
|
||
nameSuffix: 'Namenszusatz'
|
||
nickname: 'Spitzname'
|
||
officeLocation: 'Büro'
|
||
phoneticCompany: 'Firma (phonetisch)'
|
||
phoneticFamilyName: 'Nachname (phonetisch)'
|
||
phoneticGivenName: 'Vorname (phonetisch)'
|
||
phoneticMiddleName: 'Zweiter Vorname (phonetisch)'
|
||
im_placeholder: 'Name oder Adresse'
|
||
im_service:
|
||
aim: 'AIM'
|
||
googleTalk: 'Google Talk'
|
||
icq: 'ICQ'
|
||
matrix: 'Matrix'
|
||
msn: 'MSN'
|
||
other: 'Andere'
|
||
qq: 'QQ'
|
||
sip: 'SIP'
|
||
skype: 'Skype'
|
||
teams: 'Teams'
|
||
xmpp: 'XMPP (Jabber)'
|
||
yahoo: 'Yahoo'
|
||
im_service_label: 'Dienst'
|
||
import: Importieren
|
||
import_bad_format: 'Nur .vcf/.vcard- und .csv-Dateien lassen sich importieren.'
|
||
import_choose: 'Datei wählen'
|
||
import_confirm: '%count% Kontakte importieren'
|
||
import_dedupe_note: 'Nach dem Import landest du auf der Seite mit den Doppelten, um doppelt Importiertes zusammenzuführen.'
|
||
import_expired: 'Der vorbereitete Import ist abgelaufen. Bitte lade die Datei erneut hoch.'
|
||
import_formats: '.vcf, .vcard oder .csv'
|
||
import_hint: 'Ein .vcf/.vcard-Adressbuchexport oder eine .csv-Datei. Doppelte werden nach dem Import geprüft.'
|
||
import_no_file: 'Es wurde keine Datei hochgeladen.'
|
||
import_preview_count: '%count% Kontakte in der %format%-Datei gefunden. Die ersten davon:'
|
||
import_step1: 'Schritt 1 — Datei wählen'
|
||
import_step2: 'Schritt 2 — Vorschau'
|
||
import_upload: 'Hochladen & Vorschau'
|
||
import_uploading: 'Wird hochgeladen…'
|
||
imported: '%count% Kontakte importiert.'
|
||
in_address_book: 'In deinen Kontakten'
|
||
keep_this: 'Diesen behalten'
|
||
label: Bezeichnung
|
||
label_home: Privat
|
||
label_mobile: Mobil
|
||
label_other: Sonstige
|
||
label_work: Arbeit
|
||
labels:
|
||
anniversary: 'Jahrestag'
|
||
assistant: 'Assistenz'
|
||
blog: 'Blog'
|
||
brother: 'Bruder'
|
||
child: 'Kind'
|
||
father: 'Vater'
|
||
friend: 'Freund/in'
|
||
home: 'Privat'
|
||
manager: 'Vorgesetzte/r'
|
||
mobile: 'Mobil'
|
||
mother: 'Mutter'
|
||
other: 'Sonstige'
|
||
parent: 'Elternteil'
|
||
partner: 'Partner/in'
|
||
profile: 'Profil'
|
||
relative: 'Verwandte/r'
|
||
sibling: 'Geschwister'
|
||
sister: 'Schwester'
|
||
spouse: 'Ehepartner/in'
|
||
work: 'Arbeit'
|
||
merge: Zusammenführen
|
||
merge_pick_keep: 'Wähle zuerst, welcher Kontakt bleiben soll.'
|
||
merge_read_only: 'Ein Kontakt aus einem schreibgeschützten Adressbuch kann nicht zusammengeführt werden.'
|
||
merge_undo: Rückgängig
|
||
merge_undo_expired: 'Die 90-tägige Frist zum Rückgängigmachen ist abgelaufen.'
|
||
merge_undone: 'Zusammenführung rückgängig gemacht.'
|
||
merged: 'Kontakte zusammengeführt. Du kannst es in der Liste unten rückgängig machen.'
|
||
merged_into: '%count% in %name% zusammengeführt'
|
||
month: 'Monat'
|
||
months:
|
||
1: 'Januar'
|
||
2: 'Februar'
|
||
3: 'März'
|
||
4: 'April'
|
||
5: 'Mai'
|
||
6: 'Juni'
|
||
7: 'Juli'
|
||
8: 'August'
|
||
9: 'September'
|
||
10: 'Oktober'
|
||
11: 'November'
|
||
12: 'Dezember'
|
||
nav: Kontakte
|
||
new: 'Neuer Kontakt'
|
||
next: Weiter
|
||
no_details: 'Noch keine Kontaktdaten.'
|
||
no_subject: '(kein Betreff)'
|
||
notes: Notizen
|
||
page: 'Seite %page%'
|
||
pane:
|
||
close: 'Kontakte schließen'
|
||
mode:
|
||
contacts: 'Kontakte in voller Breite zeigen'
|
||
mail: 'Kontakte ausblenden'
|
||
split: 'Kontakte neben der Mail zeigen'
|
||
resize: 'Kontakte in der Breite ändern'
|
||
pending: 'Wartet darauf, an den Server zu gehen'
|
||
phone_placeholder: '+49 30 1234567'
|
||
phonetic: 'Phonetische Schreibweise'
|
||
photo_hint: 'JPG, PNG oder WebP, bis 5 MB.'
|
||
photo_invalid: 'Dieses Foto ließ sich nicht verwenden. JPG, PNG oder WebP bis 5 MB.'
|
||
photo_remove: 'Foto entfernen'
|
||
photo_removed: 'Foto entfernt.'
|
||
photo_upload: 'Foto hochladen'
|
||
photo_uploaded: 'Foto aktualisiert.'
|
||
postcode: PLZ
|
||
prev: Zurück
|
||
primary: Hauptadresse
|
||
primary_short: Haupt
|
||
recent_merges: 'Letzte Zusammenführungen'
|
||
reference_emails: Bezugs-E-Mails
|
||
reference_emails_empty: 'Noch keine E-Mails mit diesem Kontakt.'
|
||
reference_emails_hint: 'Jede nicht gelöschte E-Mail von oder an diesen Kontakt — Posteingang, Gesendet, Entwürfe, Papierkorb und Labels.'
|
||
region: Bundesland/Region
|
||
rel_assistant: Assistenz
|
||
rel_manager: Vorgesetzte(r)
|
||
rel_partner: Partner(in)
|
||
rel_related: Verwandt
|
||
related: 'Verknüpfte Kontakte'
|
||
relation_placeholder: 'Name'
|
||
remove: Entfernen
|
||
save: Speichern
|
||
save_to: 'Speichern in'
|
||
save_to_book_hint: 'Geht an %book% auf %server% und von dort auf jedes Gerät, das es synchronisiert.'
|
||
save_to_hint: 'Ein Kontakt in einem synchronisierten Adressbuch geht an dessen Server und von dort auf jedes Gerät, das es synchronisiert.'
|
||
save_to_local: 'plMail'
|
||
save_to_local_hint: 'Bleibt nur in plMail.'
|
||
search: 'Kontakte durchsuchen'
|
||
search_placeholder: 'Name, Firma oder E-Mail suchen…'
|
||
section_addresses: Adressen
|
||
section_custom: 'Eigene Felder'
|
||
section_dates: 'Daten'
|
||
section_details: Details
|
||
section_emails: E-Mail-Adressen
|
||
section_ims: 'Chat'
|
||
section_name: Name
|
||
section_notes: Notizen
|
||
section_phones: Telefonnummern
|
||
section_relations: 'Personen'
|
||
section_urls: 'Websites'
|
||
section_work: 'Arbeit'
|
||
street: Straße
|
||
synced_read_only: 'Schreibgeschützt, aus %book% auf %server%'
|
||
synced_with: 'Synchronisiert mit %book% auf %server%'
|
||
tag_all: Alle
|
||
tags: Schlagwörter
|
||
tags_placeholder: 'Durch Kommas getrennt, z. B. Familie, Lieferanten'
|
||
title: Kontakte
|
||
trashed: 'Kontakt in den Papierkorb verschoben.'
|
||
updated: 'Kontakt gespeichert.'
|
||
url_placeholder: 'https://'
|
||
validation:
|
||
name_required: 'Gib dem Kontakt einen Namen.'
|
||
year_optional: 'Jahr (optional)'
|
||
editor:
|
||
add: 'Hinzufügen'
|
||
add_email: 'E-Mail-Adresse hinzufügen'
|
||
add_phone: 'Telefonnummer hinzufügen'
|
||
address: 'Adresse'
|
||
adds: 'Neu'
|
||
ai_failed: 'Die KI hat nicht geantwortet. Versuch es gleich noch einmal.'
|
||
ai_nothing: 'Die KI hat keine Vorschläge.'
|
||
ai_running: 'Die KI wird gefragt. Dafür bekommt sie diesen Kontakt und die Signatur seiner letzten Mail.'
|
||
ai_sent: 'Diesen Kontakt und die Signatur seiner Mail vom %date% an den KI-Dienst geschickt, den deine Administration eingerichtet hat. Nichts ändert sich, bevor du es übernimmst.'
|
||
ai_sent_no_mail: 'Diesen Kontakt an den KI-Dienst geschickt, den deine Administration eingerichtet hat. Es gibt keine Mail von ihm mit Signatur. Nichts ändert sich, bevor du es übernimmst.'
|
||
ai_title: 'Vorschläge der KI'
|
||
applied: 'Ins Formular übernommen und markiert: %count%. Gespeichert wird erst, wenn du auf Speichern klickst.'
|
||
apply_many: '%count% Angaben übernehmen'
|
||
apply_none: 'Nichts zu übernehmen'
|
||
apply_one: '1 Angabe übernehmen'
|
||
auto_label: 'Typ aus deiner Eingabe erraten. Wähl einen aus, um ihn festzulegen.'
|
||
close_panel: 'Schließen'
|
||
dates: 'Daten'
|
||
dirty_many: '%count% ungespeicherte Änderungen'
|
||
dirty_one: '1 ungespeicherte Änderung'
|
||
discard: 'Verwerfen'
|
||
edit_parts: 'Teile bearbeiten'
|
||
email: 'E-Mail'
|
||
email_invalid: 'Das sieht noch nicht nach einer E-Mail-Adresse aus.'
|
||
fills: 'Füllt ein leeres Feld'
|
||
fix_emails: 'Korrigier die rot markierte E-Mail-Adresse, um zu speichern.'
|
||
hide_parts: 'Teile ausblenden'
|
||
improve: 'Mit KI verbessern'
|
||
more_work: 'Abteilung, Büro, phonetische Schreibweise'
|
||
name_placeholder: 'Vor- und Nachname'
|
||
new_hint: 'Ein neuer Kontakt. Speichere, wenn alles drin ist.'
|
||
note: 'Notiz'
|
||
nothing_found: 'In diesem Text sieht noch nichts nach Kontaktdaten aus.'
|
||
parts_stale: 'Name und Namensteile passen nicht mehr zusammen.'
|
||
paste: 'Details einfügen'
|
||
paste_placeholder: 'Füg eine Signatur, eine Adresse oder eine vCard ein. Nichts ändert sich, bevor du es übernimmst.'
|
||
paste_title: 'Signatur, vCard oder Adresse einfügen'
|
||
person: 'Person'
|
||
phone: 'Telefon'
|
||
preferred: 'Bevorzugt'
|
||
reading: 'Wird gelesen …'
|
||
relabels: 'Ändert den Typ von %from% zu %to%'
|
||
remove_what: '%what% entfernen'
|
||
replaces: 'Ersetzt „%value%“'
|
||
same: 'Schon vorhanden'
|
||
split_again: 'Namen neu aufteilen'
|
||
summary_conflict: '%count% weicht ab'
|
||
summary_new: '%count% neu'
|
||
summary_same: '%count% schon vorhanden'
|
||
website: 'Website'
|
||
from_mail:
|
||
add_to: 'Zu %name% hinzufügen'
|
||
existing: 'Zu einem bestehenden Kontakt hinzufügen'
|
||
more_details: 'Weitere Angaben'
|
||
name: 'Name'
|
||
new: 'Neuer Kontakt'
|
||
no_matches: 'Kein Kontakt passt.'
|
||
save: 'Speichern'
|
||
search: 'Kontakte durchsuchen'
|
||
title: 'Zu Kontakten hinzufügen'
|
||
quick:
|
||
ai_ask: 'Manches war nicht eindeutig. Solche Signaturen kann die KI meist sortieren.'
|
||
ai_ask_complete: 'Sieht vollständig aus. Du kannst die KI trotzdem drüberschauen lassen.'
|
||
ai_disclosure: 'Schickt nur diesen Text an den KI-Dienst, den deine Administration eingerichtet hat. Gespeichert wird erst, wenn du den Kontakt anlegst.'
|
||
ai_running: 'Die KI wird gefragt …'
|
||
ai_undo: 'KI-Änderungen rückgängig'
|
||
ai_undo_ask: 'Nicht, was du wolltest? Zurück zu dem, was die Regeln gefunden haben.'
|
||
all_fields: 'Alle Felder'
|
||
box_hint: 'Wird beim Tippen gelesen. Jede Zeile unten kannst du abwählen, neu tippen oder einem anderen Typ zuordnen.'
|
||
box_label: 'Tipp oder füg irgendetwas über die Person ein'
|
||
box_placeholder: 'Einen Namen, eine E-Mail-Signatur, eine Zeile wie Mia Hoffmann <mia@example.net> oder eine vCard'
|
||
change_type: 'Ändern, was das ist'
|
||
create: 'Kontakt anlegen'
|
||
detail_ai: 'Änderungen sind markiert. Nimm weg oder korrigier, was nicht passt, bevor du den Kontakt anlegst.'
|
||
detail_ai_same: 'Die KI hat nichts zu ändern gefunden.'
|
||
detail_rules: 'Jede Zeile wurde zugeordnet.'
|
||
detail_unsure: 'Noch nicht zugeordnet: %count%'
|
||
detail_vcard: 'Alle %count% Felder direkt gelesen. Nichts wurde geraten.'
|
||
done_parts: 'Fertig'
|
||
existing: '%name% hat schon %email%.'
|
||
fix_parts: 'Korrigieren'
|
||
ignore: 'Weglassen'
|
||
keep: 'Behalten'
|
||
no_name: 'Braucht einen Namen'
|
||
open_existing: 'Diesen Kontakt öffnen'
|
||
skipped: 'Als Grußformel weggelassen: %lines%'
|
||
source_ai: 'Von der KI verbessert'
|
||
source_rules: 'Nach Regeln gelesen'
|
||
source_vcard: 'vCard'
|
||
summary_many: '%name% mit %count% Angaben'
|
||
summary_name: '%name%, nur der Name'
|
||
summary_none: 'Tipp oder füg etwas über die Person ein, um anzufangen.'
|
||
summary_one: '%name% mit 1 Angabe'
|
||
unsure_many: 'Wohin gehören diese Zeilen?'
|
||
unsure_one: 'Wohin gehört diese Zeile?'
|
||
use_as: 'Verwenden als …'
|
||
you_placed: 'Von dir zugeordnet' |