A per-message translation affordance — a pill that names the detected source language, crossfades between original and translation while the box tweens between their measured heights, re-aims at another target language from a menu, and stands in with a skeleton shaped by the source while a request is in flight.
npx shadcn@latest add @zyeon/translation-toggleZyeon UI limits how often it can be asked, and Translation Toggle hasn't had its turn. Its source will show here once it has.