docs(translation): document on-device message translation
Add the feature to README (Messaging) and LOTUS_FEATURES (new On-Device Message Translation section under Messaging Enhancements), matching the existing style. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
+36
-1
@@ -1,7 +1,7 @@
|
|||||||
# Lotus Chat — Feature Reference
|
# Lotus Chat — Feature Reference
|
||||||
|
|
||||||
Everything added to Lotus Chat beyond upstream Cinny v4.12.1.
|
Everything added to Lotus Chat beyond upstream Cinny v4.12.1.
|
||||||
Last updated: June 2026.
|
Last updated: July 2026.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -698,6 +698,41 @@ Context menu → **Forward** allows forwarding a message to any room the user is
|
|||||||
|
|
||||||
Context menu → **Copy Text** copies a message's plain-text body to the clipboard (reply fallback stripped via `trimReplyFromBody`), complementing the existing **Copy Link** (permalink) action. It renders only when the event has a usable text body, so media without a caption doesn't show an empty action.
|
Context menu → **Copy Text** copies a message's plain-text body to the clipboard (reply fallback stripped via `trimReplyFromBody`), complementing the existing **Copy Link** (permalink) action. It renders only when the event has a usable text body, so media without a caption doesn't show an empty action.
|
||||||
|
|
||||||
|
### On-Device Message Translation
|
||||||
|
|
||||||
|
Translate chat messages written in other languages into a language you choose,
|
||||||
|
inline in the timeline — running **entirely on your device** so message text
|
||||||
|
never leaves it.
|
||||||
|
|
||||||
|
- **Per-message translate** — a foreign-language message shows a **Translate**
|
||||||
|
action in its message menu; once translated, the message displays an inline
|
||||||
|
**"Translated from <language> · Show original"** toggle that swaps between
|
||||||
|
the translation and the original text.
|
||||||
|
- **Fully on-device / E2EE-preserving** — translation and language detection run
|
||||||
|
through the browser's built-in **Translator** and **Language Detector** APIs
|
||||||
|
(the Chromium on-device AI translation models). Message text is **never** sent
|
||||||
|
to any cloud translation service — no Google / DeepL / Microsoft, not even a
|
||||||
|
self-hosted server — and there is **no network fallback**, so end-to-end
|
||||||
|
encryption is preserved. That privacy guarantee is the whole point of the
|
||||||
|
feature.
|
||||||
|
- **Automatic detection** — the language of each message is detected
|
||||||
|
automatically; messages already in your target language are skipped (no
|
||||||
|
Translate action is shown).
|
||||||
|
- **Settings (Settings → General → Messages):**
|
||||||
|
- **Translate Messages Into** — your target language (default **English**;
|
||||||
|
~26 common languages).
|
||||||
|
- **Auto-translate Incoming Messages** (default **off**) — automatically
|
||||||
|
translates foreign-language messages whose on-device language model is
|
||||||
|
already downloaded.
|
||||||
|
- **One-time model download** — the first time you translate from a given
|
||||||
|
language, a small on-device model (a few MB) downloads once. Because the
|
||||||
|
browser requires a user gesture for that first download, the initial
|
||||||
|
translation needs a click.
|
||||||
|
- **Availability** — Chromium desktop browsers (**Chrome / Edge 138+**) and the
|
||||||
|
**Lotus desktop app** (WebView2 / Chromium). Not available in Firefox, Safari,
|
||||||
|
or mobile browsers; where the APIs are unavailable the feature hides itself and
|
||||||
|
the settings tile shows a note.
|
||||||
|
|
||||||
### Draft Persistence
|
### Draft Persistence
|
||||||
|
|
||||||
- Composer drafts are stored in `localStorage` keyed by `roomId`
|
- Composer drafts are stored in `localStorage` keyed by `roomId`
|
||||||
|
|||||||
@@ -36,6 +36,7 @@ The Lotus Chat logo (`public/res/Lotus.png`) is a derivative work based on the o
|
|||||||
- Control voice message playback speed: 0.75× / 1× / 1.5× / 2×
|
- Control voice message playback speed: 0.75× / 1× / 1.5× / 2×
|
||||||
- Search messages with a date range filter
|
- Search messages with a date range filter
|
||||||
- Optional persistent search index for encrypted rooms (off by default — stores decrypted text on your device; clearable, wiped on logout)
|
- Optional persistent search index for encrypted rooms (off by default — stores decrypted text on your device; clearable, wiped on logout)
|
||||||
|
- On-device message translation — foreign-language messages show a "Translate" action, then an inline "Translated from <language> · Show original" toggle. Runs entirely on your device via the browser's built-in translation models, so message text never leaves your device or touches a cloud service (no Google/DeepL/Microsoft) — preserving end-to-end encryption. Pick your target language and optionally auto-translate incoming messages at Settings → General → Messages. Chromium desktop (Chrome/Edge 138+) and the Lotus desktop app only; hidden where unavailable (Firefox, Safari, mobile)
|
||||||
- Write math with LaTeX: `$inline$` and `$$block$$` render via KaTeX (spec `data-mx-maths` supported)
|
- Write math with LaTeX: `$inline$` and `$$block$$` render via KaTeX (spec `data-mx-maths` supported)
|
||||||
- Room topics support rich formatting (bold, links, italics)
|
- Room topics support rich formatting (bold, links, italics)
|
||||||
- Deleted messages show a placeholder instead of disappearing
|
- Deleted messages show a placeholder instead of disappearing
|
||||||
|
|||||||
Reference in New Issue
Block a user