Files
pl_mail/translations/messages.en_PI.yaml
T
3d7a25c1e6 Save to Paperless-ngx: tags are choices, and the upload goes through (#78)
The Save to… chooser drew Paperless tags as folders to open, and clicking one did nothing. A DestinationKind (folder, album, tag) now decides how the chooser is drawn: a tag is the choice itself, with a No tag row. The upload is sent as a string with a Content-Length instead of streamed, which Paperless read as an empty form ("No file was submitted", #79).

Co-authored-by: Flouss <15911342+Flouss@users.noreply.github.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 11:38:06 +02:00

4209 lines
208 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
account:
add_title: Sign on a new crew member
added: Crew member signed on, arr!
colour_set: Th' colours be changed
disabled: Ship's papers revoked
enabled: Ship's papers restored
form:
email: Parrot address
encryption: Cipher
imap:
heading: Incomin' — IMAP
host: Port o' call
password: Secret word
port: Berth number
preset:
label: Harbourmaster
placeholder: Pick yer harbour…
smtp:
heading: Outgoin' — SMTP
host: Port o' call
password: "Password fer sendin'"
same: "Use th' same password fer sendin'"
separate: "Use a different password fer sendin'"
username: Name ye go by
oauth:
calendar_declined: The account be aboard, but ye never granted the almanac — so its calendars will not sync. Sign in again and tick the calendar box when Google asks.
google: Sail on with Google
info: Sign on with yer harbourmaster — no secret word be kept aboard.
microsoft: Sail on with Microsoft
primary_set: A new flagship be named
removed: Crew member put ashore
tabs:
imap: IMAP / SMTP
oauth: OAuth
test:
button: Test the riggin'
hint:
expects_ssl: 'Port %port% be wantin'' SSL/TLS from the first word, matey.'
expects_starttls: 'Port %port% be wantin'' STARTTLS, not SSL/TLS from the first word.'
no_encryption: 'Ye sail with no encryption — most harbours demand SSL/TLS or STARTTLS.'
imap: IMAP
request_failed: 'The test couldn''t set sail (%status%).'
result:
auth: 'The harbourmaster turned away yer name or password.'
failed: 'The line didn''t hold. Check the host, port an'' encryption.'
host_invalid: 'A host name or IP address only, sailor — no slashes, question marks nor @.'
imap_ok: 'Aboard — %count% holds in sight.'
missing_fields: 'Give us an email address an'' an IMAP host first.'
missing_password: 'No password to test with. Enter one above — on the edit form a blank field keeps the stored one, which the test can only use once the ship be saved.'
smtp_none: 'No SMTP host charted — this ship sends no letters.'
smtp_ok: 'Aboard an'' signed in.'
timeout: 'The server kept its silence too long. Check the host an'' port, an'' whether a firewall blocks the channel.'
tls: 'The secure line broke — the certificate weren''t trusted, or the encryption don''t match the port.'
unreachable: 'Couldn''t raise the server. Check the host name an'' port.'
smtp: SMTP
updated: Ship's papers amended
admin:
accounts:
account: 'Crew member'
heading: 'Th'' crew'
last_activity: 'Last sighted'
messages: 'Bottles'
threads: 'Yarns'
address:
field:
public_url: Home port
public_url_help: >-
Where folk hail plMail from the open sea, with http:// or https://
afore it an' no path. Gmail an' Outlook send their push signals
back to it, so for those she must be reachable from the wide
internet over https.
follow_up: >-
What be written down elsewhere follows not by itself: the redirect
addresses in the Google an' Microsoft consoles, a Gmail Pub/Sub push
endpoint, an' the server address in mail an' almanac apps. Browser
signals must be hoisted anew on every device.
heading: Home port
in_use: Flyin' now
intro: >-
The address plMail builds her own links from: where browsers moor for
live tidings, an' where Google an' Microsoft be told to call back.
Change her when the ship moves to another domain, port or proxy, or
after restorin' ship's papers taken aboard another vessel.
none: none
on_file: Logged
pending: >-
The logged address be not the one flyin'. A change takes hold when
the containers start anew. If the two still differ after a rousin',
APP_PUBLIC_URL be set in the compose file, an' that order outranks
this one.
restart_help: >-
Rousin' plMail here be enough for live tidings. Rouse the whole stack
besides, so the hands register push at the new address.
save: Log the address
saved: 'Logged — she takes hold at the next rousin''.'
ago: '%age% ago'
ai:
backfill:
chip:
complete: 'Done'
failed: 'Sunk'
idle: 'Becalmed'
paused: 'Hove to'
running: 'Under way'
stalled: 'Adrift'
eta: 'About %duration%, at that pace'
eta_label: 'Left'
eta_settling: 'Too early to reckon'
failed_body: "The berth answered nowt several times o'er, so the pass stopped. Nowt were lost: carry on picks up where she got to."
failures: "%count% letters the oracle could not answer for. The next pass takes 'em up."
failures_label: 'Skipped'
finished_label: 'Made port'
heading: 'The search charts'
intro: "Search by meanin' sees only charted mail. This walks ev'ry mailbox once; after that, new letters be charted soon after someone searches, an' once a night for safety."
last_activity_label: 'Last sighted'
model_label: 'Charted with'
no_mail: 'No letters to chart yet.'
outcome:
already_running: 'A pass be already under way.'
no_mailboxes: 'There be no mailboxes to walk.'
not_running: "Nowt be runnin'."
nothing_to_resume: 'There be nowt left to take up.'
resumes_itself: 'She comes back by herself.'
search_off: "Search by meanin' be off, so there be nowt to chart."
pause: 'Heave to'
paused:
feature_off: "Stopped 'cause search by meanin' were switched off."
host_unreachable: "Waitin' for the berth to answer again. She tries again herself."
interactive: "Standin' aside while the Scrivener be in use. She carries on herself a moment after."
operator: 'Hove to. She picks up where she stopped.'
progress: "%embedded% o' %eligible% letters charted"
rate: "%rate% letters a second, o'er the last five minutes"
rate_label: 'Pace'
resume: 'Carry on'
search_off: "Search by meanin' be off, so there be nowt to chart. Switch her on above first."
stalled_body: "Nowt has moved a while — the hand that were doin' it be likely gone. Carry on takes her up where she stopped."
start: 'Set out'
started_label: 'Set out'
tuning: "%batch% letters a batch, %delay% s between 'em, an' she stands aside %cooldown% s after anyone consults the Scrivener."
duration:
hours: '%count% h'
minutes: '%count% min'
seconds: '%count% s'
embedding_preset:
heading: "Measured settin's — one click sets model, orders an' threshold as one:"
all-minilm: "Small an' swift: 45 MB an' 384 dimensions, for a vessel short on memory. English first, so the weakest here on German mail. Wants no orders."
nomic-embed-text: "What plMail once favoured, kept for them already sailin' with it. Half-supported, honestly: it wants its documents marked as well as its queries, an' plMail marks only the queries — measured, that alone shifts nowt."
qwen3-embedding_0_6b: "The default, an' the one to take unless ye have cause otherwise. Speaks many tongues, which counts more than any benchmark for a hold that be not all one language, an' the only one here to strike perfect precision in testin'. 639 MB."
field:
base_url: "Oracle's berth"
embedding_base_url: "Searcher's berth"
embedding_own: 'The searcher sails from another berth'
embedding_own_help: "For keepin' the search model somewhere other than the scrivener: a hired oracle for writin' an' a small one at home for searchin', or t'other way about. Ev'ry message goes to the searcher's berth once to be charted. If the search model bears the same name there, the old chart be kept."
embedding_provider: "Searcher's tongue"
headers: 'Extra colours'
headers_clear: 'Strike the stowed colours'
headers_help: "One to a line, writ Name: value. Flown on ev'ry call to the oracle, for a gate or go-between that wants more than a token. Stowed under lock an' never shown again."
headers_help_set: "Stowed: %names%. Leave it empty to keep 'em. Aught ye write here replaces the lot; what be stowed is never shown."
provider: 'Tongue'
provider_help: "Which tongue the oracle speaks. Ollama be the one plMail knows best: it can keep a model aboard an' fetch one ahead o' time. OpenAI-compatible covers near ev'rythin' else, in yer own waters or hired."
base_url_help: "For Ollama, where the box lies on yer network, port an' all. For an OpenAI-compatible port, the root o' the API with its version, like https://api.example.com/v1."
categorisation: 'Sort mail into holds'
categorisation_help: "Runs on ev'ry message that arrives. Only breaks a tie — the ordinary rules speak first."
chat_keep_alive: "Keep the scrivener aboard for"
chat_keep_alive_help: "5m, 30m, 4h, or a plain count o' seconds. -1 keeps it aboard for good, 0 puts it ashore after ev'ry errand. Longer means the first reply comes quicker — but the berth stays taken the whole while. Leave it empty to sail by whatever the host itself says."
chat_model: 'Scrivener model'
chat_model_help: "For replies, summaries an' sortin'. Somethin' instruction-tuned."
embedding_keep_alive: "Keep the diviner aboard for"
embedding_keep_alive_help: "Same shape as above. This one be small an' called for constantly, so -1 — aboard for good — mostly costs barely a crumb an' spares a wait on ev'ry search; worth settin' if the host has the hold to spare. Leave it empty to sail by whatever the host itself says."
embedding_model: "Divinin' model"
embedding_model_help: "Turns mail into vectors so the search finds meanin', not words."
hold: "Wait fer the oracle afore showin' new mail in a hold"
hold_help: "Fer hands who let the oracle sort their mail. New mail stays out o' the holds fer the moment the oracle needs, so it turns up once, in the right hold, 'stead o' landin' in one an' driftin' to another. Mail hauled in by a first import be never held back."
hold_max_seconds: 'Wait at most (seconds)'
hold_max_seconds_help: "Past this, the mail be shown where the ordinary rules stow it, whatever the oracle be doin' — an' shifted if the oracle answers later. Betwixt 2 an' 300."
search_query_instruction: "Orders for the query"
search_query_instruction_help: "Set afore the search text ere it be turned into a vector. Most models want one an' answer poorly without; leave it empty for them as don't. Only searches be touched, so changin' it never means readin' all yer mail again."
semantic_min_similarity: "Least likeness"
semantic_min_similarity_help: "How near a match must be, from 0 to 1. Every model keeps its own scale, so this belongs with the model above: too high finds nowt, too low hauls up the whole hold."
enabled: 'Consult an oracle'
enabled_help: "Off by default. While this be off, all below be ignored."
search: "Search by meanin'"
search_help: "Adds hits that match what ye meant. The ordinary search be untouched."
summary: 'Yarn-in-short'
summary_help: "Uses th' scrivenin' oracle. A cold askin' takes near a minute an' holds th' engine th' whole while."
token: 'Token'
token_help: "Only if ye put a guard in front o' the box. Shown to the guard as a bearer token on every call."
token_help_set: "A token be on file. Leave it blank to keep it. Change the berth above without typin' one an' it goes overboard."
writing_help: 'Help me write'
writing_help_help: "Offers drafts an' rewrites at the writin' desk, when ye ask."
heading: 'Oracle'
headers:
summary: 'Extra colours for a gate or go-between'
hold:
details: 'See each message'
measured: "Last 7 days: %count% messages held, most fer %median% s (95% within %p95% s). %timeout% were shown with no answer, the wait havin' run out."
no_data: "No mail's been held these 7 days, so there be no delay to report yet."
intro: "plMail can consult an oracle, on a box ye run yerself or at a port o' yer choosin'. Mail goes to the berth ye write here an' nowhere else, nowt starts until ye say so, an' while this be off the mail works exactly as it does now."
perf:
by_model: 'By model'
chip:
cold: 'Nowt aboard'
off: 'Off'
answering: "Answerin'"
split: 'Part ashore on the CPU'
unreachable: 'Nowt answers'
warm: 'Aboard'
feature:
thread_summary: 'Yarns-in-short'
categorise: "Sortin' mail"
mail_index: "Chartin' mail"
search_query: 'Search'
writing_help: 'Scrivener'
heading: "The oracle's berth"
latest: "Last askin': %feature% on %model%"
model:
chat: 'Scrivener model'
embedding: "Divinin' model"
missing: 'not at this berth'
missing_body: "A model named here be not aboard the berth. Haul her in, or name one that be there — 'til then ev'ry askin' founders."
none: 'not set'
resident: 'aboard'
no_history: "Nowt has asked the oracle in this stretch. The numbers come once somethin' does."
no_host: 'No berth be set yet. Write her address above.'
off_body: 'The oracle sleeps, so nowt be asked of her. Nowt here be amiss.'
resident:
cold_cost: 'Last time that took about %duration%.'
full: '%size% aboard, all on the GPU.'
heading: 'Aboard right now'
none: "No model be loaded. The next askin' hauls one aboard."
split: "%vram% o' %size% on the GPU — %percent% %. T'other %cpu% sits on the CPU."
split_body: "While she be split, ev'rythin' she does be many times slower. Free some GPU room, or take a smaller model, an' load her afresh."
unloading: "Goin' ashore now."
unloads_in: "Goes ashore in %duration% unless somethin' asks for her."
retrying: "Lookin' again ev'ry few seconds."
table:
calls: "Askin's"
cold: 'Cold hauls'
errors: 'Founders'
feature: 'Work'
gen: 'Tokens/s (p50 / p95)'
hint: "p50 be the middlin' askin' an' p95 the slow one: half were quicker than p50, one in twenty slower than p95. A cold haul be an askin' that waited while the model came off the disk."
load: 'Haul'
throughput:
heading: "What the askin's have cost"
tokens_per_second: '%rate% tokens a second'
unreachable_body: 'Nowt answered at %host%. plMail sails on; whatever wants the oracle simply does nowt.'
version: 'Ollama %version%'
window:
day: '24 hours'
hour: 'Hour'
week: '7 days'
provider:
ollama: 'Ollama'
openai: 'OpenAI-compatible'
probe:
missing_model: "That berth answered, but holds no: %models%. Haul 'em aboard there first."
host:
search: "Searcher's berth"
writing: "Oracle's berth"
no_host: 'Write an address first.'
no_model_list: "Somethin' answered at that berth, but it keeps no list o' models (HTTP %status%). See that the address ends in the API version, most often /v1. Some keep no list an' sail fine all the same; stow it an' try a draft."
not_an_api: "Somethin' answered at that berth, but not in JSON. Most like a gate or a go-between, not the API."
refused: 'That berth answered an'' turned ye away (HTTP %status%). Check the token.'
ok: "That berth answered, an' holds %count% models."
models: 'Show the %count% models it holds'
status: 'That berth answered with HTTP %status%.'
unreachable: 'Nowt answered at that berth. (%error%)'
prompt:
categorise:
hint: "Runs on arrivin' mail no rule knew. It must ask for ONE WORD out o' primary, social, promotions, updates, forums — plMail matches the answer against just those five, an' aught else leaves the letter where the ordinary rules laid it, sayin' nowt."
label: 'Sort mail into holds'
formal:
hint: 'Used when someone asks for the same message in a statelier tone.'
label: 'Make it statelier'
language:
hint: "Hung on the end o' ev'ry order above, save the sortin'. 'Tis what makes a German letter get a German answer — without it the oracle follows the English these orders be writ in, an' proofreadin' a German draft turns it English. Ye may reword her; ye cannot cast her overboard. Empty the box an' the shipped words come back."
label: "Answer in the tongue o' the letter"
proofread:
hint: "Used when someone asks for spellin' an' grammar mended an' nowt else. Keep \"change nowt else\" in it — without that the oracle rewrites lines that were already sound."
label: 'Proofread'
reply:
hint: 'Used by the Scrivener when someone asks for a first draft.'
label: 'Draft a reply'
shorten:
hint: 'Used when someone asks for the same message in fewer words.'
label: 'Trim the sail'
summary:
hint: "Used by the yarn button in the readin' pane. Change this an' ev'ry yarn already writ be stale — nowt goes overboard, they be writ anew next time someone asks."
label: 'Yarn-in-short'
prompts:
changed: '%count% rewritten'
heading: "The oracle's standin' orders"
intro: "These be the orders plMail gives the oracle. Leave a box empty an' the shipped words stand — that way a later update can still better 'em. What ye write replaces the shipped words entire."
reset: 'Back to the shipped words'
save: 'Save the orders'
saved: 'Saved. New yarns use these; yarns already writ be stale now.'
show_shipped: 'Show the shipped words'
untouched: 'As shipped'
save: 'Save'
saved: 'Saved.'
status:
incomplete: 'Wants a berth'
off: 'Off'
on: 'On'
paused: 'Becalmed'
test: 'Test'
warmup:
button: 'Rouse it now'
failed: "Nothin' came back. Try again."
loaded_ms: 'Model roused in %count% ms — it were already aboard.'
loaded_seconds: 'Model roused in %count% s.'
loading: "Rousin' the model…"
model_missing: "That host carries no model named “%model%”. Haul it aboard there, or name one that be. (%error%)"
no_host: "Name a model host first, an' stow it."
no_model: "Name a scrivener model first, an' stow it."
not_ollama: "Only an Ollama box can be asked to fetch a model ahead o' time."
status: 'The host refused with HTTP %status%. (%error%)'
timeout: "Four minutes an' the host were still haulin', so plMail stopped waitin'. It may yet finish — like as not the model be too heavy for the hold it has."
unexpected: "Somethin' went wrong afore the host could answer. (%error%)"
unreachable: "Nothin' answered at that address. (%error%)"
client_errors:
browser: 'Browser'
clear: 'Empty it'
clear_confirm: 'Sink every browser fault? They come back on their own if they still be happenin''.'
count: '{0}naught reported|{1}1 fault|]1,Inf[ %count% faults'
empty: 'No browser faults.'
empty_hint: 'Uncaught faults from plMail''s own scripts wash up here, gathered by fault. Faults from browser add-ons be filtered out — most o'' what a browser reports be none o'' this vessel''s doin''.'
first_seen: 'First sighted'
heading: 'Browser faults'
kind:
csp: 'Blocked'
error: 'Fault'
unhandledrejection: 'Rejection'
occurrences: '{1}on 1 page load|]1,Inf[ on %count% page loads'
page: 'Last page'
config_backup:
change:
absent: "naught set here yet"
differs: "replaces a different value"
unchanged: "already the very same"
disposition:
applied: "Written, and in force now."
applied-on-restart: "takes hold when the crew next muster"
external: "plMail be a passenger on the ship this belongs to, not her captain. The database role were made with the password Postgres already holds, and only an initdb reads a new one — so changin' it here alone leaves ye an installation that can't board its own database. Change it in Postgres first, then here."
kept-deliberately: "Kept as it be here, on purpose. The credentials out o' this backup were locked anew with this installation's key as they were written, so puttin' the backup's key in its place would make them — and everythin' else already stowed — unreadable at the next launch. The line below be only for when ye be also restorin' the old database, whose rows be locked with it; then it must go in afore anythin' be stowed."
not-writable: "This hand couldn't write to that path. A read-only secrets hold, the wrong uid, or a service never given the volume. The value be in the backup ye just hauled up — put it there yerself."
shadowed-by-compose: "Written, but somethin' in the process environment sets this name too, and the entrypoint lets a value set on purpose win over the generated one. Remove or mend it in yer compose file — or in the `.env` beside it — and restart; the restored value be already waitin' underneath."
error:
malformed-document: "The password opened that chest, but what be inside ain't a configuration backup this plMail can read. Naught has been changed."
not-a-backup: "That ain't a plMail configuration backup. Naught has been changed."
unsupported-version: "That backup were written by a newer plMail than this one, in a tongue this version can't read. Upgrade first, then bring it aboard."
collision: "That chest describes someone this installation already holds part of — an app password, a share link or a bookin' page whose token be still registered here, usually left behind by a crew member who were struck off. Naught has been changed. Clear out those leftovers, or bring it aboard an installation that ain't got them."
wrong-password: "That password don't open this chest — or the chest has been tampered with since it were sealed. Naught has been changed."
export:
error:
mismatch: "The two passwords didn't match, so naught were sent ashore."
too_short: "That password be too short, so naught were sent ashore."
heading: "Send the ship's papers ashore"
intro: "Every settin' and credential this installation sails on, in one password-locked chest: the environment values, the files in the secrets hold, the provider and Firebase credentials from the database, and the crew — each with their password, their second factor, their mailboxes and all else they rigged up. No post, no calendar entries and no contacts; that be what `app:backup` is for."
generate: "Forge one"
generated_copied: "Copied to yer slate — stow it somewhere that outlives this ship."
generated_shown: "Yer browser wouldn't share its slate, so the password be shown above — stow it now."
password: "Password"
password_help: "At least %length% characters. It be never stowed anywhere, and there be no way to open the chest without it."
password_repeat: "Say the password again"
submit: "Haul down the backup"
warning: "The chest that comes out holds every secret this installation has, guarded by naught but the password ye type here. Keep it as ye would keep the encryption key itself."
import:
error:
no_file: "No chest arrived, or it were far heavier than a configuration backup can be."
no_password: "Enter the password this backup were sealed with."
file: "Backup chest"
heading: "Bring the ship's papers aboard"
intro: "Haul up a backup and give its password. Naught be written until ye've seen what it would do and given the word."
password: "Password"
submit: "Look this backup over"
review:
already_matching: "%count% more already match this environment, so there be naught to do about them."
apply: "Put this backup in force"
applied: "What were written"
confirm_password: "The password, once more"
exported_at: "Sent ashore"
from: "From"
heading: "Look this backup over"
instructed: "These be yers to do"
instructed_lead: "All else be in place. These few can't be finished from here, and each one says why — sayin' otherwise would be a lie a shipkeeper only finds out on the day it matters."
kept_users: "Already aboard — kept as they be"
kept_users_lead: "This installation already has these hands, matched by email address. Naught about them were touched: not their password, not their second factor, not their mailboxes nor anythin' else they'd rigged. A backup be a paintin' of a moment long past, and writin' it over a livin' account be how someone gets locked out o' their own post without a word anywhere."
old_key_summary: "Also restorin' the old database? Ye'll need its old encryption key."
restart: "Most o' this be read when the crew muster, so plMail writes it into the generated secrets and it takes hold at the next restart. That be one restart for the whole list, not one per value."
restart_applied: "Written. The values read when the containers muster be in place but not yet in force — restart the stack once and this installation comes up as the one the backup were made from."
unknown_instance: "not in the log"
written: "plMail writes these"
written_applied: "Written"
written_none: "There be naught in this backup for plMail to write."
section:
database: "Database"
env: "Environment variables"
files: "Files in the secrets hold"
users: "The crew and all they rigged"
db:
active:
empty: 'No queries afoot right now.'
heading: 'Live doings'
cache_hit: 'Cache booty'
col:
calls: 'Hails'
hit: 'Cache'
max: 'Worst ms'
mean: 'Middlin'' ms'
query: 'Query'
rows: 'Rows'
total: 'All told'
connections: 'Grapplin'' lines'
deadlocks: 'Standoffs'
extension_missing: 'pg_stat_statements ain''t hoisted — sluggish-query tallies be unavailable. Hoist it once:'
extension_enable: "Hoist it now"
extension_enable_hint: "Statistics start when th' extension be created, so earlier queries won't appear."
extension_enable_failed: "Could not hoist th' extension - th' database role not be allowed t' create it."
heavy_total:
heading: 'Heaviest queries (by total time)'
hint: 'All the hours across every hail — where th'' database squanders its watch.'
reset: 'Scuttle the tally'
reset_confirm: 'Scuttle every query tally ye have gathered?'
rollback_ratio: 'Comin''-about ratio'
slow_mean:
empty: 'No queries above the waterline yet.'
heading: 'Slowest queries (by middlin'' time)'
hint: 'Queries averagin'' ≥ 5ms, this here database.'
demo_stats:
active: 'Aboard now: %count%'
col:
period: 'Watch'
sessions: 'Berths handed out'
visitors: 'Different hands'
heading: 'Trial hands'
intro: 'How many trial berths this ship has handed out. A berth be one sea chest made by followin'' /demo; a hand comin'' back after theirs ran out takes another.'
privacy: 'No address be kept. Each berth keeps a keyed mark o'' th'' visitor''s home waters (th'' address wi'' its tail cut off), so a hand comin'' back counts once; hands sharin'' th'' same waters count as one. Th'' mark be scrubbed after %days% days, which be why th'' grand tally has no count o'' hands.'
window:
day: 'Last 24 hours'
hour: 'Last hour'
month: 'Last 30 days'
total: 'Since she launched'
week: 'Last 7 days'
failed:
delete: 'Feed to the fishes'
delete_confirm: 'Send this lost bottle to Davy Jones for good?'
empty: 'The wreck hold be empty. 🎉'
heading: 'Bottles lost at sea'
purge: 'Sink the lot'
purge_confirm: 'Send every lost bottle to Davy Jones? There be no haulin'' them back.'
retry: 'Try again'
retry_all: 'Try the lot again'
retry_all_confirm: 'Cast every lost bottle back out to sea?'
insight_reports:
clear_handled:
button: 'Sink th'' settled reports'
confirm: 'Sink %count% report(s) already struck off? Th'' copies o'' th'' letters go down with ''em.'
heading: 'Clear th'' settled pile'
lead: '%count% report(s) ye have struck off. Whatever still waits stays put.'
copy: 'Copy what be picked'
copy_hint: 'Th'' picked reports as plain lines, for droppin'' into orders or a grievance.'
delete: 'Sink this report'
delete_confirm: 'Sink this report? Th'' copy o'' th'' letter goes down with it.'
download: 'Save as plain text'
download_hint: 'Th'' same lines, as a text chest.'
empty: 'Naught has been reported.'
empty_hint: 'This fills when a hand tells plMail it got a letter wrong — one that should have yielded a findin'' an'' did not, or one they found in th'' wrong tab.'
export:
intro: 'One JSON chest holdin'' th'' picked reports entire: every verdict, th'' headers each was decided on, an'' th'' text where there be any. That be what a rule or a new spyglass gets built from. Pick naught an'' ye get th'' lot.'
not_handled: 'Haulin'' it ashore changes naught here — a report be settled when ye say so.'
submit: 'Haul th'' picked ashore'
warning: 'This chest holds other hands'' letters. Stow it where ye''d stow th'' mailbag itself.'
filter: 'Show'
filter_handled: 'Settled'
filter_pending: 'Waitin'''
handled: 'Settled'
handled_at: 'Struck off %when%'
heading: 'Reported letters'
kind:
category: 'Wrong tab'
insight: 'No findin'''
mark_handled: 'Strike it off'
no_body: 'This report carries no text at all.'
no_sender: 'no sender logged'
no_subject: '(no heading)'
pending: '{0}Naught waitin''|{1}1 waitin''|]1,Inf[ %count% waitin'''
pending_badge: 'Waitin'''
problem:
no_insight: 'No findin'''
received_at: 'Letter made port %when%'
reported_by: 'Reported by %who%'
reporter_gone: 'a hand put ashore'
select_all: 'Pick all that show'
selected: '%count% picked'
verdict:
body: 'Text th'' oracle saw'
body_none: 'none — HTML only'
body_text: 'aye'
gmail: 'Gmail said'
headers: 'Bulk headers'
model: 'Th'' oracle said'
none: 'none'
not_asked: 'never asked'
rules: 'Th'' rules said'
integrations:
base_url_per_user: 'Every hand names their own port.'
base_url_pinned: 'set fast for all hands'
clear_secret: 'Throw the stored secret overboard'
configure: 'Set the rigging'
connected_users: '%count% hands moored'
copy_redirect_uri: 'Copy th'' return bearing'
inherit_toggle: 'Use these keys for th'' cargo holds an'' all'
inherit_toggle_help: 'One Google charter covers Drive an'' Photos; one Microsoft charter covers OneDrive. Leave it set an'' there be nothin'' more to rig for them.'
field:
base_url: 'Port address'
base_url_help_saas: 'Leave it empty. This port never moves.'
base_url_help_selfhosted: 'Optional. Set it to moor every hand at one port; leave it empty and each names their own.'
client_id: 'Client ID'
client_secret: 'Client secret'
enabled: 'Offer this port to th'' crew'
enabled_help: 'Struck down, none may moor there and it stays hidden from th'' writin'' desk and th'' stowin'' menus.'
pubsub_topic: 'Pub/Sub topic'
pubsub_topic_help: 'Full topic name Gmail cries changes into. Without it, crew stay on the lookout instead o'' bein'' hailed. Leave empty to fall back to GMAIL_PUBSUB_TOPIC.'
push_token: 'Push watchword'
push_token_help: 'Shared watchword Google sends with every Pub/Sub call; th'' webhook turns away any without it. Leave empty to fall back to GMAIL_PUBSUB_VERIFICATION_TOKEN.'
redirect_uri: 'Return bearing'
redirect_uri_help: 'Paste this into th'' harbourmaster''s ledger exactly as writ. Change it later and every moored line snaps.'
tenant: 'Tenant'
tenant_help: 'common for private and company hands, organizations for company only, or a tenant ID to keep it to yer own. Must match th'' app registration''s supported account types.'
inherit: 'Reuse %name% papers'
inherit_help: 'Copies th'' client ID and secret below decks — th'' secret be never shown. It grants no extra passage; add that at th'' harbourmaster as th'' riggin'' steps say.'
inherited: 'Papers copied'
mail:
calendar_heading: 'The almanacs sail under this same charter'
calendar_google: >-
Naught to rig here. Hoist the Google Calendar API for this
project an' add the .../auth/calendar scope to the consent
screen — the crew's almanacs then come aboard with the same
boardin' they already use for mail. Without it, mail sails on
an' the almanacs simply never appear.
calendar_microsoft: >-
Naught to rig here. Add the Calendars.ReadWrite delegated
permission to this app registration — the crew's almanacs then
come aboard with the same boardin' they already use for mail.
Without it, mail sails on an' the almanacs simply never appear.
env_note: 'Leave these empty and GOOGLE_OAUTH_* / MICROSOFT_OAUTH_* from th'' environment take over, so a ship already rigged that way sails on.'
from_env: 'From th'' environment'
google: 'Gmail boardin'''
heading: 'Mail boardin'''
intro: 'Th'' OAuth app hands board through when addin'' a mail account. Google and Microsoft cargo ports may reuse th'' same papers.'
microsoft: 'Microsoft mail boardin'''
saved: 'Mail boardin'' stowed'
intro: 'Ports th'' crew may haul cargo from and stow cargo to. Every port be listed here, even them plMail cannot yet hail.'
not_set: 'Not set'
saved: 'Port settings stowed'
secret_none: 'No secret stored'
secret_stored: 'Stored'
secret_unchanged: 'Leave blank to keep th'' stored secret'
status:
disabled: 'Struck down'
enabled: 'Open'
incomplete: 'Wants papers'
unimplemented: 'Not yet charted'
tutorial:
caldav:
intro: 'CalDAV signs on with a ship''s key per hand, against each hand''s own port — there be naught to register here.'
not_for_cloud_mail: 'Gmail an'' Outlook almanacs come not this way. They ride the parrot sign-in above, an'' want only the almanac right ticked on them papers.'
security: 'Hands should cut a ship''s key rather than hand over their boardin'' word: a ship''s key can be struck on its own an'' works with the two-lock. iCloud an'' Fastmail take naught else.'
step_app_password: 'Each hand cuts a ship''s key aboard their own port — Nextcloud under Settin''s → Security, iCloud at appleid.apple.com, Fastmail under Settings → Password & Security — an'' pastes it into their own almanac settin''s.'
step_base_url: 'Ye may pin the port''s address, say https://cloud.example.com, if every hand here uses the same one.'
step_enable: 'Hoist "Offer this service to users" above.'
step_url: 'The address wanted be the CalDAV one, not the front door: Nextcloud shows it under Calendar → Settings → "Copy primary CalDAV address", an'' it mostly ends in /remote.php/dav. A bare domain serves too — plMail hails it an'' asks where the almanacs be moored.'
dropbox:
intro: 'Dropbox wants an app registered in th'' Dropbox developer console.'
refresh_note: 'Choose th'' scoped access app type and ask for offline access, or th'' line parts after a few hours.'
step_app: 'Create an app at dropbox.com/developers/apps with scoped access to th'' full Dropbox.'
step_paste: 'Copy th'' app key and app secret into th'' fields above.'
step_permissions: 'Under Permissions, hoist files.metadata.read, files.content.read and files.content.write.'
step_redirect: 'Under Settings, add th'' return bearing above to th'' OAuth 2 redirect URIs.'
google:
separate_from_gmail: 'These papers be separate from th'' Gmail ones in yer environment file. Same Cloud project be fine, but th'' consent screen must list th'' extra scopes.'
step_consent: 'Rig th'' OAuth consent screen and add th'' scopes listed below.'
step_credentials: 'Create an OAuth 2.0 Client ID of type Web application.'
step_paste: 'Copy th'' client ID and client secret into th'' fields above.'
step_project: 'Open console.cloud.google.com and pick or create a project.'
step_redirect: 'Add th'' return bearing above to th'' authorised redirect URIs.'
google_drive:
intro: 'Google Drive sails under OAuth, so plMail must be registered with Google afore any hand may moor.'
scopes: 'Scope needed: th'' full drive scope. drive.file be narrower but sees only what plMail itself made, so th'' hold would look empty — and sharin'' lines need write passage to th'' file. It be a restricted scope: Google wants th'' app inspected afore strangers may consent.'
step_api: 'Hoist th'' Google Drive API for th'' project.'
google_photos:
intro: 'Google Photos sails under OAuth with its own API, separate from Drive.'
scope_warning: 'Google battened down th'' Photos readin'' scopes in March 2025. A freshly registered app gets only appcreateddata and sees naught but what plMail hauled up itself — browsin'' an existin'' hold wants photoslibrary.readonly, granted case by case. Stowin'' cargo to Photos works regardless.'
step_api: 'Hoist th'' Photos Library API for th'' project.'
immich:
intro: 'Immich checks papers with a key per hand, so there be nothin'' to register here.'
no_share_links: 'Immich cannot cut a public line for a single picture — only whole albums. Pictures over th'' cargo limit therefore cannot be hauled aboard at all.'
step_base_url: 'Optionally set th'' port address fast, say https://photos.example.com.'
step_enable: 'Hoist "Offer this port to th'' crew" above.'
step_key: 'Every hand mints a key in Immich under Account Settings → API Keys and stows it in their own port settings.'
nextcloud:
intro: 'Nextcloud checks papers with an app password per hand, so there be nothin'' to register here.'
security: 'Hands should mint an app password, not hand over their login password: app passwords be revoked one at a time and sail fine with two-factor.'
step_base_url: 'Optionally set th'' port address fast, say https://cloud.example.com.'
step_enable: 'Hoist "Offer this port to th'' crew" above.'
step_user: 'Every hand mints an app password in Nextcloud under Settings → Security → Devices & sessions and stows it in their own port settings.'
one_drive:
intro: 'OneDrive rides Microsoft Graph, th'' same API as Microsoft mail, but wants Files papers th'' mail registration never granted.'
step_paste: 'Copy th'' application (client) ID and th'' secret value into th'' fields above.'
step_permissions: 'Under API permissions, add th'' delegated Microsoft Graph permissions Files.ReadWrite and offline_access.'
step_redirect: 'Under Authentication, add th'' return bearing above as a Web platform redirect.'
step_register: 'Open th'' Azure portal and register an application under Microsoft Entra ID → App registrations.'
step_secret: 'Under Certificates & secrets, mint a client secret and copy its value at once — it be shown but once.'
tenant_note: 'Use th'' common tenant for personal Microsoft accounts, or yer tenant ID to keep it to yer own crew.'
paperless:
asynchronous: 'Stowin'' cargo hands it to th'' Paperless consumer, which files it a few beats later. plMail reports th'' handover, not th'' finished paper — so a test stow shows up in Paperless shortly after it be called done, and a file Paperless casts out as a twin never shows at all.'
intro: 'Paperless-ngx checks papers with a token per hand, so there be nothin'' to register here.'
no_share_links: 'plMail cuts no Paperless share lines. Sharin'' there be a separate, permissioned affair with its own expiry, and publishin'' a paper be a bigger step than haulin'' one aboard — so papers over th'' cargo limit cannot be hauled aboard at all.'
step_base_url: 'Optionally set th'' port address fast, say https://paperless.example.com.'
step_enable: 'Hoist "Offer this port to th'' crew" above.'
step_token: 'Every hand copies their API token from Paperless under My Profile → API Auth Token and stows it in their own port settings.'
tutorial_heading: 'Riggin'''
unimplemented_notice: 'plMail cannot hail this port yet. Stow th'' papers now — they be used th'' moment passage opens.'
loading: 'Haulin'' aboard…'
maintenance:
heading: Shipkeepin'
heartbeats_help: 'Sweeps out the marks of crew that went overboard without callin'' out.'
heartbeats_prune: 'Sweep old marks'
heartbeats_title: 'Stale crew marks'
restart: 'Rouse the crew'
restart_app: "Rouse it now"
restart_app_help: "Ends the hand servin' this page so compose signs on a fresh one. Needed after the generated secrets be rotated: the entrypoint hands them out as environment variables and the kernel boots once in worker mode, so a runnin' web container never learns a new value. About two seconds o' dead water, and this page comes back on its own."
restart_app_title: "Rouse the web container"
restart_confirm: 'Rouse the crew, the timekeeper and the IMAP bosun? They finish the task in hand first.'
restart_help: 'Sends the crew, the timekeeper and the IMAP bosun below so they be signed on afresh. Long-servin'' hands memorise the ship''s charts for their whole watch, so they need this after ye redraw them.'
restart_pending: 'Rousin'' called %seconds%s past — the crew finish the task in hand, then muster back here within a minute or two.'
restart_title: 'Rouse the long-servin'' hands'
run_help: 'Put to the crew, not done here on the spot. Same rounds the timekeeper makes on its own.'
run_title: 'Make the rounds now'
task:
mail_sync: 'Fetch the post'
monitoring_prune: 'Sweep the watch log'
prune_blobs: 'Sweep the hold'
push_renew: 'Renew the parrot pacts'
logs:
reference: 'Bearing'
all_channels: 'All channels'
capture:
from_env: "as the ship's orders say (%level%)"
hint: "Owt below this be ne'er written in the log at all."
label: 'Keep entries from'
clear: 'Scuttle'
clear_confirm: 'Send the %count% entries matchin'' this filter to Davy Jones?'
copied: 'Stowed'
copy: 'Copy th'' entry'
copy_failed: 'Th'' browser be blockin'' it'
empty: 'Naught scribbled at this depth.'
entries: 'entries'
heading: 'Ship''s log'
newer: 'Fresher'
older: 'Saltier'
page: 'Page'
refresh: 'Refresh'
nav:
address: Home port
ai: Oracle
backup: "Ship's papers"
database: Database
demo_stats: 'Trial hands'
insight_reports: 'Reported letters'
integrations: 'Friendly ports'
logs: Ship's log
performance: Speed
push: "Signal flags"
reset: "Scuttle"
sso: 'Fleet''s seal'
system: Ship
updates: "New sails"
users: Th' crew roster
performance:
hold:
col:
account: 'Berth'
arrived: 'Came aboard'
call: 'Oracle errand'
call_hint: "The round trip to the oracle's berth, cast-off to answer."
filed: 'Stowed under'
load: "of it rousin'"
load_hint: "The part o' the errand the oracle spent wakin' up. Near naught if it were already awake."
outcome: 'What befell it'
queued: 'In the line'
queued_hint: "From the mail bein' stowed to the oracle bein' asked. Rounded to the second."
shown_after: 'Shown after'
empty: 'No mail were held back in this stretch.'
footnote: "The newest %limit% messages held back. Times be missin' fer mail sorted afore this page were built. What were in the mail be shown nowhere in these quarters."
heading: "New mail waitin' on the oracle"
lead: "Fer hands who let the oracle sort, new mail stays out o' the holds till it be sorted, %ceiling% seconds at most. Each row be one message an' where its wait went."
lead_off: "Holdin' new mail fer the oracle be switched off under the Oracle, so naught new will land here. What were held afore be still listed."
outcome:
answered: 'Sorted, then shown'
cold: 'Sorted, then shown — the oracle had to be roused first'
moved: 'Shown first, shifted when the answer came'
no_answer: 'Shown with no answer'
unusable: "The answer were no use; shown where the rules stow it"
waiting: "Still waitin'"
stat:
held: 'Messages held'
max: 'Longest'
median: 'Usual wait'
p95: '95% within'
shown_first: 'Shown afore sorted'
lag:
col:
account: 'Berth'
arrives_by: 'Comes by'
elsewhere: 'Not in the inbox'
elsewhere_hint: "Bilge an' mail a filter stowed elsewhere: how many, an' their usual delay. Harbours only signal inbox mail, so the rest waits fer the watch."
max: 'Longest'
median: 'Usual delay'
messages: 'Inbox mail'
p95: '95% within'
footnote: "From the moment the harbour took a message to the moment plMail stowed it, fer mail that landed in the inbox. Mail hauled in by an import, an' mail sent from plMail itself, be not counted."
heading: 'How late the mail lands'
lead: "Seconds means the harbour be tellin' plMail o' new mail as it lands. Minutes means the berth be checked on the quarter-hour watch instead."
no_accounts: 'No berths in use.'
provider:
google: 'Gmail'
imap: 'IMAP'
microsoft: 'Outlook'
push: 'cannon on'
slowest:
by:
idle: 'IDLE'
manual: 'Sync button'
poll: 'The watch'
push: 'Cannon'
unknown: '—'
col:
accepted: 'Reached the harbour'
account: 'Berth'
by: 'Hauled in by'
in: 'Stowed in'
lag: 'Then till plMail had it'
lag_hint: "From the harbour takin' the message to plMail stowin' it. Marked when inbox mail took five minutes or more."
underway: "Already at sea fer"
underway_hint: "From the date the message carries to the harbour takin' it: a sender that held it back, or dated it early. Naught plMail could have shortened."
empty: 'No mail landed in this period.'
footnote: "Slowest first. Mail outside the inbox be never signalled by the harbour, so up to fifteen minutes there be the watch workin' as intended. What hauled a message in be logged from this version on."
heading: 'The slowest in this period'
in:
elsewhere: 'Elsewhere'
inbox: 'Inbox'
spam: 'Bilge'
window:
day: '24 hours'
hour: '1 hour'
label: 'Stretch'
week: '7 days'
workers:
col:
in_hand: 'In hand'
oldest: "Oldest waitin'"
queue: 'Line'
running_for: 'Fer'
waiting: "Waitin'"
worker: 'Hand'
footnote: "A readin' o' this moment, not o' the stretch above: how long a job waited be not kept once it be done. A hand with two lines clears the first afore lookin' at the second."
heading: "What each hand has waitin'"
lead: 'Which hand be behind, an'' by how much. Ev''ry hand takes one job at a time.'
refresh: 'Look again'
processes:
empty: 'No heartbeats yet — hands report here after their first beat.'
heading: 'Hands on deck'
key: 'Post'
last_beat: 'Last heartbeat'
pid: 'PID'
type: 'Rank'
push:
calendar_domain_verification: >-
Google opens no watch channel 'til the callback domain be verified in
the Cloud project that owns the OAuth client: verify her in Search
Console, then enter her under Domain verification in the Cloud
console. Microsoft asks no such thing.
calendar_routes: >-
Almanac push comes ashore separately, at %google% an' %graph%, an'
wants no Pub/Sub topic.
calendar_without_public_address: >-
With no public HTTPS address, moored almanacs simply bide by the
quarter-hour sweep.
deliveries:
all_outcomes: "Any outcome"
all_transports: "Both ways o' sendin'"
all_users: "All the crew"
attempts: "attempts"
empty_ever: "Naught has been signalled yet. Either no device has finished the verification handshake, or neither way o' sendin' be rigged — the panel above says which."
empty_filter: "No delivery matches this filter."
heading: "Recent deliveries"
newer: "Newer"
older: "Older"
outcome:
accepted: "Taken aboard"
failed: "Sunk"
skipped: "Passed by"
subscription-destroyed: "Device gone overboard"
page: "Page"
refresh: "Look again"
transport:
fcm: "Firebase"
webpush: "Web Push"
fcm:
android_package: "Android package"
application_id: "Application ID"
clear_key: "Forget the stowed key"
clear_key_help: "Throws out the service-account key and strikes FCM's colours. Devices already signed on stop gettin' notifications until a new key be saved."
client_email: "Service account"
enable_without_client: "There be no google-services.json on file — the Android app would have naught to rig Firebase with. Paste one below, or leave FCM switched off."
enable_without_key: "There be no service-account key on file — paste one below, or leave FCM switched off."
field:
enabled: "Deliver notifications over FCM"
enabled_help: "Clients see this as \"fcm\" in the session capability, and only offer Firebase when it be on."
google_services: "google-services.json"
google_services_help: "Firebase console → Project settings → Your apps → the Android app → google-services.json. The app be one build for every installation, so it rigs Firebase from these values at runtime — they be public and be published in the JMAP session."
service_account: "Firebase service-account key (JSON)"
service_account_help: "Firebase console → Project settings → Service accounts → Generate new private key. Paste the whole file. It be stowed encrypted and never shown again. It must belong to the same project as the google-services.json below."
heading: "Firebase Cloud Messaging"
intro: "FCM be how a native Android app hears o' new post in the background. It be optional — a device runnin' a UnifiedPush distributor needs none o' this, and neither does the browser app."
paste_none: "Paste the whole JSON file here"
paste_unchanged: "One be on file — leave blank to keep it"
project: "Firebase project"
save: "Stow it"
saved: "Firebase settin's stowed."
sender_id: "Sender ID"
status:
incomplete: "Half rigged"
key_only: "Rigged, colours struck"
live: "Under sail"
unconfigured: "Not rigged"
webpush_note: "Web Push needs naught here. Its VAPID keys be environment variables, forged once by app:push:generate-vapid-keys, and they serve browsers, the installed PWA and UnifiedPush distributors alike."
queues:
due_in: 'due in %duration%'
empty: 'No bottles waitin''.'
filter_placeholder: 'Sift the whole hold — handler, cargo, queue name'
heading: 'Messenger queues'
in_flight: 'Bein'' worked now'
loading: 'Haulin'' aboard…'
showing: '%shown% o'' %total%'
none_running: 'No deckhand be holdin'' a bottle right now.'
oldest: 'Longest waitin'''
pending: 'Waitin'''
queue: 'Queue'
queued_for: 'in the hold %duration%'
retries: 'try %count%'
running: 'Bein'' worked'
running_for: 'for %duration%'
waiting_since: 'Waitin'' since'
refresh_hint: 'Live panels be redrawn every 10s'
sso:
clear_secret: 'Forget th'' stowed client secret'
clear_secret_help: 'Empty th'' issuer an'' th'' client ID with it. Boardin'' then falls back t'' th'' OIDC_* variables in th'' environment, or shuts if there be none.'
env_note: 'Leave issuer, client ID an'' secret all empty an'' boardin'' falls back t'' OIDC_ISSUER, OIDC_CLIENT_ID an'' OIDC_CLIENT_SECRET in th'' environment, so a ship rigged that way sails on. What be saved here wins over ''em.'
field:
auto_create: 'Make a berth fer sailors plMail has never seen'
auto_create_help: 'On, every sailor th'' fleet lets through gets a common berth here, so limit who that be at th'' fleet. Off, th'' cap''n makes each berth first, with th'' same bottle address.'
button_label: 'Name on th'' button'
button_label_help: 'Th'' boardin'' button reads "Board with …" an'' this name. Empty says "yer fleet''s seal".'
client_id: 'Client ID'
client_secret: 'Client secret'
issuer: 'Issuer'
issuer_help: 'Th'' fleet''s issuer URL, exactly as its discovery document states it. In Authentik it be th'' "OpenID Configuration Issuer" on th'' provider''s page.'
require_verified_email: 'Only tie a bottle address th'' fleet has vouched fer'
require_verified_email_help: 'A first boardin'' finds its berth by bottle address. Shut this off only where sailors cannot change their own address at th'' fleet: with it off, any who can may claim any berth that has not boarded through th'' fleet yet.'
scopes: 'Scopes'
scopes_help: 'Parted by spaces. "openid" be always added, an'' without "email" a first boardin'' cannot find its berth. Empty asks fer openid, email an'' profile.'
heading: 'Fleet''s seal'
intro: 'Let sailors board through an OpenID Connect fleet ye already run: Authentik, Keycloak, Authelia an'' th'' like. Th'' boardin'' page then shows a button above th'' secret-word form, which stays.'
redirect_uri_help: 'Register this at th'' fleet as th'' redirect URI, exactly as shown.'
save: 'Stow'
saved: 'Fleet''s seal stowed.'
status:
environment: 'On, from th'' environment'
'off': 'Off'
'on': 'On'
summary:
accounts: '%count% crews'
active: '%count% astir'
armed: '%active%/%total% armed'
down: '%count% keeled over'
failed: '%count% sunk'
failing: '%count% listin'''
healthy: '%count% hale'
idle: 'becalmed'
none: 'none'
ok: '%count% hale'
queries: '%count% askings'
queue: '%running% bein'' worked · %waiting% waitin'''
tables: '%count% tables'
reset:
button: "Scuttle"
confirm_label: "Type %name% to give the word"
confirm_mismatch: "That ain't %name%, so naught were sunk. Type the instance name exactly as it be shown."
done:
continue: "Appoint the first captain"
footnote: "plMail be back the way a fresh ship starts out."
heading: "plMail has been scuttled"
lead: "All %count% tables were emptied, along with the stowed attachments, raw messages and uploads. There be no crew left, so this session has been put ashore."
page_title: "Scuttlin' done"
restart_failed: "The web container could NOT be roused from here — run the command above yerself afore usin' plMail."
restart_sent: "The web container were told to restart and comes back on its own. Everythin' else in the stack still needs the command above."
secrets_heading: "The generated secrets were thrown overboard"
tagline: "Naught left to sign on to"
workers_failed: "The workers couldn't be signalled neither, so they keep usin' the old encryption key until somethin' rouses them."
heading: "Scuttle the cargo"
intro: "This sends synced cargo from the database to Davy Jones for good. Each step sinks all the step above it does, and more."
monitoring_kept: "Monitorin' data be kept. Clear the gathered logs from Ship's log, and stale marks from Shipkeepin'."
postgres_password: "POSTGRES_PASSWORD ain't rotated. Postgres were set up with it and keeps it in its own data directory, so forgin' a new one would leave plMail unable to board the database it just emptied. Changin' that one means wipin' the database volume — docker compose down -v — which this can't do."
restart_required: "Restart the whole stack right after, and afore usin' plMail:"
self_restart: "The web container asks itself to go ashore once this page be sent, and compose brings it straight back. The workers be signalled too; the command above covers the rest o' the stack."
self_restart_unavailable: "This hand can't restart itself here, so the command above be the only way. Naught will happen on its own."
stage:
accounts:
confirm: "Sink the accounts as well? Every mailbox password and OAuth connection must be entered again."
deletes: "The above, plus the accounts themselves, aliases an' all. Every mailbox password and OAuth connection must be rigged from scratch. Yer own sign-in be untouched."
title: "Post, riggin', contacts and accounts"
contacts:
confirm: "Sink every synced message, folder, label and gathered contact?"
deletes: "The above, plus gathered contacts. They be gathered again from post as it arrives, so address autocomplete starts empty."
title: "Post, riggin' and contacts"
full:
button: "Scuttle this ship"
deletes: "Everythin', not just synced post: every crew member (ye included), every account and its stowed password, and the files on disk. The ship goes back to askin' for her first captain. Ye be put ashore and can't sign back on."
title: "Full scuttlin'"
full_secrets:
button: "Scuttle this ship and forge new secrets"
deletes: "Everythin' above, and the generated secrets. Every service be still runnin' with the old APP_ENCRYPTION_KEY in memory and keeps usin' it until roused, so anythin' stowed afore ye restart the stack becomes unreadable to half of it."
title: "Full scuttlin' and new secrets"
structure:
confirm: "Sink every synced message, thread, folder and label? The next sync rebuilds them."
deletes: "The above, plus the mailbox riggin' — folders and labels. The next sync rebuilds both."
title: "Post and mailbox riggin'"
synced_mail:
confirm: "Sink every synced message and thread? Accounts and folders stay, and the next sync fetches the post again."
deletes: "Messages, threads, message parts and aught that be queued. Accounts, folders and labels stay; the sync markers be cleared so the next sync fetches everythin' again."
title: "Synced post"
unrecoverable:
heading: "Can't be undone"
lead: "Neither o' these can be fished back up by resyncin': they sink the crew, the stowed mailbox passwords and the files on disk. Type the instance name to give the word — a click on its own ain't enough."
restarting:
back: "Back to the captain's quarters"
continue: "Onward"
heading: "plMail be restartin'"
lead: "The web container were told to go ashore and compose brings it straight back. This page reloads itself in a few seconds."
page_title: "Restartin'"
unavailable_heading: "Naught were restarted"
unavailable_lead: "This hand ain't the container's main process, so it can't end it. Run this instead:"
tables:
heading: 'Table sizes'
title: 'Cap''n''s quarters'
tokens:
empty: 'No token refreshes writ down yet.'
heading: 'OAuth token health'
webhooks:
armed: 'Primed'
delivery:
endpoint: 'Cannon berth'
endpoint_hint: >-
The Cloud Pub/Sub push subscription must fire at exactly this
URL, token an'' all. A mismatch be answered with 403 and shows
below.
heading: 'The powder trail'
info_logs_off: >-
Shots that land be logged at info level and not kept. Set
APP_DB_LOG_LEVEL=info to spy them here.
no_public_url: >-
APP_PUBLIC_URL be no https:// berth, so Pub/Sub cannot reach
this ship.
no_token: >-
GMAIL_PUBSUB_VERIFICATION_TOKEN be not set. The berth bars all
comers, so every shot be turned away with 403.
topic: 'Pub/Sub topic'
empty: 'No Gmail crew keepin'' watch.'
health: 'Condition'
health_state:
active: 'firin'' true'
degraded: 'primed, but silent'
inactive: 'stowed'
lapsed: 'run out'
heading: 'Gmail webhooks'
history_id: 'History ID'
last_push: 'Last cannon shot'
never: 'never'
none: 'not on the roster'
resource: 'Resource'
state:
account_active: 'crew aboard'
account_inactive: 'crew ashore'
push_off: 'cannon stowed'
push_on: 'cannon primed'
watch_expiry: 'Watch ends'
updates:
heading: "New sails"
header: "%version% be in port"
intro: "Every hour plMail scans the horizon fer a newer build on the channel ye follow, an' tells the captains once per build: a bell on every device they signed on fer push, an' a note atop these quarters."
saved: "Course set."
channel:
label: "Follow"
save: "Set course"
follows_build: " No captain has chosen yet, so this follows the build now sailin'."
releases:
name: "Releases"
hint: "Every release flyin' a tag: the image called latest. Right fer most ships."
main:
name: "Main"
hint: "Every build o' the main branch the moment it be launched: the image called main. This be work still on the slipway, an' the ship's log don't tell of it yet."
'off':
name: "Off"
hint: "No lookout. Nothin' be sent anywhere fer it."
state:
available: "New sails in port"
current: "Shipshape"
failed: "No answer"
incomparable: "Cannot compare"
'off': "Off"
unknown: "Not looked yet"
running: "This ship"
newest:
releases: "Newest release"
main: "Newest main build"
built_at: "built %when%"
not_yet: "Not looked yet"
incomparable: "This build carries no commit mark (a checkout, or an image not built by the release crew), so there be nothin' to measure the channel's newest build against."
checked: "Last lookout"
never: "never"
check_now: "Look now"
error: "The last lookout got no answer: %error%."
error_kept: " What be shown be from the last lookout that did."
changes:
heading: "What be new"
count: "{1}One change since this build|]1,Inf[%count% changes since this build"
all: "Every change on GitHub"
changelog: "Ship's log"
how:
heading: "Takin' on the new sails"
body: "Pull the new image an' build the containers anew; on a NAS, redeploy the app. plMail shifts its own cargo when it starts, so read the ship's log first fer anythin' under \"Before you upgrade\"."
privacy: "A lookout asks the registry fer the newest %image% image an' api.github.com what changed since this build. Nothin' about this ship be sent beyond the askin' itself."
push:
title: "plMail %version% be in port"
body: "Ye be sailin' %running%. Open Admin → New sails to see what changed."
users:
add: Sign on a hand
console_note: 'Secret words and second-factor rescues are done from th'' ship''s console, not here — `app:user:password` an'' `app:user:2fa-disable`. A quartermaster who could change either from a browser would be a second way into every hold aboard.'
deactivate: Clap in irons
deactivate_confirm: 'Clap %name% in irons? They''ll board no ship an'' every spyglass already trained on their hold goes dark. Nothin'' o'' theirs be thrown overboard, an'' ye can strike th'' irons here.'
deactivated: 'In irons'
deactivated_since: 'In irons since %when%'
delete: Put ashore
delete_confirm: 'Put %name% ashore? Their post stays in th'' hold, but they''ll board no more.'
edit: Edit hand
field:
email: Bottle address
is_admin: Quartermaster
is_admin_help: 'Reaches this cabin, signs on hands and sets up friendly ports. Reads nobody else''s post.'
name_first: Given name
name_last: Family name
password: First secret word
password_help: 'Set once, when th'' hand signs on. No changin'' it from here after: a forgotten word be reset at th'' console with `app:user:password`.'
flash:
deactivated: 'Clapped in irons. No boardin'' until ye strike them.'
demote_last_refused: 'That be th'' last quartermaster, so th'' mark stayed as it were — raise another first.'
demote_self_refused: 'Ye cannot strip yer own quartermaster''s stripes. All else on th'' form were logged.'
reactivated: 'Irons struck. They may board again.'
heading: Th' crew roster
last_login: 'Last sighted %when%'
never_signed_in: Never came aboard
no_password_edit: 'Secret words cannot be changed here. Setting another hand''s word would make a quartermaster''s session a way into their hold — same reason pulling a second factor is a console affair.'
none: No hands aboard yet.
reactivate: Strike th' irons
role:
admin: Quartermaster
search: Search th' roster…
two_factor_on: Second factor is set
two_factor_short: 2FA
version:
hint: The build this ship be sailin' — the release, an' the commit she were built from.
# The All Mail lists — every conversation outside Spam and the bin
# (LabelRole::AllMail). Their heading is sidebar.nav.all_mail.
all_mail:
empty: "Not a bottle aboard outside Spam an' the bin."
alias:
added: 'Address added, arr!'
catch_all_added: 'Catch-all harbour added, arr!'
catch_all_duplicate: 'That harbour already catches all for this crew member.'
catch_all_invalid: 'That be no harbour name. Write it like example.com.'
catch_all_removed: 'Catch-all harbour struck from the charts.'
catch_all_unsupported: 'Gmail and Outlook only sail under addresses their harbourmaster knows, so a catch-all harbour be no use to this crew member.'
deleted: 'Address struck from the roster.'
duplicate: 'That address already sails with this crew member.'
invalid: 'That don''t look like a proper parrot address.'
name_cleared: 'Sender name struck. This address sails under the crew member''s name again.'
name_set: 'Sender name stowed.'
primary_set: 'Flagship address changed.'
refreshed: 'Fetched anew from the harbourmaster.'
status_blocked: 'The flagship address can''t be struck — name another flagship first.'
status_set: 'Address amended.'
app:
name: Mail
attachment:
sign:
action: Make yer mark
draw: Scrawl yer mark, then slap it on the page.
clear: Scrub it out
cancel: Belay that
place: Slap it on
hint: Drag it where it belongs, then pin it to a reply.
download: Haul down the marked copy
reply: Answer with the marked copy
protected: This scroll be sealed, so ye cannot mark it here. Readin' still works.
unreadable: This scroll cannot be marked here. Readin' still works.
use_saved: Use yer stowed mark
preview:
download: Haul aboard
failed: This scroll would not unroll. Ye can still haul it aboard.
loading: Unrollin'…
untitled: Cargo
zoom_in: Closer
zoom_out: Further off
calendar:
# plMail's date-and-time picker; see calendar--when.
when:
previous_month: 'Last moon'
next_month: 'Next moon'
send_at: 'Set sail at'
group: 'Settin'' sail an'' makin'' port'
today: 'This day'
tomorrow: 'On the morrow'
same_day: 'Same day'
same_short: 'Same'
another_day: 'Another day'
back_to_week: 'Back t'' this week'
hour: 'Hour'
minute: 'Minute'
half: 'Forenoon or afternoon'
another_minute: 'Another minute'
quarter_hours: 'Quarter bells'
exact_minute: 'Exact minute'
minutes: '%count% min'
hours: '%count% h'
day_one: '1 day'
days: '%count% days'
length: 'How long'
default_name: Cap'n's own
alert:
mail:
subject: 'A nudge: %title%'
untitled: A reckonin' with no name
booking:
action:
delete: 'Scuttle the boarding notice "%name%"'
disable: 'Strike the boarding notice "%name%"'
edit: 'Change the boarding notice "%name%"'
enable: 'Hoist the boarding notice "%name%"'
regenerate: 'Give the boarding notice "%name%" a fresh berth'
badge: Booked through yer boarding notice
booked:
body: 'Yer %name% be written in the log.'
mail: A confirmation wi a chart be sailing to ye.
title: Booked, matey
confirm: Seal the booking
count: '{0}No boarding notices|{1}1 boarding notice|]1,Inf[ %count% boarding notices'
day_none: Naught free
delete_confirm: 'Scuttle "%name%"? Every appointment already booked goes down wi it.'
disabled: Struck
duration: '{1} 1 minute|]1,Inf[ %count% minutes'
empty_list: No boarding notices yet, matey.
error:
no_calendar: Pick a log that takes changes, so bookings have somewhere to land.
taken: That hour be claimed already. Pick another.
too_many: >-
That be a great many bookings from one berth. Bide a while afore
ye try again.
form:
add: New boarding notice
buffer_help: Quiet water left either side o what be already in the log.
buffer_minutes: Quiet water (minutes)
busy: Check these logs for collisions
busy_help: >-
An hour be offered only when naught in these logs crosses it. The
log bookings land in be always checked, ticked or no.
calendar: Bookings land in
calendar_help: >-
Where the appointment be written. If that log sails elsewhere, the
booking sails wi it.
day_end: Until
day_start: From
description: What this be about
edit: Change boarding notice
horizon_days: Bookable up to (days ahead)
name: What the appointment be called
name_help: >-
Shown to whoever opens the berth, and used as the title in yer
log.
notice_minutes: Shortest warning (minutes)
slot_minutes: Appointment length (minutes)
time_zone: Yer hours be in
time_zone_help: >-
The hours above be bell-time in this zone, so 09:00 stays nine in
the morning when the clocks turn.
weekdays: Days ye be boardable
lands_on: 'lands in %calendar%'
no_slots: No free hours at present. Come back later, matey.
no_slots_this_week: No free hours this week. Try the week fore or aft.
note: Aught else? (optional)
pick_a_time: Pick an hour
toast:
created: Boarding notice raised. Copy the berth now — it be not shown again.
deleted: Boarding notice scuttled.
disabled: Boarding notice struck.
enabled: Boarding notice hoisted.
regenerated: Fresh berth. The old one be sunk.
updated: Boarding notice changed.
weekday:
1: Mon
2: Tue
3: Wed
4: Thu
5: Fri
6: Sat
7: Sun
your_email: Yer letter address
your_email_help: The confirmation and the chart go here.
your_name: Yer name
zone: 'Hours shown in %zone%'
chip:
on_calendars: 'Upon %calendars%'
delete_confirm: 'Scuttle "%name%" an'' every reckonin'' upon it? There be no haulin'' them back.'
empty: Naught on the horizon
details:
description: The tellin' of it
edit: Change it
extracted_hint: plMail read this from yonder letter. No soul wrote it in.
participants: All hands
provenance: From yonder letter
recurring: Comes round again
status: Standin'
until: till %date%
your_answer: Yer word
error:
instance_create: >-
One lone reckonin' cannot be shipped to an almanac on its own. Pick
"Every reckonin'" to lay this meetin' in another almanac.
invalid_times: 'Them bells be wrong — the end must come after the start.'
no_copies: 'Naught was picked, so naught was changed. Mark at least one almanac.'
read_only: >-
This reckonin' sits only in almanacs that take no changes, so it be
left where it lay.
event:
alert:
action:
display: A shout on deck
email: A parrot
amount:
days: '{1} 1 day|]1,Inf[ %count% days'
hours: '{1} 1 bell|]1,Inf[ %count% bells'
minutes: '{1} 1 minute|]1,Inf[ %count% minutes'
at_absolute: 'Upon %when%'
at_time: The very moment it starts
custom: Somethin'' else, in minutes
custom_action: How the extra nudge shall reach ye
day_1: 1 day afore
hour_1: 1 bell afore
legend: Nudges
minutes_10: 10 minutes afore
minutes_30: 30 minutes afore
minutes_5: 5 minutes afore
relation:
after_end: '%amount% after the end'
after_start: '%amount% after the start'
before_end: '%amount% afore the end'
before_start: '%amount% afore the start'
series_note: >-
Nudges belong to the whole reckonin'', so the choice below has
no say over them.
unreadable: A nudge set in some other port
all_day: All the day long
calendar: Almanac
cancel: Belay that
copies:
help: >-
Marked almanacs get this reckonin' an' every change ye stow to
it. Unmarkin' one throws naught overboard: that almanac keeps the
copy it holds now an' takes no more news, so it shall sail as its
own entry once the two no longer match.
hidden: This almanac be stowed below, so the reckonin' stays out o' sight till ye bring it on deck
legend: Almanacs
mirrored: "This almanac sails with its harbour, so the reckonin' reaches yer other spyglasses"
read_only: This almanac takes no changes
same_remote: 'Already accounted for: this mirrors the same almanac as one marked above'
delete: Scuttle it
description: The tale of it
details_heading: "The reckonin'"
dismiss: No reckonin' at all
dismiss_confirm: >-
Cast this one overboard an' keep it there? Later parrots about the
same booking shall not write it back into the almanac.
ends: Ends
error:
end_before_start: The end must come after the start.
summary: This reckonin' could not be stowed.
title_required: Give this reckonin' a name.
extracted_note: >-
This reckonin' was found in a parrot. Amend it and later messages
about the same booking shall not paint over yer hand.
location: Where
new: A new reckonin'
new_on: A new reckonin' on %date%
repeat: Comes round again
repeats: Comes round again
save: Stow it
scope:
instance: This here reckonin'
instance_note: >-
"This here reckonin'" changes only the one ye opened, so it
cannot lay the meetin' in an almanac it be not in yet.
legend: Apply it to
series: Every reckonin'
starts: Starts
title: What it be called
form:
add: A new almanac
color: Colours
edit: Amend the almanac
name: What it be called
time_zone: Which bell
time_zone_help: >-
The bell this almanac be read by — and the one a reckonin' with no
bell of its own be shown in.
grid:
all_day: All the day long
continues_after: Sails on into the next day
continues_before: Set off the day afore
keyboard_hint: >-
Hold Alt an' steer with the arrow keys to shift this reckonin'; add
Shift to change how long it runs. Enter stows it, Escape puts it
back.
pending: >-
Shifted to %start% – %end%. Press Enter to stow it, or Escape to put
it back.
read_only: This almanac takes no changes, so this reckonin' cannot be shifted.
reverted: Left where it lay.
until: till %when%
ics:
error:
no_calendar: Pick an almanac to stow the dates in.
no_file: >-
Pick an .ics scroll. If ye did pick one, it may be fatter than
plMail will swallow.
no_url: Write the bearin' where the almanac be posted.
export:
calendar: Haul "%name%" ashore as an almanac scroll
calendar_title: Haul down as .ics
event: Haul down .ics
import:
calendar: Stow 'em in
dedup_note: >-
A date already in this almanac be mended rather than written
twice, and one already in another o' yer almanacs — from a
summons, or from an almanac ye mirror — be left where it lies.
file: Almanac scroll
file_help: An .ics scroll, up to %size% MB.
intro: >-
Reads an .ics scroll — a copy from another almanac, or a summons
somebody sent ye — into one o' yer almanacs.
no_calendars: >-
None o' yer almanacs takes new dates. A mirrored almanac be a
look-but-don't-touch copy; make one o' yer own first.
submit: Bring aboard
title: Bring an almanac scroll aboard
subscribe:
address: Almanac bearin'
address_help: >-
The bearin' an almanac be posted at, endin' in .ics. A webcal://
link sails too — 'tis the same bearin' under another flag.
connect: Follow a bearin'
intro: >-
Follow an almanac somebody posts: feast days, a fixture list, or
the secret bearin' yer own Google or Outlook almanac offers.
plMail reads it again in the bilges and shows it beside yer own.
name: Name
name_help: What to call it here. Left empty, the almanac names itself.
read_only_note: >-
A followed almanac be look-but-don't-touch — 'tis a copy o' a
posted scroll, so changes made here could never reach it. Anyone
holdin' this bearin' can read the almanac, so treat a secret one
like a secret word.
submit: Follow it
title: Follow an almanac bearin'
toast:
import_empty: >-
That scroll holds no dates plMail can read. Check 'tis an
almanac copy and not somethin' else.
import_nothing_new: >-
Naught to add — every date in that scroll be already in yer
almanacs.
imported: '%added% added, %updated% mended, %skipped% passed over.'
subscribed: >-
Followed — the almanac fills in within the minute.
invite:
action:
accepted: Aye
declined: Nay
needs_action: No word yet
tentative: Belike
attendees: '%count% called aboard'
cancelled: This gatherin' has been called off.
held:
applied: 'Change taken aboard.'
apply: 'Take the change aboard'
hint: 'This message would change this gatherin'', but it came not from whoever the gatherin'' came from (%sender%). Naught was changed.'
not_applied: 'That change could not be taken aboard — a newer one be already in place, or ye have mended the gatherin'' yerself.'
offer:
accepted: Mark it on the chart
declined: Nay, thankee
hint: "Lashed to this message — naught be marked on yer chart."
status:
accepted: On yer chart
declined: Left off the chart
organiser: Called by %name%
organiser_tag: called it
placed: '%title% be marked on yer chart: %when%.'
reply:
body: '%name% answered %status% to this summons.'
status:
accepted: Aye
declined: Nay
needs_action: No word yet
tentative: Belike
toast:
added: Marked on yer chart.
not_added: Left off yer chart.
not_sent: >-
Yer answer be stowed here, but the parrot never reached the one
who called the gatherin'.
sent: Yer answer flew to the one who called it.
kind:
call: A hailin'
delivery: Cargo
dining: A table held
event: A doin'
flight: A crossin'
lodging: A berth
meeting: A gatherin'
order: Goods ordered
rental: A hired rig
ticket: A pass
train: An iron road
more_count: '%count% more'
nav:
next: Onward
previous: Back
open_day: 'All that be on %date%'
pane:
mode:
calendar: Give the almanac the whole deck
mail: Show the letters
split: Set the almanac alongside the letters
resize: Shift the almanac's width
proposal:
action:
add: Write it in the almanac
dismiss: No reckonin' at all
explain: >-
Spied in this parrot — naught be written in the almanac yet.
toast:
added: Written into the almanac.
dismissed: >-
Cast overboard — that day shall not be put to ye again, however
often this parrot be read.
no_calendar: >-
There be no almanac to write this into, so naught was stowed.
untitled: (no subject)
repeat:
daily: Every day
keep: Keep the charted course
monthly: Every month
none: Comes but once
weekly: Every week
yearly: Every year
share:
action:
delete: 'Scuttle the berth "%name%"'
edit: 'Change the berth "%name%"'
regenerate: 'Give the berth "%name%" a fresh address'
revoke: 'Revoke the berth "%name%"'
all_day: All the day long
busy: Occupied
busy_free_only: This berth shows when the log be occupied, an naught else.
count: '{0}No shared berths|{1}1 shared berth|]1,Inf[ %count% shared berths'
covers: '{0}no logs|{1}1 log|]1,Inf[ %count% logs'
day_free: Naught this day.
delete_confirm: 'Scuttle "%name%"? Whoever still holds the address loses it.'
detail:
description: The account of it
location: Where
participants: Who be coming
title: Titles
empty: Naught in this stretch.
empty_list: No shared berths yet, matey.
footer: Shared log
form:
add: New shared berth
calendars: Which logs
days: days ahead
edit: Change shared berth
ends_on: Last day
name: What ye call it
name_help: >-
Only ye see this. It be how ye find the berth again to change or
revoke it.
reveals: What this berth gives away
reveals_help: >-
Wi none o these ticked, the berth shows only when the log be
occupied. Each box adds one thing atop. A matter marked private
stays a plain occupied block whatever be ticked here.
rolling_days: Days ahead
starts_on: First day
token_note: >-
The address be shown once, when it be made. It be not stored, so
it cannot be shown again — lose it, an give the berth a fresh one.
window: How far it reaches
heading: Shared log
minted:
heading: The address for this berth
once: >-
Copy it now. It be stored nowhere, so this be the only time it can
be shown.
not_shared: Beyond the stretch
outside_window: Days beyond the shared stretch
page_title: Shared log
reveals: 'Gives away %details%'
reveals_busy_free: Occupied/free only
revoked: Revoked
subscribe: Add to yer own log
toast:
created: Berth made. Copy the address now — it be not shown again.
deleted: Berth scuttled.
regenerated: Fresh address. The old one be sunk.
revoked: Berth revoked.
updated: Berth changed.
window:
fixed: Between two dates
rolling: A rolling stretch from today
window_label: '%from% – %to%'
zone: 'Hours shown in %zone%'
soon:
next: 'Next ashore'
empty: Naught on the horizon
empty_hint: >-
Doin's in yer almanac, and the passages, cargo, tables held and
tickets spied in yer letters, be posted here for the next
fortnight.
from: 'Out o'' %subject%'
open: 'What be comin'' soon'
title: 'Comin'' soon'
untitled: (no subject)
title: Almanac
status:
cancelled: Struck
confirmed: Signed
tentative: Undecided
toast:
created: Almanac drawn up
default_set: New reckonin's land here now
deleted: Almanac scuttled
disconnected: Line cut to the port
disconnected_kept: >-
Line cut — %count% reckonin(s) that came off a parrot an' not off an
almanac were rowed over to yer own almanac.
event_saved: Reckonin' logged
hidden: Almanac stowed below
saved_on_hidden: >-
Reckonin' logged in %calendars%, which be stowed below — bring that
almanac on deck to lay eyes on it.
shown: Almanac brought on deck
subscriptions_saved: Yer choosin' be stowed
subscriptions_saved_kept: >-
Yer choosin' be stowed — %count% reckonin(s) that came off a parrot
an' not off the almanac were rowed over to yer own almanac.
subscriptions_unchanged: Naught changed
sync_queued: Haulin' now — this almanac comes about in a moment.
updated: Almanac amended
today: This day
toolbar:
range: '%start% – %end%'
range_day: '%day%'
upcoming:
imminent: Within the hour
later: Later this day
soon: In a few hours
view:
agenda: The list
day: Day
monday_week: Week
month: Month
week: 'Seven suns'
clipboard:
copied: Pocketed
copy_failed: Pocketin' failed
compose:
ai:
accept: 'Put it in'
disabled: "The writin' hand be stowed."
discard: 'Heave it over'
disclaimer: "Writ by an oracle. Read it afore ye send it."
error:
not_pulled: 'The oracle has no such model aboard. Someone must fetch it first.'
refused: "The oracle turned the askin' away."
timeout: 'The oracle took too long to answer.'
failed: 'The message could not be sent.'
label: 'Help me write'
no_answer: 'The oracle gave no answer.'
preview: 'Text on offer, not yet in yer letter'
prompt:
toggle: 'Orders'
title: 'Change yer orders afore the next attempt'
label: 'How ye want to be written for'
placeholder: 'e.g. Three sentences, no more, and no fancy greetin''s.'
retry: 'Have another go with this'
hint: 'This window only. Settin''s → AI be where it sticks.'
rate: '%count% tokens · %rate% a second'
regenerate: 'Try again'
slow_hint: "The first askin' after a spell takes about fifteen seconds while the oracle wakes."
state:
done: "Done. Nowt o' it be in yer letter yet."
sent: 'Sent to the oracle…'
stopped: 'Belayed. Keep what came, or heave it over.'
stop: 'Belay'
task:
formal: 'Say it more proper'
proofread: "Mend the spellin'"
reply: 'Draft a reply'
shorten: 'Make it shorter'
timing: "Oracle wakin' %load%s · %count% tokens in %seconds%s · %total%s all told"
working: "Writin'…"
open_failed:
dismiss: Belay
failed: The writin' desk would not open. Give it another go.
offline: The writin' desk would not open — ye seem adrift with no signal.
signed_out: Yer watch has ended. Reload the page an' sign on again.
no_account:
body: Hitch up a mailbag first, an' ye can write from it straight away.
cta: Hitch up a mailbag
heading: No mailbag aboard yet
font_family:
label: Hand o' writin'
monospace: Ledger hand
sans: Plain hand
serif: Scrivener's hand
font_size:
huge: Mountainous
label: Size o' the lettering
large: Grand
normal: Fair
small: Wee
align:
center: Amidships
left: Hard to port
right: Hard to starboard
confirm:
no_body: This scroll be blank.
no_subject: This scroll bears no heading.
send_anyway: Cast it off regardless?
plain_text: "Strikin' to plain text scrubs every flourish from this scroll. Carry on?"
open_variables: 'A blank in yer form letter be still unfilled.'
emoji:
activities: Sport and mischief
animals_nature: Beasts and the wilds
categories: Lockers
custom: Yer own daubs
favorites: Oft-daubed
flags: Colours
food_drink: Vittles and grog
loading: "Haulin' 'em up…"
network_error: The wee faces would not come aboard.
objects: Odds and ends
people_body: Souls and limbs
region: The face locker
search: Search the locker
search_description: When the finds appear, steer up or down to pick one and strike enter to take it.
search_results: What the search turned up
skin_tone: "Choose a hide (presently {skinTone})"
skin_tone_description: When it be open, steer up or down to pick one and strike enter to take it.
skin_tones: Hides
smileys_emotion: Grins and grimaces
symbols: Marks and sigils
tone_dark: Deep tanned
tone_default: As it comes
tone_light: Pale as a sail
tone_medium: Fair weathered
tone_medium_dark: Well weathered
tone_medium_light: Lightly weathered
travel_places: Voyages and ports
unsupported: This spyglass shows no coloured faces.
list:
ordered: Numbered manifest
unordered: Bulleted manifest
priority:
high: "Hoist th' red flag"
label: Urgency
low: "No great hurry"
none: "No word on it"
normal: "Ordinary sailin'"
quote:
hide: stow the quoted words
show: unfurl the quoted words
schedule:
cancel: "Belay that castin' off"
confirm: "Set th' hour"
custom: "Name th' day and th' hour"
error:
past: That hour be already astern.
too_far: "No scroll be held longer than %days% days."
too_soon: Name an hour a minute or more ahead, matey.
unreadable: That be no day nor hour I can read.
heading: Cast off later
monday_morning: Monday at first light
scheduled_for: Due to cast off
timezone_hint: "All hours be reckoned in %zone%."
toast: "Castin' off %when%"
toast_cancel: Belay it
tomorrow_afternoon: "On th' morrow, afternoon"
tomorrow_morning: "On th' morrow at first light"
when: '%date%, %time%'
status:
pending_many: "%count% more marks afore stowin'"
pending_one: one more mark afore stowin'
save_failed: Could not stow the scroll
saved: Scroll stowed
saving: "Stowin'…"
uploading: "Haulin' aboard…"
upload:
failed: The haulin' aboard went awry
images_only: Only likenesses may be pasted into the scroll itself
over_limit: "Too heavy by far (max %limit% MB)"
post_too_large: That load be too heavy
too_large: Too heavy by far
add_bcc: Add shadow crew
add_cc: Add copied crew
attach: Lash on some cargo
attach_failed: Could not lash it on
attach_remove_failed: Could not heave the cargo overboard
attach_too_large: "%name% be heavier than %limit% MB"
bcc: Bcc
bold: Stout
cc: Cc
click_to_cancel: click to belay it
continue_editing: Keep scribblin'
discard: Burn this scroll
empty_draft: (blank scroll)
encrypt: Seal it in cipher
encrypt_unavailable: "No cipher aboard yet — this seal be locked."
expand: Throw open the hatches
formatting: Fancy lettering
forward: Pass it along
from: From
image: Paste in a likeness
image_insert_failed: Could not paste the likeness into the scroll
indent: Shove it inboard
insert_emoji: Daub on a face
insert_link: Splice in a link
invalid_address: "“%address%” be no proper address"
italic: Aslant
link:
add: Splice in a link
apply: Make it so
cancel: Belay that
change: Recut it
dialog: Link
edit: Recut this link
heading: Link
invalid: Name a port on the web.
open: Set sail for it
remove: Cut the line
text_label: Words to show
text_placeholder: The words that carry the line
unsafe: "Only web, post an' telephone berths may be linked."
url_label: Web berth
url_placeholder: "example.com"
minimize: Batten down
more_fields: Show the rest o' the manifest
more_options: More riggin'
new_message: A Fresh Scroll
outdent: Shove it outboard
plain_text: "Plain hand, no flourishes"
plain_warning:
cancel: "Keep the flourishes"
continue: "Aye, carry on"
title: "Strip the flourishes?"
pop_out: Open in its own cabin
send_warning:
cancel: "Belay, keep writin'"
continue: "Cast off regardless"
title: "Cast this scroll off?"
read_receipt: "Beg word it were read"
recipient_required: Name at least one soul afore ye cast off.
redo: Do it over again
reply: Answer
reply_all: Answer the whole crew
save_and_close: Stow the scroll and close
send: Cast off
send_options: Castin'-off orders
sending: "Castin' off…"
signature: Make yer mark
signature_none: "This name bears no mark yet"
subject_label: Head
subject_placeholder: Headin'
text_color: Ink colour
to: To
underline: Underscored
undo: Belay that
body_placeholder: "Scrawl yer message…"
attachment_remove: Heave the cargo overboard
# The template picker in the compose window. The templates themselves
# are written in Settings → Templates (settings.templates).
template:
all_accounts: 'All ships'
empty: 'No form letters yet. Pen one in the Settings, or stow this message as one.'
failed: 'That form letter would not come aboard.'
insert: 'Insert form letter'
loading: 'Hauling up the form letters…'
manage: 'Tend the form letters'
no_match: 'No form letter by that name.'
nothing_to_save: 'There be no words here to stow as a form letter.'
save_draft: 'Stow this message as a form letter'
saved: 'Stowed as form letter “%name%”. Rename or move it in the Settings.'
search: 'Find a form letter'
untitled: 'Nameless form letter'
demo:
bar:
title: Sea trial
blurb: A borrowed sea chest. Naught here be real, an' naught ye send ever leaves th' harbour.
next: "Next on th' tide: %subject%"
receive: Haul in mail
flash:
blocked: Lashin' a real sea chest to this hull be forbidden on a sea trial.
login:
blurb: Take a turn about plMail wi' a sea chest o' yer own — no articles t' sign, no berth needed.
start: Begin th' sea trial
disclaimer: Yer trial chest be scuttled on its own after a watch or two.
privacy:
account: >-
Beginnin' th' sea trial opens a borrowed berth under a name drawn from th'
hat. Ye be asked for no name, no address an' no countersign, an' none be
kept. Whatever ye write there — letters, drafts, almanac marks — lives only
in that berth an' be scuttled wi' it, on its own, some %ttl% after it were
opened. Letters penned on a sea trial never leave th' harbour: there be no
line to any post at all.
account_title: Th' trial berth
complaint: Ye may also lay a complaint before th' harbourmaster o' records.
controller_intro: Answerable for th' handlin' set down here:
controller_title: Th' one answerable
controller_unset: "Not set. A privacy notice must name th' one answerable — set these afore ye open this port to the world."
cookie_mercure: keeps th' speakin'-line open while ye be aboard.
cookie_session: keeps ye aboard yer trial berth. Struck when ye close th' spyglass.
cookie_ui: remembers th' colours an' tongue ye chose.
cookies: >-
Three tokens be set, every one needful for sailin' her. There be no
followin' token, no crier's token an' no countin' token, an' so no banner
to wave away.
cookies_title: Tokens
host: Th' hull be kept on our behalf by %host%, under articles o' handlin'.
host_unset: "Not set. Whoever keeps th' hull be a processor, and must be named here."
logs: >-
As any harbour does, this one notes each callin': th' address it came from,
th' hour, th' page sought, th' page afore it an' th' spyglass's mark. This
be needful to sail her an' to hold off boarders (Art. 6(1)(f) o' th'
articles — rightful interest). Th' logs be turned over an' no man's likeness
be built from them.
logs_title: Th' harbour log
processing_title: What be handled, and by what right
rights: >-
Ye have th' right to be told what be held on ye, an' to have it set right,
struck, or held back, as well as th' right to object an' th' right to carry
yer records elsewhere. Write to th' address above.
rights_title: Yer rights
stats: >-
To see how much th' trial be used, each trial berth handed out be tallied. What
be kept be th' hour an' a keyed mark o' th' address wi' its tail cut off (th'
last octet o' an IPv4 address, th' last 80 bits o' an IPv6 one) — never th'
address itself. Th' mark shows only that two berths came from th' same waters,
an' it be scrubbed after %days% days (Art. 6(1)(f) o' th' articles — rightful
interest in knowin' how much th' trial be used).
stats_title: 'Th'' tally o'' visitors'
third_parties: >-
Naught be passed to other ships. This page draws no outside letterin',
scripts, charts nor countin'-houses — her articles permit lines to this
hull alone.
third_parties_title: Other ships
title: Articles o' records
unavailable:
title: Not to be had on a sea trial
body: >-
Lashin' a real sea chest to this hull be forbidden here. This trial
runs on a hull ye don't command, an' no soul should be tellin' it
their countersign. All else — colours, sieves, the almanac, writin'
letters — sails as it would on yer own ship.
dismiss: Back to the trial
impressum:
link: Ship's papers
title: Ship's papers
heading: Declarations under § 5 TMG
operator: Master o' the vessel
unset: "Not set. The law demands this page name a real master o' the vessel — set these in the environment afore ye open this port to the world."
contact: Hailing
contact_email: 'Letters:'
disclaimer_title: About this sea trial
disclaimer: >-
This be a showin' o' plMail. Th' chests, senders an' messages be
invented; none o' it be real correspondence. Letters penned here
never leave th' harbour, an' trial berths be scuttled after a watch
or two.
privacy_title: Records
privacy: >-
A trial visit opens a borrowed berth wi' no personal cargo in it.
Whatever ye write be scuttled wi' the berth. Th' log records
addresses for th' usual reasons o' seamanship an' be turned over.
source_title: Ship's plans
source: 'plMail be free vessels, under th'' AGPL-3.0 articles:'
dnd:
dragging: '%count% parcels in tow'
drafts:
empty: No scrolls in the works.
heading: Scrolls in the works
errors:
page:
back: Back to yer mail
not_found:
body: The page ye hailed be not here. Happen the link be mistyped, or what it pointed at were moved or scuttled.
heading: Naught at these coordinates
title: Page be lost at sea
server:
body: Somethin' went wrong on our deck, not yours. The fault be in the log; another go in a moment most often sails.
heading: Somethin' went wrong
title: The ship be takin' water
form:
file:
choose: Choose a likeness…
hint: PNG, JPEG, GIF or WebP
select:
no_results: Nary a match in these waters
cancel: Belay that
submit: Stow it
confirm_dialog:
heading: "Be ye sure?"
cancel: "Belay that"
confirm: "Carry on"
discarded:
actions:
purge: "Send to Davy Jones for good"
purge_confirm: "Sink this conversation for good? It can't be fished back up, and it be struck from the mail server too."
restore: "Haul back to the inbox"
header:
search:
close: Batten the hunt
live:
status: "%count% matchin' parleys"
status_none: Nary a matchin' letter
status_one: 1 matchin' parley
title: Post
open: Search the hold
placeholder: Search the hold…
recents:
clear: Scuttle
title: Lately hunted
suggestions:
title: Notions
user_menu:
account_attention: "%count% things about yer crew be needin' an eye"
admin: Cap'n's quarters
label: Crew menu for %email%
profile: Yer colours
rerun_setup: Rig her up again
unseen_logs:
danger: '%count% fresh disasters in the log'
warn: '%count% fresh grumbles in the log'
settings: Riggin'
sign_out: Go ashore
signed_in_as: Aboard as
inbox:
empty: No bottles in this here tab.
empty_account: Nothin' has washed ashore for this account yet.
insights:
card:
heading: Spied in this here parley
kind:
flight: Passage by air
github-issue: Issue
github-pr: Pull request
invoice: "The reckonin'"
otp: "Secret word"
parcel: Cargo
subscription: "Standin' order"
ticket: Passage papers
pane:
dismiss: Wave it off
dismiss_all: Strike the whole banner
heading: Soon upon ye
more: More doings
when:
today: This very day
tomorrow: On the morrow
panel:
dismiss: Wave it off
heading: Through the spyglass
open_mail: To the bottle
track: Chart its course
undated_heading: From yer repos
report:
already_reported: "Ye've already reported this here bottle."
cancel: Belay that
disclosure: "Ye be reportin' this bottle so plMail may spy somethin' in the likes of it hereafter. The bottle's contents and whoever sent it be handed to yer admiralty."
heading: "Report what the spyglass missed"
note_label: "What should the spyglass have spied here?"
note_placeholder: "Fer instance: this be a bill, due on the third."
submit: Send the report
success: "Much obliged — yer report be with the admiralty."
status:
announced: Word be given
delivered: Come ashore
in_transit: On the high seas
ordered: Sent fer
out_for_delivery: "Rowin' the last stretch"
ready_for_pickup: "Waitin' at the dock"
integration:
save_failed: 'Could not stow: %reason%'
saved_to: 'Stowed to %name%'
destination:
album_name: 'Album name'
choose_album: 'Pick an album fer %file%'
choose_folder: 'Pick a hold fer %file%'
choose_for_filter: "Pick where this sieve stows its cargo."
choose_here: 'Take this hold'
choose_tag: 'Pick a tag fer %file%'
choose_this: Take it
create: Make
folder_name: 'Hold name'
library: 'Whole library (no album)'
new_album: 'New album'
new_folder: 'New hold'
new_tag: 'New tag'
no_albums: 'No albums yet, matey.'
no_subfolders: 'No holds here.'
no_tag: 'No tag'
no_tags: 'No tags yet, matey.'
save_here: 'Stow here'
start_over: 'Start afresh'
tag_name: 'Tag name'
picker:
attach: 'Haul aboard'
attach_from: 'Haul from %name%'
attach_from_service: 'Haul from a port'
empty: 'This hold be empty.'
link: Link
more: 'Show more'
no_results: 'Naught found for “%query%”.'
search: Search
search_placeholder:
dropbox: 'Search Dropbox'
googleDrive: 'Search Drive'
googlePhotos: 'Search Photos'
immich: 'Describe a picture, say beach at sundown'
nextcloud: 'Search Nextcloud'
oneDrive: 'Search OneDrive'
paperless: 'Search titles and scanned text'
status:
attach_failed: 'Couldn''t haul it aboard'
attaching: 'Haulin'' aboard…'
load_failed: 'Couldn''t haul up more'
loading: 'Haulin'' up…'
nothing_selected: 'Naught be chosen'
save_draft_first: 'Stow the draft first'
skipped: 'Left on the dock: %files%'
timeline: 'Jump to a date'
too_big: 'Too heavy to haul'
jobs:
button:
failed: "Somethin' ran aground"
importing: "Haulin' aboard"
importing_percent: "Haulin' · %percent%%"
working: "Hard at work…"
heading: Work below decks
import:
folder: "Now: %folder%"
heading: "Haulin' %account% aboard"
newest_first: "Freshest post first"
quota: "Gmail's ration: about %used% o' %limit% units this minute"
quota_assumed: "Gmail's ration: about %used% o' %limit% units this minute (a guess, till Google names the limit)"
quota_paused: "Becalmed by Gmail's ration · under way in %seconds% s"
quota_refused: "Gmail said nay at about %used% o' %limit% units a minute"
rate: "About %count% letters a minute"
remaining_hours: "About %hours% h %minutes% min o' haulin' left"
remaining_minutes: "About %minutes% min o' haulin' left"
waiting: "Waitin' fer the tide"
started: 'Started %action% — she runs below decks.'
failure:
abandoned: "Cut adrift — she stopped half way, and what were already done stays done."
kind:
mark_read: Markin' as read
mark_unread: Markin' as unread
archive: Stowin'
trash: Castin' overboard
restore: Haulin' back
snooze: Lettin' it drift
wake: Haulin' it back from the drift
move_to: Haulin'
purge: Sendin' to Davy Jones for good
reclassify: Stowin' recent post again
state:
done: '%count% done'
failed: foundered
queued: waitin'
label:
all_accounts: "All accounts"
color:
amber: Amber
blue: Blue
gray: Gray
green: Green
orange: Orange
pink: Pink
red: Red
teal: Teal
violet: Violet
empty: No yarns flyin' this flag.
created: Flag hoisted.
delete_confirm: 'Strike the flag "%name%"? It comes down on every ship in the fleet. Yarns keep their other flags and be not thrown overboard.'
delete_confirm_children: 'Strike "%name%" and the %count% flag(s) beneath it? They come down on every ship in the fleet. No yarns be thrown overboard.'
deleted: Flag struck.
error:
duplicate: A flag by that name already flies here. Shoutin it in capitals dont make it a new one.
form:
color: Colour
delete: Strike this flag
delete_hint: 'Strikin'' it brings the flag down on every ship in the fleet, an'' every flag flyin'' beneath it too. Yarns that carried it keep their other flags an'' be not thrown overboard.'
edit_title: Mend this flag
name: Name
no_color: '— none —'
no_parent: '— top o'' the mast —'
parent: Fly beneath
menu:
create: Hoist a new one
empty: No flags yet.
updated: Flag mended.
visibility:
hidden: That flag be lowered.
shown: That flag flies again.
list:
sort:
newest: Freshest catch
oldest: Oldest catch
login:
form:
email: Parrot address
forgot_password: Forgot yer secret word?
forgot_password_hint: 'Only th'' quartermaster can mint ye a new one, from th'' ship''s console.'
password: Secret word
remember_me: Keep me aboard
submit: Come aboard
oidc:
button: Board with yer fleet's seal
button_named: Board with %provider%
or: or
page_title: Come aboard
register:
coming_soon: Signin' on be comin' soon.
link: Sign the articles
prompt: Not yet on the roster?
tagline: Come aboard yer own ship
message:
actions:
archive: Stow in the hold
delete: Send this bottle to Davy Jones
collapse: Furl this bottle
expand: Unfurl this bottle
mark_unread: Mark as unread
more: More
print: Print
report_insight: "Report what the spyglass missed"
show_original: Show the original scroll
star: Mark with an X
unstar: Rub out the X
attachments: Cargo
back: Back
body_frame: The bottle's contents
bounce:
failed: "This message ne'er made port."
failed_for: "Ne'er made port at %recipient%."
reported_at: "Word came back %datetime%"
details:
categorised:
ai: "an oracle, for no rule knew it: "
ai_differs: 'the rules say otherwise'
awaiting_resort: "Bein' re-stowed — ye changed how post be sorted, an' this one has not shifted yet."
own_filter: "stowed there by one o' yer sieves"
gmail_overruled: "not used — ye asked plMail to stow this itself"
in_force: 'this one decides'
ai_no_answer: 'asked, naught useful back'
ai_not_asked: 'not asked'
correspondent: 'ye have written to this one'
default: 'naught marked it as bilge'
forum: 'a crew-list header: '
gmail: 'Gmail swore it: '
pinned: 'ye hauled it here yerself'
promotion: 'a bulk-cargo header: '
social: 'the sender port '
switched_off: "it'd be %category%, an' ye scuttled that one"
thread_differs: "This message alone would be %category% — a yarn takes th' category o' its newest message."
update: 'a sign of an unmanned sender: '
category: rank
category_ai: 'the oracle'
category_gmail: 'Gmail says'
category_rules: "our own reckonin'"
bcc: bcc
cc: cc
copy_address: 'Pocket the address %address%'
copy_headers: Pocket the headers
report:
failed: "Could nay be reported"
label: "Wrong tab? Belongs in"
send: Report her
stale: "Already stowed there — reload"
sent: Reported
date: date
from: from
hide_all_headers: Furl all headers
label: Particulars
mailed_by: carried by
reply_to: answer to
show_all_headers: Unfurl all headers
signed_by: sealed by
subject: subject
to: "to %name%"
to_label: to
undisclosed: hands unnamed
draft: "Scroll"
images:
always: 'Always show the pictures from %sender%'
blocked: '{1}1 picture was held back so none may spy yer reading|]1,Inf[ %count% pictures were held back so none may spy yer reading'
show_once: Show the pictures
stop_trusting: Hold them back again
trusted: 'Pictures from %sender% are always shown'
original:
copied: Copied
copy: Copy to the slate
copy_failed: The slate wouldn't take it
fields:
created_at: Penned on
from: From
message_id: Bottle's mark
subject: Subject
to: To
heading: The original scroll
reconstructed: "The true scroll be lost to the deep, so what ye see here be redrawn from the headers we kept and the plain text. The MIME riggin' and any HTML sail be missin', and it'll ne'er answer to a DKIM seal."
quote:
hide: Stow the quoted words
show: Unfurl the quoted words
read_receipt:
dismiss: 'Nay, send nothin'''
mdn:
body: "Yer bottle to %recipient% bearin' the mark “%subject%” were unfurled on %date%. That be no oath any soul read it, nor understood a word of it."
subject: 'Unfurled: %subject%'
mismatch: 'The word back were asked to sail to %notifyTo%, which be not the port this bottle were cast off from (%sender%).'
read_at: 'Unfurled at %datetime%'
requested: '%sender% begs word when ye unfurl this bottle.'
send: 'Send word back'
save_to: 'Stow to'
security:
mismatch:
brand_in_name: "The name flies “%claimed%”, but this bottle was cast off from %actual%."
domain_in_name: "The name claims %claimed%, but this bottle was cast off from %actual%."
title: "The sender flies false colours"
spam:
body: "This bottle was fished from the bilge. Its links and pictures be treacherous — treat aught it asks of ye as a stranger's demand."
title: This bottle sits in the bilge
mercure:
status:
connected: "Live signals flyin'"
connecting: "Raisin' the live signals again…"
offline: "Live signals down — the inbox may be behind the times"
modal:
close: Batten it down
loading: Haulin' aboard…
oauth:
error:
generic: We couldn't tie up that crew member. Try again, matey.
microsoft:
admin_consent_required: >-
Yer fleet requires an admiral to approve plMail afore ye can tie
up this crew member. Ask yer Microsoft admiral for leave.
app_not_found: >-
plMail ain't on the roster of yer Microsoft fleet.
bad_credentials: >-
plMail's Microsoft papers be forged or expired. That be trouble
below decks, not somethin' ye can mend.
blocked_by_policy: >-
A standin' order in yer fleet blocked this boardin'.
consent_declined: >-
Boardin' called off — plMail were granted no leave.
tenant_mismatch: >-
That kind o' crew member can't board plMail as she be rigged
now. Check the MICROSOFT_OAUTH_TENANT settin'.
onboarding:
action:
back: Back astern
finish: Done an' dusted
next: Onward
skip: Sail past this one
skip_all: Skip the whole riggin'
done:
body: >-
Whatever ye sailed past be waitin' in the Settings, an' ye can run this
again from the crew menu whenever the mood takes ye.
cta: To me parrots
heading: Yer ship be rigged
aside:
account:
body: >-
plMail wants the addresses for incomin' (IMAP) an' outgoin' (SMTP) post.
Yer provider's help charts list 'em under "IMAP settings".
heading: Where be these writ?
oauth: >-
For Gmail an' Outlook, use the sign-aboard buttons under Riggin' → Mailbags
instead — no addresses needed.
admin_ai:
body: "The berth of an Ollama box on yer network, or of any OpenAI-compatible port, an' the names o' two models it offers — one for writin', one for searchin'. Mail goes to that berth an' nowhere else."
heading: 'What ye need'
skip_body: "Press Next with all of it empty. plMail be a whole mail client without any o' this, an' ye can come back later under Admin -> Oracle."
skip_heading: 'Not for ye?'
admin_integrations:
body: Register yer ship with the port, then paste the keys it hands ye.
heading: Riggin' this up
admin_mail:
google:
heading: Riggin' Gmail sign-aboard
step1: Make sail for console.cloud.google.com an' start a project, or take one ye already hold.
step2: 'Under APIs an'' Services → Library, hoist th'' Gmail API.'
step3: 'Under OAuth consent screen, pick Internal if ye sail with Workspace, else External, an'' name yer ship.'
step4: 'Under Credentials, cut an OAuth client ID o'' th'' "Web application" sort.'
step5: Paste th' return bearing below into its "Authorised redirect URIs", then stow it.
step6: Copy th' client ID an' secret it shows ye into th' fields to port.
microsoft:
heading: Riggin' Microsoft sign-aboard
step1: 'Make for portal.azure.com an'' steer to Microsoft Entra ID → App registrations → New registration.'
step2: 'Choose who may come aboard. "Any organizational directory an'' personal Microsoft accounts" matches th'' tenant settin'' o'' "common".'
step3: 'Set th'' redirect kind to Web an'' paste th'' bearing below into it.'
step4: 'Once registered, copy th'' Application (client) ID into th'' field to port.'
step5: 'Under Certificates an'' secrets, cut a new client secret an'' copy its Value — not its ID — at once; it be shown but once.'
step6: 'Under API permissions, add th'' delegated Microsoft Graph rights: Mail.ReadWrite, Mail.Send, MailboxSettings.ReadWrite, Calendars.ReadWrite, User.Read an'' offline_access. Leave out MailboxSettings.ReadWrite or Calendars.ReadWrite an'' crew still board — they just get no categories an'' no calendar, an'' a token already issued be never upgraded later.'
profile:
body: This be what them on the other end read in the From line.
heading: Where this flies
security:
body: >-
Think what befalls ye if some scallywag gets yer secret word. He
don't just read yer parrots — he calls for a new secret word at yer
bank, yer harbourmaster an' yer storehouse, an' collects the letters
as they land.
body_two: >-
A second lock be a countersign on yer spyglass that turns over every
30 seconds. A pinched secret word stops bein' enough.
heading: Why this prize above all
account:
add: Hitch up this mailbag
or_manual: 'Or rig it by hand:'
sign_in_with: 'Sign aboard with %provider%'
add_another: Hitch up another mailbag
cancel: Belay that
integrations:
cancel: Belay that
connect: Hitch up
connected: Hitched
progress: 'Stop %index% o'' %total%'
security:
body: >-
Yer parrot cage be the key to every other prize ye hold, for that be
where the letters for a new secret word land. A countersign from yer
spyglass means a pinched secret word be not enough on its own.
done_body: >-
Ye'll be hailed for a countersign from yer spyglass when ye come aboard.
Stow the spare tokens where ye can reach 'em without it.
done_heading: The second lock be set
skip_hint: Ye can rig this later under Riggin' → The ship's lock.
switch_blocked: Naught was switched — mend the fields below first, an' what ye wrote stays put.
step:
account:
lead: Hitch up the mailbag ye actually read, an' plMail starts haulin' it in.
title: Mailbag
admin-ai:
intro: "plMail can consult an oracle — one ye run yerself, or a port o' yer choosin' — for searchin' by meanin', sortin' mail, an' help with writin'. Wholly optional; leave ev'ry box below empty if ye like."
lead: "Optional. Leave it be if ye don't want it."
title: 'Oracle'
admin-integrations:
lead: Keys for the ports every soul aboard can load cargo from.
title: Port keys
admin-mail:
lead: Keys for Gmail an' Outlook, cut once for the whole ship.
title: Parrot ports
appearance:
lead: How yer ship looks. Nothin' here be carved in stone.
title: Riggin' an' colours
integrations:
lead: Hitch up the ports where ye stow yer charts an' portraits.
title: Yer ports
profile:
lead: The name that flies on the parrots ye send.
title: About ye
security:
lead: The one prize worth lockin' proper. Takes about a minute.
title: Guard yer berth
title: Rig up plMail
profile:
avatar_current: Yer likeness at present
avatar_from:
not_an_image: 'That be no likeness plMail can hang. Pick a PNG, JPEG, GIF or WebP.'
too_large: 'That likeness weighs more than 4 MB. Pick a lighter one.'
unavailable: 'The port didn''t hand o''er the likeness. Try again in a moment.'
empty: Naught to show from that port.
heading: Or take one from a port ye've hitched up
field:
avatar: Yer likeness
avatar_help: PNG, JPEG, GIF or WebP, up to 4 MB.
avatar_remove: Strike the current likeness
name_first: First name
name_last: Family name
# 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: Shift the rail 'tween list an' letter
placeholder: Pick a conversation, matey, an' it'll be laid out here
# 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: 'Copy the bearin'''
server: 'That ran aground — somethin'' broke below decks. Try again in a moment.'
not_found: 'That be gone from these waters. Moved or scuttled, like as not.'
refused: 'plMail couldn''t do that. Reload the page an'' try again.'
offline: 'plMail can''t be hailed. Check yer connection an'' try again.'
reference: 'Bearing %id%'
sync_now:
label: 'Haul in the post'
syncing_one: 'Haulin'' in 1 account…'
syncing_other: 'Haulin'' in %count% accounts…'
still_running: 'Still haulin'' below decks.'
complete: 'All hands aboard — sync complete.'
session_expired: 'Yer watch has ended — reload the page to sign in again.'
search:
empty:
or_keyword: or just bellow a keyword.
title: Scour yer mail
try: Give
heading:
results: Plunder found for
no_results:
hint: Try other words, or cut some filters loose.
title: Nary a thing for "%query%"
pill:
after: After
attachment: cargo
before: Before
cc: Cc
from: From
has: Carries
in: In
is: Be
label: Flag
read: read
starred: starred
subject: Subject
to: To
unread: unread
results:
count: '%count% spoils'
count_one: 1 spoil
semantic:
admin_link: 'See the progress'
indexing: "Divinin' meanin' across %embedded% o' %total% messages — %percent%% done."
model_changed: "The divinin' model has changed. The %count% messages read by the old one be not searched by meanin' until they be read again."
nothing_extra: "Searchin' by meanin' turned up nowt the words had not."
skipped:
bad_answer: "The oracle answered with somethin' unusable — so this search used words alone."
host_unreachable: 'Nowt answered at the berth — so this search used words alone.'
model_missing: "That berth holds no divinin' model — so this search used words alone."
not_configured: "Search by meanin' be on, but no berth be set — so this search used words alone."
query_too_short: "Write a little more an' the meanin' be searched too."
search_failed: "The search by meanin' ran aground — so this search used words alone. The ship's log says why."
search_too_slow: "Searchin' by meanin' took too long in these waters — so this search used words alone."
timed_out: 'The oracle took too long — so this search used words alone.'
sort:
label: Sort by
recent: Freshest catch
relevance: Closest to the mark
title: Scourin'
title_query: 'Scourin'' for: %query%'
sent:
empty: No bottles cast off.
heading: Cast off
setup:
install:
field:
email: Parrot address
email_help: This be the address ye sign aboard with.
locale: Tongue
name_first: First name
name_last: Family name
password: Secret word
password_repeat: Say the secret word again
public_url: Yer flag on the open sea
public_url_help: >-
Where the world finds yer plMail. Gmail an' Outlook holler back to it
with their tidings, so it must be reachable from the open sea, an'
best be https. Ye can change it later.
footnote: Ye can hoist yer mailbags, an' all else, once yer aboard.
heading: Claim yer berth
lead: This be the first soul aboard this plMail, so ye get the cap'n's keys.
page_title: Rig up plMail
restore_link: "Bring aboard a configuration backup first."
restore_prompt: "Movin' over from another plMail?"
submit: Claim it an' come aboard
tagline: Nary a soul aboard yet — let's mend that
restore:
applied_lead: "The configuration be in place. This backup carried no crew, so this installation still has none — appoint the captain to finish. If a restart be noted above, it can wait until after that."
applied_lead_users: "The configuration and its crew be in place — %count% restored, %admins% among them. Sign on with the password ye already had; naught about it has changed."
back: "Back to appointin' the captain"
continue: "Carry on — appoint the captain"
footnote: "A configuration backup carries settin's, credentials and the crew who use them — never post, calendar entries or contacts."
heading: "Bring aboard a configuration backup"
lead: "Bring another plMail's settin's, credentials and accounts here afore ye create anythin'. Haul up the chest and type its password — plMail writes the rest into this installation itself."
nothing_to_do: "There be naught left for ye to do here."
page_title: "Bring the configuration aboard"
sign_in: "Sign on"
submit: "Open the chest"
session:
expired:
heading: "Ye've been put ashore"
body: "Yer session ended somewhere else. Sign on again to carry on."
body_writing: "Yer session ended somewhere else. Sign on again in a new tab, then come back — what ye've written here be still on screen."
sign_in: "Sign on again"
sign_in_new_tab: "Sign on in a new tab"
reload: "Reload this page"
settings:
ai:
context:
heading: 'How Deep the Oracle Reads'
message: 'The message'
message_hint: "The oracle reads the message ye be answerin'. This be how it always was."
none: 'Naught'
none_hint: "The oracle spies only what ye typed. Fastest — an' \"Draft a reply\" on an empty window has naught to work from, so it'll say it couldn't answer. Shorten, formal an' proofread sail on unaffected."
subheading: "More o' the parley makes a better reply an' a longer wait. The oracle runs on this very vessel, so what it costs be time an' little else."
thread: 'The whole parley'
thread_hint: "The oracle reads the whole parley, oldest first, as much as fits. Better replies in long threads, an' a longer wait."
feature:
admin_off: 'Not hoisted on this vessel'
categorise: "Sortin' the Haul"
categorise_hint: "Lets the oracle break the tie when plain rules can't place a message. Off leaves 'em where the rules dropped 'em."
search: "Divinin' Search"
search_hint: "Finds mail that means what ye asked, not only mail that spells it so. Off stops yer mail bein' charted as well as searched."
summary: 'Yarn-in-short'
summary_hint: 'Boils a long yarn down when ye ask. Nowt be boiled unasked.'
writing_help: "Quill Wranglin'"
writing_help_hint: "Drafts a reply, shortens, makes fancy, proofreads — in the writin' window, when ye ask."
features:
heading: "Oracle's Talents"
subheading: "Which o' the oracle's tricks ye be wantin'. Yer admiral sets what be available; ye choose what ye use."
notes:
about_me_hint: 'Yer trade, who ye normally write to, aught a stranger would need to answer yer mail well.'
about_me_label: 'Who ye be'
about_me_placeholder: "I keep a rope-mender's shop an' most o' me mail be customers bookin' repairs."
heading: 'Yer Own Tale'
save: 'Stow it'
saved: 'Stowed.'
subheading: "What the oracle should know afore it writes fer ye. Both notes sail with every draft, an' serve naught else."
system_prompt_hint: "Preferences, not orders — the ship's own rules come first, includin' writin' in the tongue o' the mail. Keep it short: long notes crowd the message itself out o' the oracle's eye."
system_prompt_label: 'How ye like yer words'
system_prompt_placeholder: "Short sentences. No shoutin' marks. Sign off with me first name alone."
reads:
categorise: "Sortin': the sender, the subject an' the start o' the message."
heading: 'What the Oracle Be Handed'
search: "Chartin': the subject, the sender an' the start o' each message."
summary: "Th' messages o' a yarn ye ask t' have boiled down"
writing_help: "Writin': yer subject line, what ye typed, an' as much o' the parley as the setting above allows."
seg:
off: 'Nay'
on: 'Aye'
accounts:
colour:
change: 'Change the colours o'' %account%'
swatch:
'0': Orange
'1': Green
'2': Blue
'3': Violet
'4': Amber
'5': Pink
'6': Teal
'7': Olive
delete: Put this crew member ashore
delete_confirm: 'Put %account% ashore? Every bottle hauled aboard for this crew member goes to Davy Jones for good, and there be no gettin'' them back.'
disable: Revoke the papers
edit: Amend the papers
empty: No crew yet. Sign one on to start haulin' mail aboard.
enable: Restore the papers
folders:
always_synced: The inbox be always hauled aboard
button: Pick which folders to haul aboard
empty: No folders yet. They be listed after the first haul.
intro: >-
Switch a folder off and plMail stops haulin it aboard. Post
already stowed stays where it lies, and switchin the folder back
on picks up where it left off.
placeholder: 'A marker that only herds other folders — there be nothin in it to haul aboard'
start_sync: 'Start haulin %folder%'
stop_sync: 'Stop haulin %folder%'
title: 'Folders — %account%'
heading: Th' crew
make_primary: Name her flagship
make_primary_explained: 'Send new bottles from %account% by default'
reconnect: Sign on again
reconnect_explained: 'Sign on to %account% afresh — to grant leave ye once refused, or after changin'' yer word'
move_down: 'Move %account% down the roster'
move_up: 'Move %account% up the roster'
order_hint: >-
Drag to set the roster. 'Tis the order they be listed in and naught
else — the ship yer bottles sail from is the one marked Flagship.
password_help: Leave it blank to keep the secret word ye have.
primary: Flagship
primary_explained: New bottles sail from this ship unless ye say otherwise.
push:
lapsed_hint: >-
Th'' push registration ran out an'' were never renewed, so
naught be delivered. Renewal sails daily on its own — if this
keeps happenin'', th'' scheduled-task hand has stopped. Post be
still fetched on th'' bell.
degraded_hint:
gmail: >-
The cannon be loaded but naught has been heard lately. The
Pub/Sub push subscription in Google Cloud may be missin' or
aimed elsewhere. Mail still comes aboard on the watch bell.
microsoft: >-
The push subscription has run out and naught be arrivin'.
Load the cannon again to bring word back. Mail still comes
aboard on the watch bell.
failed:
gmail: >-
The cannon couldn't be readied — Google turned away the
watch. See that GMAIL_PUBSUB_TOPIC names a Pub/Sub topic
that truly exists, and that the topic grants
gmail-api-push@system.gserviceaccount.com the Pub/Sub Publisher
role. Mail still comes aboard on the watch bell.
microsoft: >-
The cannon couldn't be readied — Microsoft must reach this
ship over HTTPS. Check yer reverse proxy and APP_PUBLIC_URL.
Mail still comes aboard on the watch bell.
health:
active: Cannon
degraded: Cannon (misfirin')
inactive: On the bell
lapsed: Cannon (run out)
not_configured: >-
No cannon on this ship — she needs a public HTTPS berth and, for
Gmail, a Cloud Pub/Sub topic.
off_hint: Mail comes aboard on the watch bell. Load the cannon for word the moment it lands.
on_hint:
gmail: New mail lands the instant Gmail fires the cannon.
microsoft: New mail lands the instant Microsoft fires the cannon.
title: Word the moment it lands
reorder: Drag to reorder the line
status:
active: Sailin'
disabled: Beached
subheading: Sign on, amend, restore or put ashore the crew ye sail with.
type:
imap: IMAP
oauth: '%provider% (OAuth)'
aliases:
add: 'Add'
add_placeholder: 'Add another address…'
catch_all:
add: 'Make it catch all'
hint: 'If every address at a harbour lands in this hold, add the harbour here. A reply then sails from the address the letter was sent to, without adding each one above.'
label: 'Catch-all harbours'
placeholder: 'example.com'
remove: 'Strike %domain%'
delete: 'Strike it'
disable: 'Furl it'
empty: 'No addresses yet.'
enable: 'Unfurl it'
heading: 'Parrot addresses'
make_primary: 'Make it the flagship'
ms_sender_hint: 'Outlook always sails under yer crew member''s flagship alias, whatever ye pick here — change it in yer'
ms_sender_hint_link: 'Microsoft account settings'
name_for: 'Sender name for %alias%'
name_placeholder: 'Sender name'
name_save: 'Stow the name'
primary: 'Flagship'
refresh: 'Fetch from the harbourmaster'
subheading: 'Addresses this crew member sends and receives under.'
system: 'ship''s own'
clock:
heading: Th' glass
subheading: Whether th' hours be writ in twelves or in four-and-twenty, an' where th' hour o' now be hung. Naught be stored different — only th' figures change.
label: Th' glass
follow_language: 'Follow yer tongue (%sample%)'
option:
'12': 'Twelve hours (%sample%)'
'24': 'Four-and-twenty hours (%sample%)'
placement:
label: 'Show th'' hour'
option:
topbar: 'On th'' Comin'' soon button up top'
brand: 'Under th'' plMail name'
sidebar: 'Down at th'' bottom o'' th'' sidebar'
'off': 'Nowhere, I''ll read th'' sun'
device_pairing:
pair_device: "Sign on a spyglass"
scan_title: "Point th' plMail app at this"
scan_hint: "Th' mark works once and fades in two minutes. It carries no spare key — th' app trades it for a fresh one."
qr_alt: "Pairing mark"
expires: "Fades at %time%."
open_in_app: "Open it in th' app"
app_passwords:
copy: Copy
copy_now: Here be yer new spare key
copy_now_hint: >-
Copy it now — it be kept nowhere and shown never again. Lose it and
ye must scuttle it and cut another.
empty: No spare keys yet. Cut one to tie up a mail app.
generate: Cut a key
heading: Spare keys
last_used: 'Last turned %date%'
name_placeholder: 'What be it for? e.g. iPhone — Sterna'
never_used: Never turned
revoke: Scuttle it
revoke_confirm: 'Scuttle "%name%"? Any app usin'' it be thrown overboard at once.'
setup_heading: Tyin' up an app
setup_hint: >-
Use yer parrot address as the name ye go by and the spare key as the
secret word. If the app asks for a ship or JMAP URL, give it this
one — not the /jmap/api berth, which takes naught but POST.
subheading: >-
Board third-party mail apps that speak JMAP. Every app gets its own
key ye can scuttle on its own.
appearance:
accent:
heading: Accent colour
background:
heading: Backdrop
solid: One flat hue
theme: Theme default
upload: Hoist an image
density:
comfortable: Roomy
compact: Cramped
cosy: Snug
follow: Follow the fleet
heading: Quarters
subheading: How much deck each row be given. Set it once fer the whole ship, or give a deck quarters o' its own.
surface:
list: Manifest
reading: Readin' deck
sidebar: Side riggin'
motion:
full: Full sail
heading: Sway
minimal: Gentle swell
none: Becalmed
reduced: If yer machine asks for calmer seas, plMail obeys it — whatever ye picked here.
subheading: How much the deck shifts when somethin' appears. Gentle swell fades without movin' the cargo.
export: Export theme
glass:
heading: Spyglass
paneAlpha: "Panel see-through-ness"
paneAlphaHint: "The sidebar, top bar, main pane an' calendar — the frame the ship is laid out in. Naught sits behind these but the backdrop."
paneBlur: Sea fog
popoverAlpha: "Porthole an' menu opacity"
popoverAlphaHint: "The writin' porthole, dialogs an' menus. Each o' these sits atop a panel, so both layers show through at once. Keep 'em near solid an' they stay readable."
radius: Corner radius
scrimAlpha: Backdrop dimmin'
subheading: How much o' the backdrop shows through yer panels.
heading: Look o' the ship
import: Import theme
layout:
boxed: Crates
flat: Flat as a calm sea
heading: Riggin'
subheading: How the deck be framed. Crates float every panel like cargo; flat lays the top rail an' side riggin' straight on the backdrop an' leaves only the main deck boxed.
list:
accountCorner: Crew colours
accountCornerHint: The wee coloured pennant in a row's corner, namin' which berth the message sailed in on. Only ever flown when the manifest mixes berths.
heading: Manifest
listAvatars: Sender medallions
listAvatarsHint: The coloured coin bearin' the sender's initial. Struck off it turns a plain ring rather than vanishin' — 'tis also the row's tick-box.
tabUnreadCount: 'Unread tally on the inbox tabs'
tabUnreadCountHint: 'The number beside each tab''s name: how many yarns in that hold carry unread mail. Together the tabs make the Inbox tally in the sidebar. The "3 new" pennant be a separate thing an'' stays.'
previewLines: Peek lines
previewLines0: None
previewLines1: One line
previewLines2: Two lines
subheading: What every row o' the manifest shows.
unread:
standard: As she be
strong: Loud as a cannon
subtle: A whisper
unreadEmphasis: Unread rows
logo:
colour: 'Colours'
heading: 'Ship''s mark'
icon: 'Figurehead'
independent: 'Chart yer own'
linked: 'Sail with the theme'
motif:
airmail: 'By gull'
at-horn: '@-bugle'
blue-horn: 'Blue bugle'
happy-mail: 'Jolly post'
love-letter: 'Sweetheart''s letter'
mailbox: 'Post barrel'
pl: 'The old mark'
pl-stamp: 'pl postage'
snail-mail: 'Slow boat'
wax-seal: 'Cap''n''s seal'
original: 'Her own colours'
style:
aurora: 'Northern lights'
berry: 'Berry'
blue-tonal: 'Blue on blue'
bronze-flick: 'Bronze flourish'
bronze-ink: 'Bronze & ink'
burgundy: 'Grog'
charcoal-amber: 'Coal & amber'
cobalt-coral: 'Cobalt & coral'
copper: 'Copper'
deep-violet: 'Deep violet'
ember: 'Embers'
espresso-cream: 'Grog & cream'
forest: 'Kelp'
forest-lime: 'Kelp & lime'
graphite-red: 'Graphite & red'
indigo-violet: 'Indigo–violet'
ink: 'Squid ink'
midnight-gold: 'Midnight & doubloons'
navy-sky: 'Navy & sky'
ocean: 'The open sea'
petrol-copper: 'Petrol & copper'
plum-rose: 'Plum & rose'
postal: 'Mail packet'
product-blue: 'Ship''s blue'
red-flick: 'Red flourish'
sky-flick: 'Sky flourish'
slate: 'Slate'
sunset: 'Sunset'
teal-gold: 'Teal & doubloons'
tricolore: 'Three flags'
twilight: 'Twilight'
violet-flick: 'Violet flourish'
subheading: 'Yer figurehead, then the colours it sails under. Top bar and tab badge both fly them.'
main:
heading: Main deck
matchGlass: Match the spyglass
subheading: Tint and opacity for the main deck, apart from the sidebar.
tint: Backdrop tint
preview:
body: A short word, so the readin' deck has summat to show. None o' this be real post — the lookout fetches nary a letter.
heading: Lookout
hide: Stow the lookout
resize: Shift the lookout's width
compose_body: "A reply half writ, so th' writin' window has summat in it. Nowt here be sent."
compose_heading: "New dispatch"
compose_send: "Send her"
compose_subject: "Re: Notes on th' Analytical Engine"
compose_to: ada@plmail.test
field_date: Date
field_from: From
field_subject: Subject
field_to: To
reply: Answer
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: Show the lookout
snippet: This be what a peek line looks like, an' how much o' one fits afore the row runs clean out o' deck fer it.
subheading: Yer settings on a make-believe manifest. Nary a thing here be hauled from yer own post.
to: to ye
value_from: Ada Lovelace <ada@plmail.test>
value_to: ye@plmail.test
subject1: Notes on the Analytical Engine
subject2: 'Re: the compiler draft'
subject3: Assembly notes, as promised
subject4: "Guidance software — th' priority list"
subject5: "Re: abstraction an' the type hierarchy"
subject6: "Term weightin', an' why it matters"
subject7: "Spannin' tree draft for review"
subject8: "Optimisin' th' inner loop: results"
reset: Back to how she came
subheading: Colours, crampedness, letterin' an' the backdrop — the whole look o' the ship, all in one spot.
seg:
custom: 'Yer own'
default: "Theme's pick"
hidden: 'Stowed'
shown: 'Shown'
text:
autoDerive: Work it out for me
color: Text colour
faint: Faint
heading: Text
muted: Muted
subheading: Adjust text colour so it reads against yer backdrop.
theme:
dark: Dark
dusk: Dusk
heading: Theme
more: 'More flags'
light: Light
nord: Nord
paper: "Parchment"
solar: Solar
subheading: Colour scheme for the whole ship.
system: Ship's own
typography:
family: Letterin'
font:
grotesk: Grotesque
monospace: Ledger hand
serif: Serif
system: Ship's own
heading: Letterin'
scale: Text size
scaleHint: Applies to the whole ship. The writin' desk keeps its own hand an' size — those sail out with the message.
subheading: The hand an' the size the ship be lettered in.
compose_defaults:
heading: 'Standin'' orders fer writin'''
invalid: 'That order could not be set down.'
read_receipt:
for_alias: 'Word back fer %alias%'
hint: 'When a sender begs word that ye have unfurled their bottle.'
inherit: 'Ship''s own order (%mode%)'
label: 'Word back'
mode:
always: 'Always send word'
ask: 'Ask me each time'
never: 'Never send word'
saved: 'Set down.'
subheading: 'What each o'' yer names does by default, sendin'' and receivin''.'
filters:
account: Account
action:
applyLabel: Fly the flag
archive: Skip the hold
fileInCategory: Stow in a hold of its own
markRead: Mark as read
markSpam: Call it bilge
removeLabel: Strike the flag
saveToIntegration: Stow cargo to
star: Mark it
trash: Over the side
add: New sieve
add_action: Add an order
add_condition: Add a test
add_group: Add a bundle
all_accounts: All crew
count: '%count% sieves'
count_capped: 'Catches %count%+ yarns already aboard'
count_error: Not a workable sieve yet
count_exact: 'Catches %count% yarn already aboard|Catches %count% yarns already aboard'
delete: Scuttle the sieve "%name%"
delete_confirm: 'Scuttle the sieve "%name%"? Yarns it already sorted stay put.'
delete_title: Scuttle sieve
deleted: Sieve scuttled.
disable: Stow the sieve
disabled: Stowed
edit: 'Mend the sieve "%name%"'
edit_title: Mend sieve
empty: No sieves yet
empty_hint: Sieves sort yarns as they come aboard — flag them, skip the hold, mark them, or send them over the side.
enable: Set the sieve
error:
action_required: Add at least one order, else the sieve does nothin.
name_required: Name the sieve.
field:
after: Aboard after
bcc: Bcc carries
before: Aboard before
body: Yarn carries
cc: Cc carries
filename: Cargo named
from: From carries
fromAddress: 'From be exactly'
fromDomain: 'Sender''s home port be'
hasAttachment: Carries cargo
hasKeyword: Be
hasLabel: Flies flag
listId: Crew list be
maxSize: Lighter than (bytes)
minSize: Heavier than (bytes)
notKeyword: Be not
notLabel: Flies not flag
subject: Heading carries
text: Anywhere in the yarn
to: To carries
folder:
choose: Pick a hold
default: Default hold
heading: Sieves
join:
and: and
none: 'none o: %list%'
or: or
keyword:
answered: answered
draft: a rough draft
flagged: marked
seen: read
category_missing: '(scuttled hold)'
integration_missing: '(cast-off port)'
label_missing: '(struck flag)'
move_down: 'Send "%name%" astern'
move_up: 'Send "%name%" forrard'
name: Name
name_placeholder: e.g. Dues from Acme
new_title: New sieve
no: Nay
no_actions: No orders yet
no_categories: 'No holds yet — build one first.'
no_integrations: 'No ports moored — make fast to one in Friendly ports first.'
of_the_following: o the followin
op:
all: All
any: Any
none: None
placeholder:
date: Pick a day
number: 0
text: Type a value…
already_running: That sieve be already workin'.
queued: Put to the crew — runnin' over the yarns aboard.
remove_action: Remove order
empty_group: 'This band be empty — it catches naught till ye add a test.'
no_conditions: 'No tests: this rule takes every bottle in its waters.'
remove_condition: Remove test
remove_group: Remove bundle
reorder: Haul to reorder
run: Run over yarns aboard
run_state:
completed: 'Run over %count% yarns'
failed: 'Run ran aground — %count% yarns were done'
queued: 'Awaitin'' the crew…'
running: 'Workin''… %count% so far'
run_confirm: 'Run "%name%" over the yarns already aboard? It can shift and re-flag a great many at once.'
saved: Sieve saved.
spam_rule_name: 'Bilge: %sender%'
stop: Stop after this sieve
stop_help: Later sieves be skipped for any yarn this one catches.
subheading: Sort yarns automatic-like as they come aboard.
summary:
every_message: 'it be any bottle at all'
every_message_in: 'it be any bottle at all in %account%'
full: 'If %conditions% → %actions%'
in_account: '%conditions%, aboard %account%'
into_folder: '%action% into %folder%'
no_actions: 'If %conditions% → (no orders yet)'
then: Then
when: When
yes: Aye
handwriting:
heading: Yer own mark
subheading: Scrawl it once and slap it on any scroll thereafter. 'Tis a picture of yer name, not a seal of office.
saved: Yer stowed mark
save: Stow the mark
clear: Scrub it out
remove: Throw the stowed mark overboard
health:
awaiting:
calendar_resync: >-
Th'' sync be under way. Awaitin'' word back — this card''ll tell
ye what came of it th'' moment it hears.
confirm:
destructive: >-
This heaves th'' waitin'' work overboard fer good. Naught be
tried again, an'' naught comes back up. Carry on?
fact:
granted_at: 'Signed on'
last_full_resync: 'Counted the whole hold again (%count%×)'
never: 'never'
never_delivered: 'naught ever came ashore'
never_run: 'no run in th'' log'
not_recorded: 'not logged'
not_registered: 'not registered'
push_expires: 'Registration runs out'
push_last_delivered: 'Last signal heard'
push_last_renewal: 'Renewal last sailed'
flash:
calendar_resync: >-
%calendar% be signed up fer a sync. She''s runnin'' below decks
now, and th'' card below will say how she fared.
push_repair_failed: >-
Could not sign %account% up fer instant delivery again. She
stays on th'' bell, so yer post keeps arrivin''. Th'' card below
shows what be known.
push_repaired: >-
Instant delivery signed up again fer %account%.
queue_discarded: 'Heaved %count% abandoned tasks overboard.'
queue_retried: 'Put %count% abandoned tasks back in th'' queue.'
heading: 'State o'' yer crew'
healthy:
body: >-
Yer crew be signed on, yer almanacs be sailin' true, an'
naught waits on ye. Should th' post ever stop comin' in,
th' state o' yer crew sails back into yer settin's list, an'
this page says why.
title: 'All hands healthy'
issue:
account_grant_weekly_expiry:
body: >-
Post still comes aboard. But th' last signin' on this
account held %days% days afore Google stopped honourin' it,
an' this one be near the same age — so it likely gives out
within a day or two.
That be what Google does to an app whose consent screen
still sits in Testin': its tokens run dry after about a
week, however politely ye ask. Signin' on again buys another
week an' mends naught. Th' mendin' be in th' Google Cloud
console — set th' consent screen's publishin' status to In
production. Publishin' be not th' same as verifyin'; an
unverified app still sails, it merely shows a warnin' the
first time.
title: "%account% will likely want signin' on again within a day or two"
account_reconnect_weekly:
body: >-
No new post comes aboard for this account, an' all that
hangs on it be becalmed too. What be already stowed be safe.
This signin' held %days% days, which be what Google does to
an app whose consent screen still sits in Testin': its
tokens run dry after about a week. If that be this vessel,
signin' on again gets th' post movin' an' th' same thing
happens next week. What stops it be in th' Google Cloud
console — set th' consent screen's publishin' status to In
production.
title: "%account% wants signin' on again — an' will again in a week"
account_reconnect:
body: >-
No fresh post be comin'' in fer this one, an'' neither be
aught that hangs off it — th'' almanac, th'' sieves that
run on arrival, nor sendin'' from this address. Th'' post
ye already hauled aboard be safe an'' still here. This
happens when a secret word be changed, when th'' two-key
lock be thrown, or when th'' harbourmaster tears up yer
papers.
title: '%account% must sign on again'
account_scope_missing:
body: >-
Some leave plMail asked for when ye signed this account on
were never granted, so parts of it cannot work. Almanacs may
not sync, and changes ye make here — markin' read, stowin',
starrin' — may take on this screen, be refused by the
provider, and be undone at the next reckonin'. Sign on again
and grant all that ye be asked.
title: '%account% never got full leave'
account_sync_failing:
body: >-
Several tries in a row have foundered, so no new post be
arrivin' for this account and all that hangs on it stands
still. The post already aboard be safe. The sign-on be
sound, so 'tis the mail server refusin' or lost at sea —
check she be afloat and that naught changed about the host,
the port or the password.
title: "%account% keeps foulin' its reckonin'"
server_alert:
body: >-
Yer mail server sent this word for ye, repeated here as it
came: “%alert%”. plMail can do naught about it — a full hold,
a word about to lapse, or a port about to move be yours or
yer provider's to settle. It stands here till the server
stops sayin' it.
title: '%account% — word from yer mail server'
calendar_sync_failing:
body: >-
This almanac has stopped takin'' on changes, so she shows
what she knew th'' last time she sailed. Aught added or
shifted elsewhere since then be not aboard, an'' yer own
changes be not gettin'' out.
title: '%calendar% has stopped sailin'''
calendars_blocked:
body: >-
All becalmed for the one reason, which be the card above —
mend that and they all sail again. They show what they knew
when last they worked, and naught upon them be lost.
title: '%count% almanacs be becalmed: %calendars%'
integration_reconnect:
body: >-
Stowin'' cargo at %connection% an'' haulin'' it back will
not work till she be joined again. Yer post be untouched —
this be only th'' rope t'' that port. Naught stowed there
has been disturbed.
title: '%connection% needs joinin'' again'
integration_scope_missing:
body: >-
This connection sails, but some leave plMail asked for were
never granted, so parts of her cannot work. Browsin' may
come back empty while stowin' still works, or t'other way
round. Sign on again and grant all that ye be asked.
title: '%connection% never got full leave'
push_degraded:
body: >-
Th'' registration still stands an'' has not run out, yet
post has come ashore that it never cried out — so th''
signals be lost somewhere 'twixt th'' provider an'' this
here install, not left unasked fer. Fer Gmail that points
at th'' Pub/Sub subscription in Google''s Cloud: see that
it still carries yer topic t'' this address. Yer post keeps
arrivin'' on th'' bell meanwhile, some minutes later than
it ought.
title: 'Instant delivery be registered but not arrivin'' fer %account%'
push_lapsed:
body: >-
Th'' registration ran out an'' were never renewed, so naught
be pushed at all. Renewal sails once a day on its own; if
th'' last run below be days astern, th'' scheduled-task hand
has stopped an'' that be what wants mendin'', not this
account. Yer post keeps arrivin'' on th'' bell, some minutes
later than it ought.
title: 'Instant delivery ran out fer %account%'
queue_work_abandoned:
body: >-
%count% below-decks tasks tried, failed again an'' again,
an'' were set aside so they''d stop hammerin'' away. Most
times this be th'' wake o'' one o'' th'' troubles above
rather than a fault o'' its own — mend that first, then put
these back in th'' queue.
title: '%count% below-decks tasks were given up on'
outcome:
calendar_failed_again: >-
She''s gone and failed again. What she hollered this time be
below — th'' sync ran, it just didn''t hold.
calendar_still_waiting: >-
Th'' sync were started, but nary a word has come back. Try again,
or reload th'' page t'' see where she got to.
calendar_synced: 'Synced! This here calendar be up t'' date again.'
pending:
calendar_resync: 'Startin'' th'' sync…'
push_resubscribe: 'Switchin'' her back on…'
queue_discard: 'Castin'' ''em overboard…'
queue_retry: 'Puttin'' ''em back…'
reconnect: 'Settin'' course fer %provider%…'
reconnect_generic: 'Settin'' course fer th'' sign-in…'
repair:
calendar_resync:
label: 'Try sailin'' now'
promise: >-
Bids this almanac sail again straight away, an'' puts her
back on th'' usual bell. Naught aboard her be thrown out.
integration_grant:
label: 'Grant full leave'
promise: >-
Takes ye back to %connection% to sign on afresh and grant
all that be asked. Naught stowed there be touched.
integration_reconnect:
label: 'Join again'
promise: >-
Sends ye t'' sign on again, then restores th'' rope ye
already had. Yer sieves an'' stowin'' places keep workin''.
push_resubscribe:
label: 'Set instant delivery back on'
promise: >-
Signs this one up fer instant delivery again. Yer post
keeps arrivin'' either way while it be sorted.
queue_discard:
label: 'Heave ''em overboard'
promise: >-
Throws th'' abandoned tasks away without runnin'' them.
There be no haulin'' them back, an'' what they left undone
stays undone.
queue_retry:
label: 'Put ''em back in th'' queue'
promise: >-
Tries th'' abandoned tasks once more. Safe t'' press — any
that fail again just wash back up here.
grant_calendar:
label: 'Grant full leave'
promise: >-
Takes ye back to sign on as %account% and grant all that be
asked. Naught about yer post changes, and no post be hauled
again.
reconnect_early:
label: "Sign on again now"
promise: >-
Signs ye on again afore this one runs dry, so naught stops
in th' meantime. Ye must sign on as %account%. This buys
another week — it does not stop it happenin' again.
reconnect:
label: 'Sign this one on again'
promise: >-
Takes ye t'' sign on again, then sets th'' fresh papers on
this very same crew member. Yer post, yer holds, yer flags,
yer sieves, yer almanacs an'' yer riggin'' all stay exactly
as they be — naught be hauled down twice an'' naught be
thrown out. Ye must sign on as %account%; pick a different
address an'' it be refused, not swapped in.
reconnect:
done: '%account% be signed on again. Post an'' almanacs will catch up over th'' next few minutes.'
wrong_account: >-
That signed ye on as %actual%, but this one be %expected%.
Naught has been changed. Go ashore from %actual% with that
harbourmaster, then try again — swappin'' th'' address would
have mixed a stranger''s post in with yer own.
subheading: >-
Aught that has stopped workin'', what it means fer yer post, an''
th'' smallest thing that mends it.
technical_detail: 'Th'' fine print'
compose_behavior:
folded: 'Stowed'
forward_quote: 'Quoted text when forwardin'''
forward_quote_hint: 'Open a forward with the original stowed behind the pill, or spread on deck.'
send_feedback: "When ye press Send"
send_feedback_hint: "Close the window straight away and count the undo down in a toast, or keep the window open and let its own Send button be the belay."
send_optimistic: "Close it"
send_hold: "Keep it open"
heading: 'Scribblin'''
open: 'On deck'
subheading: 'How yer scribble window behaves, whatever ship be sailin''.'
insights:
extractor:
flight: Passages by air
flight_hint: "Flight numbers an' departures from airline bookin's an' boardin' mail."
github: GitHub
github_hint: "Issues an' pull requests from GitHub's messenger birds."
invoice: "Reckonin's"
invoice_hint: "What ye owe an' by when, read from bills an' duns."
otp: "Secret words"
otp_hint: "One-time words from sign-in post, good only 'til the glass runs out."
parcel: Cargo
parcel_hint: "Trackin' numbers an' where yer cargo be, read from shippin' letters."
subscription: "Standin' orders"
subscription_hint: "Renewals that sail on by themselves, an' trials about to run aground."
ticket: Passage papers
ticket_hint: "Tickets an' bookin's with a date writ on them."
heading: The spyglass
pane: "Banner o'er the mail list"
pane_hint: >-
Hoists yer next cargo, passage or ticket on a banner above the
inbox. Strikin' it lowers the banner an' nothin' else — plMail
still spies those facts in yer post, an' they bide in the
spyglass an' on the mail itself.
seg:
'off': 'Nay'
'on': 'Aye'
subheading: >-
Facts plMail spies in yer post — cargo, flights, tickets, GitHub
doin's — aboard yer own ship by fixed rules, no cloud an' no
guessin', an' droppin' the glass on one stops new cards from it.
integrations:
ask_admin: 'Th'' quartermaster has not opened this port.'
auth:
appPassword: 'app password'
oauth2: 'boardin'' papers'
available_heading: 'Moor at a port'
badge:
ask_admin: 'not opened'
soon: 'soon'
checked: 'sounded %date%'
connect: Moor
disabled: 'Line slackened'
disconnect: 'Cast off'
disconnect_confirm: 'Cast off from %name%? Cargo already hauled aboard stays put.'
disconnected: 'Cast off'
edit: Edit
empty: 'No ports moored yet.'
enabled: 'Line hauled taut'
field:
base_url: 'Port address'
base_url_fixed: 'Sailin'' to %url%, set by th'' quartermaster.'
name: Name
name_help: 'Only ye see it, to tell two moorings apart.'
permissions:
immich: 'asset.read — sight yer pictures and moving pictures|asset.download — haul the original aboard|asset.view — show previews in th'' dialog|asset.upload — stow cargo into Immich|album.read — list and browse yer albums|albumAsset.create — file stowed cargo under an album'
permissions_heading: 'Papers this key needs'
permissions_note: 'A key with all papers works too, and be simpler than tickin'' boxes.'
secret:
dropbox: 'Access token'
googleDrive: 'Access token'
googlePhotos: 'Access token'
immich: 'API key'
nextcloud: 'App password'
oneDrive: 'Access token'
paperless: 'API token'
secret_help:
dropbox: ''
googleDrive: ''
googlePhotos: ''
immich: 'Mint one in Immich under Account Settings → API Keys.'
nextcloud: 'Mint one in Nextcloud under Settings → Security → Devices & sessions. Never hand over yer login password.'
oneDrive: ''
paperless: 'Copy it from Paperless under My Profile → API Auth Token.'
secret_unchanged: 'Leave blank to keep th'' stored papers'
username: Username
heading: 'Friendly ports'
not_implemented: 'plMail cannot hail this port yet.'
oauth_no_code: 'Th'' port sent back no boardin'' code. Try again.'
oauth_state_mismatch: 'That boardin'' could not be vouched for. Start afresh.'
not_oauth: 'This port does not use that manner o'' boardin''.'
pause: Slacken
paused: slackened
resume: 'Haul taut'
save_tests: 'Stowin'' sounds th'' passage at once.'
saved: Moored
saved_with_error: 'Stowed, but th'' soundin'' came back foul'
subheading: 'Haul cargo aboard from other ports, and stow cargo to them.'
test: Sound
test_failed: 'Soundin'' came back foul'
test_ok: 'Passage be clear'
unavailable_heading: 'No passage from here'
calendar_behaviour:
button: Calendar button
button_hint: 'Which views the button up top steps through. A view it leaves out be not scuttled: the drag handle still reaches it.'
heading: Behaviour
option_calendar: Split only
option_none: All three
option_split: Full breadth only
subheading: 'How the calendar button up top moves between views.'
calendars:
account_hint: Where reckonin's found in parrots from %address% be filed.
caldav:
connect: Make fast to a CalDAV port
disconnect: Cut the line to "%name%"
disconnect_confirm: >-
Cut the line to "%name%"? Every almanac kept in step with it be
struck from this deck. Aught on 'em that came off yer parrots an'
not off an almanac be rowed to yer own almanac first.
disconnect_title: Cut the line to this port
field:
address: The port's address
address_help: >-
The CalDAV address yer port shows ye, or just its domain —
plMail hails the domain an' asks where its almanacs be moored
afore it gives up.
name: What it be called
name_help: What to call this line in yer settin's.
reuse: Use the word from one o' me parrot accounts
reuse_account: Which account's word
reuse_account_none: Pick an account…
reuse_help: >-
Off unless ye say so, an' best left off: most ports want a
ship's key of their own, an' a tick here sends a word ye
gave plMail for yer parrots off to the address above.
secret: Ship's key
secret_help: >-
Cut one aboard yer own port instead o' handin' over yer
boardin' word — iCloud an' Fastmail take naught else.
username: Yer name aboard
username_help: The name yer port knows ye by.
intro: >-
Any CalDAV port at all: Nextcloud, Radicale, Baïkal, Fastmail,
iCloud, a crate in a cupboard. Gmail an' Outlook almanacs come
not this way — they sail in with the parrot account.
submit: Make fast an' find the almanacs
title: Make fast to a CalDAV port
count: '%count% almanacs'
default: The one in use
delete: Scuttle the almanac "%name%"
delete_title: Scuttle the almanac
edit: Amend the almanac "%name%"
empty: No almanacs yet.
from: Off %name%
heading: Almanacs
hide: Stow this almanac below
last_synced: 'Last hauled %when%'
make_default: Make "%name%" the almanac new reckonin's land on
make_default_title: Set as the one in use
mirrored: Kept in step
mirrored_hint: Kept in step with %name%.
never_synced: Not hauled yet
read_only: Look, don't touch
read_only_hint: This almanac takes no amendin' from this here deck.
show: Bring this almanac on deck
sources:
empty: >-
No account nor line here carries almanacs yet. Gmail an' Outlook
accounts do; for aught else, make fast to a CalDAV port.
find: Find the almanacs on %name%
heading: Where almanacs come from
why_admin: >-
Yer quartermaster may not have given the papers plMail signs in
with any almanac rights. Parrots sail without 'em; almanacs do
not.
why_consent: >-
Google's askin' screen lets ye untick almanac access while
lettin' the parrots through. Sign the account on again an' leave
that box ticked.
why_empty: No almanacs turnin' up?
why_none: Belike there be no almanacs on that account at all.
subheading: >-
Name, colours an' bell, which almanacs the views show, an' where a
new reckonin' lands.
subscribe:
default_locked: >-
New reckonin's land here, so this one stays. Make another
almanac the one in use first.
empty: There be no almanacs on %name%.
intro: >-
Tick the almanacs on %name% for plMail to keep in step with.
Reckonin's turn up within the minute.
mirrored: Already kept in step
primary: The main one
save: Stow the choosin'
title: Find me almanacs
unsubscribe_note: >-
Untickin' an almanac scuttles the copy held here. Aught on it
that came off yer parrots an' not off the almanac be rowed to
yer own almanac first.
sync_now: Haul "%name%" now
sync_now_title: Haul now
labels:
count: '%count% flags'
delete: Strike the flag "%name%"
edit: Mend the flag "%name%"
empty: No flags yet — hoist one, or they turn up after the first haul.
heading: Flags
hide: Lower this flag
show: Fly this flag
subheading: Hoist, rename and order yer flags, and choose which fly in the sidebar.
system: Ship's own
profile:
heading: Yer colours
save: Stow yer colours
subheading: The name an' likeness that fly on the parrots ye send.
language:
heading: Tongue
subheading: The tongue plMail speaks to ye in. Yer bottles be left as they were writ.
disposal:
delete_now: "Davy Jones buttons"
delete_now_hint: "Shows 'Send to Davy Jones for good' on a bottle in Spam an' the bin, an' above a ticked pile there. It strikes the mail from the mail server too an' can't be fished back, so it be off till ye turn it on."
heading: Disposal
'off': Off
'on': On
subheading: "How bottles be sunk for good."
images:
always_show: "Always hoist the pictures"
always_show_hint: "Hauls in the pictures in every bottle without askin' first. Senders can then tell that an' when ye opened their mail, but not where ye be anchored: pictures still come aboard through plMail. Bottles in Spam stay blocked either way. Off till ye turn it on."
heading: Pictures
'off': Off
'on': On
subheading: "Whether pictures a bottle hauls in from elsewhere wait to be asked for."
nav:
accounts: Th' crew
ai: "Ship's Oracle"
aliases: Aliases
app_passwords: Spare keys
appearance: Look o' the ship
calendar_behaviour: Behaviour
calendars: Almanacs
categories: "Holds"
disposal: Disposal
filters: Sieves
general: General
group:
access: "Boardin' rights"
calendar: "Th' almanac"
features: 'Riggin'''
mail: "Th' post"
personal: Yerself
health: "State o' yer crew"
images: Pictures
insights: The spyglass
integrations: 'Friendly ports'
labels: Flags
notifications: Word from the crow's nest
profile: Yer colours
read_receipts: Read-marks
reading_pane: Spyglass deck
security: The ship's lock
sharing: Sharing
shortcuts: Keyboard shortcuts
signature: Yer marks
templates: 'Form letters'
notifications:
devices:
empty: "No device be signed on yet. Turnin' notifications on above signs on this browser; a phone app signs itself on."
heading: "Signed-on devices"
never_delivered: "Naught sent yet"
outcome:
accepted: "Delivered"
failed: "Sunk"
skipped: "Not sent"
subscription-destroyed: "Gone overboard"
remove: "Strike off"
remove_confirm: "Strike off %device%? Notifications stop bein' sent to it. Naught be uninstalled or switched off on the device itself, and if its app still wants notifications it'll sign on again the next time it runs."
removed: "Device struck off — naught more be sent to it. It signs itself on again if its app still wants notifications."
transport:
fcm: "Firebase"
webpush: "Web Push"
unverified: "Not vouched for"
verified: "Vouched for"
heading: Word from the crow's nest
ios_hint: >-
On iPhone and iPad, the lookout only calls once plMail be added to
the Home Screen: open her in Safari, tap Share, then "Add to Home
Screen", and allow the callin' from there.
state_denied: >-
Barred in yer browser settin's. Allow the lookout to call for this
site, then try again.
state_error: Somethin' went sideways. Try again.
state_off: 'Off — this here device gets no word.'
state_on: On — this here device gets word o' new mail.
state_pending: Waitin' on this device to answer the hail…
state_unconfigured: No cannon rigged on this ship.
state_unknown: Takin' a look…
state_unsupported: >-
This browser can't hear the lookout. On iPhone and iPad, add plMail
to the Home Screen first.
state_working: Workin' the riggin'…
subheading: >-
Get word o' new mail on this here device, even when plMail be
battened down.
this_device: This here device
toggle: Send up the lookout
toggle_off: Call down the lookout
unconfigured: >-
No cannon rigged on this ship — no VAPID keys be set. Run
"bin/console app:push:generate-vapid-keys".
password:
field:
current: Current secret word
new: New secret word
new_help: 'At least %count% characters. Naught else be asked of it — a long thing ye can recall beats a short thing ye cannot.'
repeat: Say th' new word again
flash:
changed: 'Secret word changed. Every deck ye marked "keep me aboard" on will ask for it anew.'
refused: 'Naught were changed — read th'' note under th'' field.'
heading: Secret word
remember_me_note: 'Changing yer secret word puts every remembered deck ashore but this one. That be why it be worth doing when a spyglass goes missing.'
subheading: 'What ye board with. Only ye can change it — not even a quartermaster may set it for ye.'
submit: Change th' secret word
reading_pane:
heading: Spyglass deck
hint: 'Stowed shows the list an'' the letter one at a time; Starboard lays the letter beside the list when the ship has room for both — drag the rail between ''em to say how much deck each gets.'
label: 'Lay out the open letter'
off: Stowed
right: Starboard
subheading: 'Where a parley opens: in place o'' the list, or beside it.'
security:
codes:
copy: Copy the tokens
copy_now: Stow yer spare tokens now
copy_now_hint: >-
This be the only time ye lay eyes on 'em. Keep 'em where ye can
reach without yer spyglass — a keyring, or paper in a locker. Each
one works but once.
heading: Spare tokens
hint: >-
Spare tokens get ye back aboard when yer spyglass goes overboard. A
fresh set replaces the old, so what ye wrote down before be worth
naught.
regenerate: Strike new tokens
remaining: '%count% unspent'
confirm_with_code: Countersign from yer spyglass
devices:
empty: No ship be remembered. Ye'll be hailed for a countersign every time.
expires: 'Runs dry %date%'
heading: Remembered ships
hint: >-
Ships that skip the hail for 30 days. Strikin' one takes hold at
once — she'll be hailed on her very next page.
last_used: 'Last aboard %date% from %ip%'
revoke: Strike
revoke_all: Strike every remembered ship
revoke_all_confirm: >-
Every remembered ship gets hailed next time, this one included.
Carry on?
revoke_confirm: 'Stop trustin'' %name%? She''ll be hailed next time.'
this_device: this here ship
disable:
confirm: Yer berth be guarded by yer secret word alone. Carry on?
heading: Strike the second lock
hint: This scuttles yer spare tokens and stops trustin' every remembered ship.
submit: Strike it
enable: Rig the second lock
enrol:
cancel: Belay that
heading: Rig the second lock
manual_copy: Copy the riggin' key
manual_toggle: Can't read the mark? Take the key instead
qr_alt: The mark for riggin' yer spyglass
step_app: >-
Ship a spyglass if ye have none — Google Authenticator, Aegis,
1Password an' Bitwarden all sail fine.
step_confirm: Give the six figures yer spyglass be showin' now.
step_scan: Read this mark with the spyglass.
submit: Aye, that's it
heading: The second lock
pitch: >-
Yer berth be the prize worth guardin' most: whoever reaches it can
call for a new secret word on everythin' else ye own, for yer parrot
cage be where them letters land. A second lock means a pinched secret
word be not enough on its own.
status:
off: The second lock be struck
on: The second lock be set
on_since: 'Set %date%'
subheading: How ye prove ye be ye when comin' aboard.
sharing:
heading: Sharing
subheading: >-
Berths that show part o yer log to someone wi no account, an notices
that let em board an hour o it.
shortcuts:
heading: "Keyboard shortcuts"
hint: "c to scribble, e to stow, j an' k to walk the list. They only act while ye be not typin' into somethin', an' post stowed this way can be hauled back like any other."
label: "Shortcuts"
'off': "Nay"
'on': "Aye"
show: "Show the shortcuts"
subheading: "Single keys fer the things ye do all day."
signature:
for_alias: 'Yer mark fer %alias%'
heading: Yer marks
hint: 'Set at the foot o'' every new scroll, above the quoted words.'
label: 'Yer mark'
overriding: 'That name carries a mark o'' its own now — carve it below.'
per_address:
count: 'Names carryin'' a mark o'' their own: %number%'
disclosure: 'Carry a different mark on some o'' yer names'
inherits: 'Carries the ship''s own mark.'
override: 'Carry a different one'
override_for: 'Give %alias% a mark o'' its own'
revert: 'Use the ship''s own mark'
revert_for: 'Back to the ship''s own mark fer %alias%'
signs_with_nothing: 'Bare — this name sails unmarked.'
placeholder: 'No mark yet'
reverted: 'Back to the ship''s own mark.'
save: 'Set down yer mark'
saved: 'Set down.'
source:
clean: 'Nothing was thrown overboard.'
embedded: 'Pictures stowed in the signature: %count%.'
failed: 'The signature could not be drawn. Yer HTML be untouched. Try again.'
html: 'HTML'
label: '%label% as HTML'
placeholder: 'Paste or scrawl the HTML of yer signature…'
remote: 'Pictures that could not be stowed and stay linked: %count%. They do not show here, and some recipients must allow them first.'
removed: 'Thrown overboard, for letter readers would not show it or it be not safe to send: %items%.'
rendered: 'Drawn'
toggle: 'Signature view'
subheading: 'What be carved at the foot o'' the scrolls ye write.'
categories:
add: Add
built_in: "Ship's own"
built_in_off: "Ship's own · struck — its loot be on the Main deck"
created: 'Built the hold "%name%".'
delete: Scuttle the hold
delete_confirm: 'Scuttle "%name%"? Post stowed there goes back to the hold it would be in otherwise. No post goes over the side.'
deleted: 'Scuttled "%name%".'
error:
empty: 'A hold needs a name.'
reserved: 'That name belongs to one o'' the holds the ship came with.'
taken: 'Ye already have a hold by that name.'
too_long: 'That name be too long (forty letters at most).'
filters_link: 'Settings → Sieves.'
heading: "Tabs"
hint: "A tab o' yer own shows in the inbox while it holds letters. Letters go into it through a filter whose order be \"File in category\" — rig one up under"
move_down: "Haul %tab% down"
move_up: "Haul %tab% up"
name_label: Name
off: "Nay"
on: "Aye"
placeholder: 'e.g. Parcels'
primary_fixed: "Always first an' always flyin' — loot from a tab ye strike lands here."
rename: Rename
renamed: 'Renamed to "%name%".'
reorder: "Drag t' reorder"
subheading: "Raise or strike the ship's own tabs, add yer own, an' haul 'em into whatever order ye fancy."
sorting:
account_tabs:
hint: "Shows the tabs on each ship's own hold too, when ye click the ship in the sidebar. Off shows that ship's whole hold as one pile."
label: "Tabs on every ship"
'off': Off
'on': On
again:
button: "Ask again"
hint: "Th' oracle answers once per message an' keeps th' answer. Ask again when th' oracle, its orders or a plMail release have changed — it costs an askin' per message, so it be bounded to yer newest post."
label: "Stow recent post again"
applies_to_new: "Changin' either o' these re-stows the post ye already have, below decks — a big hold takes a few minutes, so give the tabs a moment. Yarns ye stowed by hand yerself be left be."
heading: "Sortin'"
override:
hint: "A Gmail account arrives already stowed by Google. This decides whether plMail leaves it be or answers for itself."
label: "On Gmail accounts"
plmail: "Stow it meself"
provider: "Keep Google's"
source:
assistant: "Th' oracle"
assistant_help: "Th' oracle reads each message an' decides what it be for. Better at post that don't announce itself, an' now an' then confidently wrong. Owt it has not reached falls back to th' rules."
label: "Stowed by"
rules: Rules
rules_help: "Headers alone — a list header, an unsubscribe link, a known sender. Predictable an' literal, an' it never asks th' oracle owt."
unavailable: "Stowin' by oracle needs th' sortin' switched on for this vessel, an' for ye."
subheading: "Whether yer inbox has tabs, which one a message lands in, an' who decides."
tabs:
assistant_warning: "The parrot still be readin' every new message to pick its tab — tabs ye've struck from the deck. Mail it has not squawked about yet may be held a few heartbeats while it thinks. Choose Rules below to belay that."
hint: "Primary, Social, Promotions an' the rest. Off shows the inbox as one list. Mail still be stowed in the background, so the tabs be right the moment ye raise 'em again."
label: Inbox tabs
'off': One list
'on': Tabs
timezone:
heading: Ship's bells
subheading: The clock yer times be told by. Naught be rewrit — the same moment, read off yer own glass.
label: Ship's bells
follow_default: 'Th'' harbour''s own (%timezone%)'
current_time: 'It be %time% in these waters.'
title: Riggin'
templates:
add: 'New form letter'
add_folder: 'New chest'
body: 'Message'
body_placeholder: 'Pen the message. Use “Insert blank” for the parts that change.'
copy_of: 'Copy o'' %name%'
date:
after: 'after today'
before: 'afore today'
direction: 'Afore or after today'
example: 'Penned today, it reads:'
format: 'Format'
heading: 'Date'
offset: 'Offset'
pattern: 'Pattern'
pattern_hint: 'A pattern uses d for the day, M for the month, y for the year and E for the weekday: dd.MM.yyyy, EEEE d MMMM.'
unit: 'Unit'
delete: 'Scuttle'
delete_confirm: 'Scuttle the form letter “%name%”?'
deleted: 'Form letter scuttled.'
duplicate: 'Copy'
duplicated: 'Form letter copied.'
editor_empty: 'Pick a form letter to mend it, or pen a new one.'
empty: 'No form letters yet. One stowed under a ship be offered first when ye write from it.'
error:
folder_name_required: 'Give the chest a name.'
name_required: 'Give the form letter a name.'
folder: 'Chest'
folder_delete_confirm: 'Scuttle the chest “%folder%”? Its form letters move up a deck and be kept.'
folder_deleted: 'Chest scuttled. Its form letters were kept.'
folder_heading_new: 'New chest'
folder_heading_rename: 'Rename chest'
folder_in: 'Inside'
folder_name: 'Name'
folder_saved: 'Chest stowed.'
format:
custom: 'Yer own pattern'
full: 'Full'
iso: 'ISO'
long: 'Long'
medium: 'Middling'
short: 'Short'
weekday: 'Weekday'
group:
date: 'Date'
recipient: 'Recipient'
sender: 'Sender'
heading: 'Form letters'
insert_variable: 'Insert blank'
name: 'Name'
name_placeholder: 'Reminder o'' debts'
preview: 'Spyglass'
preview_heading: 'As it would be inserted today, for a sample matey'
preview_no_subject: 'No subject'
preview_unavailable: 'Add a ship to preview a form letter.'
# "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: 'Anne Bonny <anne@example.org>'
saved: 'Form letter stowed.'
signature:
automatic: 'Automatic — the address ye be writing from'
heading: 'Mark'
hint: 'Automatic follows the From address and replaces the mark already in the message. A named mark stays, whichever address ye write from.'
subheading: 'Messages ye pen once and insert while composing.'
subject: 'Subject'
subject_hint: 'optional, fills an empty subject line'
subject_placeholder: 'No subject'
top_level: 'No chest'
tree:
add_folder_here: 'New chest in %folder%'
add_here: 'New form letter in %folder%'
delete_folder: 'Scuttle the chest %folder%'
rename: 'Rename the chest %folder%'
unit:
d: 'days'
m: 'months'
w: 'weeks'
shortcuts:
groups:
actions: "On post"
actions_hint: "What be chosen; else the open yarn; else the marked row."
anywhere: "Anywhere"
conversation: "In a yarn"
list: "In a list"
keys:
archive: "Stow in the hold"
back: "Back to the list"
compose: "Scribble a new message"
delete: "Feed to the fishes"
forward: "Pass it on"
go_archive: "Sail to the hold"
go_drafts: "Sail to Drafts"
go_inbox: "Sail to the Inbox"
go_sent: "Sail to Sent"
go_starred: "Sail to Marked"
help: "Show this list"
label: "Label as"
mark_read: "Mark as read"
mark_unread: "Mark as unread"
move: "Move to"
next: "Down one yarn"
next_conversation: "Open the next yarn"
open: "Open the marked yarn"
previous: "Up one yarn"
previous_conversation: "Open the yarn afore"
reply: "Answer"
reply_all: "Answer all hands"
search: "Search"
select: "Choose the marked yarn"
select_all: "Choose all on the page"
select_none: "Belay the choosin'"
select_read: "Choose read"
select_starred: "Choose marked"
select_unread: "Choose unread"
snooze: "Snooze"
spam: "Mark as bilge"
star: "Mark or unmark"
undo: "Undo the last deed"
or: "or"
switched_off: "Shortcuts be struck fer ye. Raise 'em under Settings → General."
then: "then"
title: "Keyboard shortcuts"
sidebar:
accounts:
add: Sign on a crew member
heading: Th' crew
none: No crew yet
colour: 'Colours flown by %account%'
colour_disabled: 'Colours flown by %account%, laid up in port'
open: 'Board %account%'
toggle: 'Open or close the lockers in %account%'
badge:
total: '%count% all told'
unread: '%count% unread'
compose: Scribble
labels:
add: Hoist a new flag
heading: Flags
none: No flags yet
new_mail_here: 'Fresh bottles washed up in %where%'
new_mail_here_count: '%count% fresh bottles washed up in %where%'
nav:
all_mail: Every bottle aboard
archive: The hold
calendar: Almanac
drafts: Scrolls in the works
inbox: Bottles washed ashore
more: More
sent: Cast off
snoozed: Kept below deck
spam: Bilge
starred: Marked with an X
trash: Davy Jones' locker
unread: Bottles yet uncorked
toggle: Raise or lower th' side riggin'
snooze:
later_today: Later this watch
next_week: Next se'nnight
pick_date: Name th' day and th' hour
this_weekend: Come th' weekend
tomorrow: On th' morrow
unsnooze: Haul it back up
snoozed:
empty: Naught kept below deck.
starred:
empty: Naught marked with an X.
heading: Marked with an X
tabs:
forums: Taverns
new_count: '%count% fresh'
primary: Main deck
promotions: Peddlers
social: Shipmates
updates: Dispatches
thread:
no_subject: (no subject)
summary:
button: 'Boil this yarn down'
disclaimer: "Writ by th' oracle from th' messages below. Read 'em if it matters."
error:
connection_lost: "Th' line to plMail parted while th' short of it were bein' writ. Th' oracle's berth be blameless — summat betwixt this glass an' th' server cut it."
disabled: "Th' yarn-boilin' be switched off."
generic: "Th' short of it could nay be writ."
model_missing: "That berth holds no writin' oracle. Somebody with the captain's keys must haul it aboard first."
no_answer: "Th' oracle gave nowt back."
refused: "Th' oracle's berth turned th' askin' away. If that were th' whole yarn, it may be more than she can hold at once."
timeout: "Th' oracle's berth took o'er long t' answer."
unreachable: "Th' oracle's berth could nay be raised."
generated: 'Boiled down %when%'
heading: "Th' short of it"
regenerate: 'Boil her again'
partial: "This yarn were too long t' send whole, so th' short of it were writ from but a part."
send_full: "Boil down th' whole yarn instead — slower, an' it asks more o' th' oracle's berth."
stale: "Th' yarn has shifted since this were writ."
state:
sent: "Sent t' th' oracle…"
stopped: 'Belayed. Nowt were kept.'
waiting: "Th' first askin' after a spell takes near a minute while th' oracle wakes an' reads th' yarn."
queued: "In th' queue. Th' whole yarn be boiled down below decks — ye may close this an' come back; it be waitin'."
reading: "Still readin' th' yarn — %elapsed% so far. Then she be writ out word by word."
waiting_full: "Readin' th' whole yarn. On a long one that be several minutes, an' nowt shows till she has read it through."
working: "Boilin' her down…"
stop: 'Belay'
too_short: "One message. Nowt t' boil down."
thread_row:
account: 'Hauled aboard %account%'
actions:
archive: Stow in the hold
cancel_schedule: Belay the castin' off
delete: Feed to the fishes
mark_read: Mark as read
mark_unread: Mark as unread
snooze: Let it drift
answer: "A fresh reply to yer letter"
answer_badge: "Reply"
has_attachment: Carries cargo
me: me
meaning: "Found by meanin', not by the words ye typed"
meaning_badge: "meanin'"
message_count: "({ count })"
new: Never yet laid eyes on
new_badge: Fresh
no_recipient: (bound for nowhere)
no_subject: (no subject)
scheduled: 'Due %when%'
select: Pick it
star: Mark this bottle with an X
to: 'Bound for: %recipients%'
unread: Unread by any soul
unstar: Rub out the X
toast:
archived: Stowed in the hold.
categorised: 'Stowed under %category%'
dismiss: Away with ye
labelled: 'Flyin'' the %label% flag'
moved: 'Hauled off to %folder%'
schedule_cancelled: The castin' off be belayed.
send_too_late: Too late, matey — that message has already sailed.
send_failed: 'That message could not be hoisted: %subject%'
sent: Message away!
spam_filtered: 'Pumped into th'' bilge. Whatever %sender% sends next goes th'' same way.'
undo: Belay that
undo_expired: Too late to belay that, matey.
undone: Belayed.
unlabelled: 'Struck the %label% flag'
toolbar:
view_select:
offer: "All %count% conversations in this view can be chosen."
offer_action: "Choose all %count%"
selected: "All %count% conversations in this view be chosen."
clear: "Choose only this page"
actions:
archive: Stow in the hold
delete: Feed to the fishes
label: Fly a flag
mark_read: Mark as read
mark_unread: Mark as unread
more: More besides
move_to: Haul off to
purge: "Send to Davy Jones for good"
snooze: Let it drift
spam: 'Call it bilge'
star: Mark
purge_confirm:
one: "Sink this conversation for good? It can't be fished back up, and it be struck from the mail server too."
many: "Sink these %count% conversations for good? They can't be fished back up, and they be struck from the mail server too."
filter:
show_all: Show every last one
unread_only: Unread only
pagination:
next: Saltier
of: of
prev: Fresher
select:
all: All hands
none: None
read: Read
starred: Marked
unread: Unread
whole_view: 'All %count% in this view, every last one'
select_all: Pick every yarn
select_menu: More ways to pick
spam:
empty: No bilge aboard.
heading: Bilge
spam_menu:
confirm_body: 'Letters from every hand at %domain% will go to th'' bilge, even them as never wrote ye.'
confirm_cancel: 'Belay that'
confirm_shared: 'This be a port half th'' seven seas sail from.'
confirm_yes: 'Bilge th'' whole port'
domain: 'Always send this whole port to th'' bilge'
filter_heading: 'An'' sort what comes after'
heading: 'Call it bilge'
more: 'More choices'
move: 'Pump into th'' bilge'
move_hint: 'Only this parley.'
sender: 'Always send this hand to th'' bilge'
trash:
empty: Naught fed to the fishes.
heading: Davy Jones' locker
two_factor:
cancel: Come aboard as another soul
flash:
code_rejected: That countersign be wrong. Check yer spyglass an' try again.
codes_regenerated: New spare tokens struck. The old ones be worth naught.
device_revoked: That ship be hailed next time.
devices_revoked: No ship be remembered any more.
disabled: The second lock be struck.
enabled: The second lock be set.
form:
code: Countersign
code_hint: >-
The six figures from yer spyglass, or one o' yer spare tokens.
submit: Carry on
submitting: "Checkin' th' countersign…"
trust_device: Don't hail this ship again
trust_device_hint: For 30 days. Ye can strike it any time from Riggin' → The ship's lock.
page_title: The second lock
recovery_hint: >-
Spyglass overboard? Use one o' the spare tokens ye stowed when ye rigged
this.
tagline: One more turn o' the capstan
unread:
empty: Naught left uncorked.
heading: Every bottle yet uncorked
# 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: 'Date'
recipient_email: 'Recipient''s address'
recipient_first_name: 'First name'
recipient_name: 'Full name'
sender_email: 'Yer address'
sender_name: 'Yer name'
signature: 'Mark'