---
title: Team Chat message translation (inline AI-powered translation)
---

# Team Chat message translation (inline AI-powered translation)

## What it is

**Status:** In-development (gated via `team-chat-message-translation` unreleased feature). Not yet visible to users.

Translate any Team Chat message inline, on demand, using the existing LLM infrastructure. A "Translate" action on the message hover toolbar (desktop) and long-press action sheet (mobile) sends the message text to the LLM layer and displays the translation below the original message.

## Where to find it

There is nowhere to find it yet: the feature is gated behind the `team-chat-message-translation` unreleased feature and is not yet visible to users. When it is revealed, the Translate button takes its place in the per-message hover toolbar in a Team Chat channel or DM, and in the mobile long-press action sheet.

## How it behaves

### What it will do

Translate any Team Chat message inline, on demand, using the existing LLM infrastructure. A "Translate" action on the message hover toolbar (desktop) and long-press action sheet (mobile) sends the message text to the LLM layer and displays the translation below the original message.

### Why it belongs here

Omniscio already has:

- **Full i18n framework** — the app UI is translatable to 20+ languages (the language pilot unreleased features).
- **An existing LLM call layer** — the app talks to Claude/other providers for sessions, summarization, and AI features. Translation is a single-prompt call.
- **Multi-language teams** — workspace members may speak different languages. Inline translation removes the friction of copying text to an external translator.

### Planned behavior

- A "Translate" button appears in the hover toolbar (next to react/reply/edit) when the feature is enabled.
- Clicking it translates the message into the user's configured UI language (from the i18n `language` setting).
- The translation appears inline, below the original (not replacing it), with a small "Translated" label.
- Translations are ephemeral (client-side cache only, not persisted to Firestore).
- Cost: one short LLM call per translation. The feature respects the user's configured provider and model.

## For agents

### Existing infrastructure

- **Hover toolbar** — `TeamChatHoverToolbar.tsx` is the extension point; gated actions are straightforward.
- **LLM layer** — the session/provider infrastructure handles API calls; a translation prompt is a single-turn request.
- **i18n framework** — `rendererT` and the language setting provide the target language.
- **Message data** — `ChatMessage.text` carries the raw markdown content to translate.

### Setting

`teamChatMessageTranslationEnabled` (boolean, default false) — the unreleased-feature gate. Reveal via Settings > Lab or `AMC_SHOW_TEAM_CHAT_MESSAGE_TRANSLATION=1`.

## Related

The surface this action belongs to is described on [Team Chat](team-chat.md). Its sibling in-development action, forwarding a message to another channel, is on [Team Chat message forwarding](team-chat-message-forwarding.md). The languages the app itself can be shown in, which is what the translation targets, are on [Language support](language-support.md).
