From 7c28ba58b27965fbf08935c2e96a7c550bead2b3 Mon Sep 17 00:00:00 2001 From: Jared Vititoe Date: Sat, 18 Jul 2026 16:18:34 -0400 Subject: [PATCH] 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 --- LOTUS_FEATURES.md | 37 ++++++++++++++++++++++++++++++++++++- README.md | 1 + 2 files changed, 37 insertions(+), 1 deletion(-) diff --git a/LOTUS_FEATURES.md b/LOTUS_FEATURES.md index a59109d55..a1f011d92 100644 --- a/LOTUS_FEATURES.md +++ b/LOTUS_FEATURES.md @@ -1,7 +1,7 @@ # Lotus Chat — Feature Reference 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. +### 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 - Composer drafts are stored in `localStorage` keyed by `roomId` diff --git a/README.md b/README.md index 93d8483e0..36d983756 100644 --- a/README.md +++ b/README.md @@ -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× - 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) +- On-device message translation — foreign-language messages show a "Translate" action, then an inline "Translated from · 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) - Room topics support rich formatting (bold, links, italics) - Deleted messages show a placeholder instead of disappearing