Translation on Firefox Translations models; new logo

- Email translation moves from LibreTranslate to our own translator
  service (translator/): Mozilla's Firefox Translations models on the
  Bergamot engine, fastText language detection (176 languages). Polish,
  English, German, French, Spanish and Italian on first start (~350 MB
  instead of ~10 GB); Admin panel > Email translation installs and
  removes languages. Built and pushed as the `translator` image.
- Every message is translated paragraph by paragraph as plain text;
  names travel with their sentence and are kept only where the model
  changed them; a sentence start the model copied ("Enclosed") is tried
  again in lower case; list markers are not sent
- The Translate button shows only for installed languages
- New logo: favicon, app/maskable/iPhone icons, notification badge,
  email logo and calendar copy regenerated; BIMI logo rebuilt in SVG
  Tiny PS with its gradients; masks render in browsers
- Launch screen background is the app's dark grey

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-18 22:04:04 +02:00
co-authored by Claude Opus 5.5
parent 8a1b9979e9
commit 972e10876b
38 changed files with 1627 additions and 223 deletions
+17
View File
@@ -701,6 +701,23 @@ priority, so even the first checks after a restart are served from RAM. On
mechanical disks that warm-up takes several minutes; an NVMe cache in front of
the volume makes it — and any later cache misses — fast.
### Email translation (translator)
`translator` translates email in the reading pane, entirely on this server:
Mozilla's Firefox Translations models (the ones Firefox uses for page
translation) and fastText for telling which language a message is in.
- The first start downloads the languages in `TRANSLATOR_LANGUAGES` (default
`pl,de,fr,es,it`; English is always there) into `$DATA_ROOT/translator`,
about 35 MB per language and direction (~350 MB for the default set).
- More languages are installed, and unused ones removed, from the **admin
panel → Translation**. That list is kept in `$DATA_ROOT/translator`, so a
restart does not undo it.
- Models translate to and from English; other pairs go through English.
- Capped at 2 GB of RAM and 2 CPUs (`TRANSLATOR_MEM_LIMIT`, `TRANSLATOR_CPUS`).
- `./deploy/webmail.sh status` shows whether it answers and which languages
are installed. `TRANSLATOR_URL=` (empty) in `.env` turns translation off.
Two NAS-specific realities worth knowing:
- **Disk hibernation won't happen.** Active accounts hold IMAP IDLE connections