refactor: move author-facing mail copy into a Fluent catalogue
Ports carrier's src/i18n.rs and its locales/en-US/main.ftl layout, same fluent-bundle and unic-langid versions, so the two catalogues stay portable between them. Only mail the daemon sends an author moves; operator CLI output stays inline, since the operator runs the binary and reads English. The error-reply reasons from dispatch and ApplyError are deliberately left behind: dispatch is pure by contract, so those become reason identifiers resolved at the mail-building edge in a separate change rather than having the pure layer reach for a bundle. Adds a test carrier lacks. FluentResource::try_new and add_resource both panic on a malformed or duplicate-id catalogue, and nothing touches the bundle until the daemon first mails someone, so without it a bad catalogue surfaces inside poll() on a live instance. Sentences are verbatim; the bodies are now hard-wrapped where they were single long lines, which reads better in a plain-text client.
This commit is contained in:
parent
f2d2d75063
commit
3279fd3a2d
6 changed files with 321 additions and 17 deletions
37
daemon/locales/en-US/main.ftl
Normal file
37
daemon/locales/en-US/main.ftl
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
## Loaded once by `src/i18n.rs`; every string the daemon mails to an author
|
||||
## lives here, grouped by the mail it belongs to. Operator-facing CLI output is
|
||||
## deliberately not here — see the module header.
|
||||
##
|
||||
## Keep the `-32` style placeables out: these bodies are read in plain-text
|
||||
## mail clients and on phones, so they stay short lines and no markup.
|
||||
|
||||
## Error replies — a mail the daemon could not apply
|
||||
|
||||
reply-subject = twtxt: { $reason }
|
||||
reply-body =
|
||||
Your mail could not be applied.
|
||||
|
||||
Reason: { $reason }
|
||||
|
||||
Quoted mail:
|
||||
{ $quoted }
|
||||
|
||||
## Retention — the one-time warning as a feed approaches its size cap
|
||||
|
||||
cap-warning-subject = twtxt: feed at 90% of its size cap
|
||||
cap-warning-body =
|
||||
Your feed has reached 90% of the { $cap }-byte cap.
|
||||
|
||||
In hard-limit mode (the default) a full feed rejects new records; delete
|
||||
some with Twt-Delete, or choose FIFO pruning with Twt-Prune: fifo, which
|
||||
drops the oldest records to make room.
|
||||
|
||||
## Admission — the mail that hands over the accept token
|
||||
|
||||
welcome-subject = twtxt: your feed is ready
|
||||
welcome-body =
|
||||
Your smolboid feed is live: { $url }
|
||||
|
||||
Post by sending mail to this address with the twt as the body. Manage it
|
||||
with Twt-Nick, Twt-Delete, Twt-Repost and Twt-Prune frontmatter fields
|
||||
(PLAN.md).
|
||||
Loading…
Add table
Add a link
Reference in a new issue