They type Russian.
You read English.

Live translation of Dota 2 chat, right above the game's own. In English about two seconds after it is said. Dota itself sends the chat to the app, through the feed Valve built for overlays. New: answer them in Russian without leaving the game's chat.

Free, Windows, 80 MB. Nothing to sign up for: download, restart Dota once, play.

~2s to English · Dota's own feed · free, nothing to sign up for

[Allies]Иван:у него бкб, не лезь
 Луиза:гг вп, вы молодцы
[Allies]Дима:собираемся все, пушим мид
[Allies]Саня:байбек есть? тогда идём хг
[Allies]Иван:he has bkb, don't go in(у него бкб, не лезь)
 Луиза:gg wp, well played(гг вп, вы молодцы)
[Allies]Дима:group up everyone, push mid(собираемся все, пушим мид)
[Allies]Саня:have buyback? then let's go highground
[Allies]Иван:у него бкб, не лезь
 Луиза:гг вп, вы молодцы
[Allies]Дима:собираемся все, пушим мид
[Allies]Саня:байбек есть? тогда идём хг
Without With Dota Translator

Drag the handle. Same chat, same moment.

And now you can answer

Type in Dota's own chat, the way you always do, and press Ctrl+Enter instead of Enter. About a second later it is said - in their language. Plain Enter still sends exactly what you typed.

[Allies]Дима:собираемся все, пушим мид
[Allies]You:идем рошана после этой драки
To (Allies):go rosh after this fightCtrlEnter
English → Russian
You type English, they read Russian. Or whatever your team writes in - the app sees their chat, so it knows.buy wards please → купите варды плз
hi guys, good luck → привет всем, удачи
[Allies]Mike:does anyone have wards?
[Allies]Ты:rosh after fight
To (Allies):го рошан после дракиCtrlEnter
Russian → English
Or the other way round. One setting, same key: for the player who types Russian and wants the rest of the team to understand.иду топ, помогите → going top, help
купите варды пожалуйста → buy wards please

The same line every time: what you have said once is remembered on your PC, so the same English is always the same Russian, at once and at no cost - in a plain text file a friend who speaks the language can correct. How it works: the app presses a few keys for you - select, copy, paste, Enter - only when you press Ctrl+Enter and only while Dota is the window in front. Nothing is written to the game. More in the catch.

Fast enough for a fight

A translation that arrives after the fight is a translation you never read. These are measurements from live matches, not estimates.

dota-translator / measuredlive matches, team and all chat
Dota's chat feed1×/sthe game sends it once a second
Said to English~2sup to 1s for Dota's feed, then 0.7-0.9s to translate
Built onGSIthe feed Valve made for overlays and stream tools
Price€0no account, no subscription
Measured over a whole matchmade game. A line somebody already said comes back instantly, with no call at all.

Built for how people actually type

Slang stays slang

It is told it is reading Dota chat. Shorthand comes out as shorthand, not as an essay.

го рошан → let's rosh
мид сс, осторожно → mid miss, careful

Nothing softened

An insult is translated as an insult. What was said is the thing you asked for.

ты вообще играть умеешь? → do you even know how to play?

Team and all chat

Both channels, tagged as the game tags them, with each player's own colour on their name.

Only what you can't read

English lines and the chat wheel are left alone and cost nothing. You see english (what was said), so a bad translation never hides the original.

It looks like Dota

Same typeface as the game's chat, lined up with it, gone when the game's own line goes. Alt-tab and it gets out of the way.

Nothing to set up

No account, no key, no settings you have to touch. Install it, restart Dota once so the game picks up its chat feed, and play.

Two steps, two minutes

Run Dota borderless

Settings, Video, Display Mode: Borderless Window. The translation is a window drawn over the game, and an exclusive-fullscreen game does not let other windows on top of it.

Install it, restart Dota once

Download and run the installer. Dota reads its chat-feed setting only when it starts, so restart it once. Then play: translations appear above the game's chat.

Windows only. The installer is not code-signed, so Windows asks "are you sure?" the first time: More info, then Run anyway - what that looks like, and why it is normal. It lives in the tray, by the clock. Alt+D hides it, Alt+Shift+D quits.

The catch, up front

  • It does not read Dota's memory. Chat comes from Game State Integration, the feed Valve built into the game for overlays and stream tools: the game sends it to your own PC. The app never opens the game's process, injects nothing and changes none of its files. To switch the feed on it writes one small config file into Dota's folder, and Dota has to be restarted once to notice it.
  • It looks at two small spots of your screen. The feed says which seat spoke, not which hero. So when somebody new speaks, the app captures the portrait beside the newest chat line - about 56 by 40 pixels - and if that is unclear their tile in the top bar, compares it with the portraits in your own Dota install, and throws it away. Only while Dota is in front; nothing is saved or sent anywhere. It can be switched off, and then other players are shown by colour only.
  • Other players have no names. The feed does not carry them. You see their hero portrait and their colour - Pink, Teal - which is how most people tell who spoke anyway. Your own lines carry your name.
  • If you use Ctrl+Enter to answer, it presses keys for you. Select, copy, paste and Enter, sent through Windows the way a macro key sends them - once, when you ask, and never unless Dota is in front. Nothing is written to the game. It can be switched off, and then the app sends the game nothing at all.
  • Valve has not approved it. It uses Valve's own feed and gives no advantage in the game, but nobody at Valve has reviewed this app, and that is true of every third-party tool you run beside Steam.
  • A Dota update could change the feed or move the chat on screen. Then the app updates itself; until it does, the text may sit in the wrong place or portraits may be missing. The translations themselves do not depend on either.

Like any third-party program: use it at your own risk.

Questions

Is it really free?

Yes. No subscription, no account, no trial, no key to get. The translating runs on this project's own server, and there is a fair daily allowance per player that normal play never reaches. If it wins you a game and you feel like it, you can buy me a coffee on Ko-fi - it changes nothing about what you get.

Will it slow my game down?

It should not. The game sends its chat to the app once a second; the app does not search or read the game at all. When somebody new speaks it compares one thumbnail-sized picture, which takes about 30 milliseconds.

Is the download safe? It is an unsigned .exe from a stranger.

Fair. So it is set up to be checked rather than believed: every installer is built by GitHub from the public source, not on my PC; it needs no administrator rights; it talks only to Google, GitHub and Valve's image server; and the fingerprint of each release is published. The download page lists all of it, and explains the blue Windows warning, which means "unknown publisher", not "something was found".

Can I get banned?

Nobody can promise anything about somebody else's rules, so here is what it does instead: it gets the chat from the feed Valve built into the game for tools like overlays, never touches the game's process and injects nothing. See the catch for the rest - two small screen captures, and key presses if you use Ctrl+Enter. Valve has not reviewed this app.

Where does my chat go?

Only the lines that need translating leave your PC. They go to this project's translator (translate.dotatranslator.live) and on to Google's Gemini, and the English comes back the same way. Nothing that is said is logged or stored there: what is kept is a short-lived cache of text and its translation, with nothing about who said it, and a count of how many players used it each day. English lines never leave your PC. Hero portraits are read from your own Dota install; if one cannot be found there it is fetched from Valve's own image server. The app also fetches one small settings file from this project's GitHub.

Can I answer them in Russian?

Yes. Type English in Dota's chat and press Ctrl+Enter instead of Enter: it is sent in the language your teammates have been typing in, about a second later. A setting turns it round (Russian → English). The translation is a model's, tuned for Dota chat; if a Russian speaker tells you a line is off, say so in an issue - that is how it gets better. See answering.

Sometimes lines stay in Russian. Is it broken?

Probably not. The translating is done by Google's Gemini, and when that is overloaded it answers slowly or not at all - usually for minutes. The app keeps showing every line as soon as it hears it, exactly as it was written, tells you once that the translator is not answering, and carries on by itself when it is back. Nothing to restart. The other cause is rarer: each player has a daily allowance of translations that normal play never reaches; if you hit it, the app says so and it comes back tomorrow.

Only Russian?

Russian is what it is built and tuned for. Chinese is translated too, out of the box, because so many of the voice lines people paste into chat are Chinese. Greek, Korean, Arabic and Thai can be switched on in the settings; those are less tested.

Does it update itself?

Yes. It looks for a new version when it starts and every few hours after, downloads it quietly, and installs it the next time you close the app - never in the middle of a match. The version you are running is in the tray icon's menu.

Can I check what it does?

Yes, all of it. The full source is on GitHub, and the installer is built there from that source by an automated job, in the open, not on somebody's PC. The part that listens to the game's feed is gsisource.js, the screen capture is one plain-text file, rowgrab.ps1; the part that talks to the translator is hosted.js.

Is it open source?

The source is public and free to use, read and change for non-commercial purposes (PolyForm Noncommercial). Strictly that makes it source-available rather than open source: a paid product may not bundle it.

Can I ask for a change, or make one myself?

Yes to both. The quickest way is the feedback form: one box, no account needed, and the app's tray menu opens it too. Or open an issue on GitHub to report a bug or ask for a feature - a wrong translation, a screen where the text sits in the wrong place, a language you want. And the source is public, so if you would rather fix it yourself, pull requests are welcome.

Read your team.
Win the fight.

Nothing to sign up for. Restart Dota once after installing.