Q2PRO-X 1.6 Final by ly
Chat translation
Project author: ly
Select a language, translate visible messages and copy text.
English edition • Q2PRO-X 1.6 Final by ly • November 7, 2026
Contents
The entries are links: click one to jump to that section.
Automatic and manual source language
Repeated requests and status messages
Message limits and window position
Player chat translation
The chat translator reads player messages currently visible in the console and displays their Russian translation in a separate window. For writing a reply in English, use /en in the console: it translates your own Russian text before you send it.
The translator does not change the Quake II network protocol and needs no game-server support. Internet access to the Q2PRO-X translation API is required.
Opening the translator
1. Open the console.
2. Press Translate at the top of the console. In gameplay it is left of the mod Frags/Rank/Time corner.
3. Or use the key chord you assigned. No chord is assigned by default.
The same button or chord closes the window. Esc closes only the translator, not the console. The title bar also has an X button.
Visible chat translation with automatic language detection and original player nicknames. Russian interface shown.
What is translated
Every press of Translate takes a fresh snapshot of player messages visible in the console at that moment. Backscrolled history is respected: the visible older conversation is translated instead of newer hidden lines.
The client identifies player-authored chat before rendering. Connection, vote, kill, map-loading, diagnostic and ordinary console lines are not sent. The sender must match the live player roster.
Nicknames remain local. Only message bodies are sent to the API, then each translated result is paired with its original nickname:
master: hello, friends!
master: привет, друзья!
Standard courtesy phrases such as gl, hf, gl & hf, gg, ggs and gg wp do not consume an API request. This is an exact phrase list, not a short-message filter: meaningful short replies such as yes and now remain translatable.
Automatic and manual source language
Detect language automatically is enabled by default. The API detects the source language for the submitted batch. The target language is fixed at Russian.
When automatic detection is disabled, the source list provides English, German, French, Spanish, Italian, Portuguese, Dutch, Polish, Czech, Slovak, Hungarian, Romanian, Croatian, Slovenian, Turkish, Swedish, Norwegian, Danish and Finnish. The manual choice remains saved but inactive while automatic detection is on.
Automatic detection does not mean background translation. No request occurs until Translate is pressed.
Repeated requests and status messages
All visible messages are submitted as one ordered batch, not one paid request per line.
Failed responses are not cached. Any change to visible bodies, their order or language settings creates a new batch.
Using the result
Results preserve conversation order and original nicknames. Drag with the mouse to select text. Ctrl+C copies the selection, while Ctrl+A selects all. Copy all copies the complete translated conversation.
The mouse wheel scrolls long output. Drag the title bar to move the window, use the bottom-right grip to resize it, and press F for fullscreen. Windowed position and size persist between launches. Saved geometry is clamped to the current workspace; full-screen mode preserves it.
Buttons stay sized to their labels instead of stretching with the window. While open, the translator owns mouse clicks, preventing Network God or other underlying HUD controls from opening. System shortcuts including Alt+F4 still work.
Settings
Path: Menu → Settings → Advanced Q2PRO-X → Translator Settings. The title-bar gear opens the same full settings page above the translator and returns focus to the overlay when the menu closes.
Translator settings in the Russian UI. CTRL+T is a user-configured example; the factory shortcut is empty.
The same variables and command have English and Russian console/Cvar Browser help:
cl_console_translate_auto
cl_console_translate_source
cl_console_translate_alpha
cl_console_translate_scale
cl_console_translate_fullscreen
cl_console_translate_hotkey
console_translate_toggle
Encoding and limits
ASCII and valid UTF-8 are preserved. For legacy servers or mods that send single-byte Western or Central-European encodings, manual language selection chooses a CP1250, CP1252 or CP1254 family. The classic Quake II protocol carries no encoding metadata, so automatic mode cannot perfectly identify every unusual legacy string.
Translation depends on q2pro-x.com and its upstream translation service. The game server neither performs nor receives the translation. The window never sends translated text into chat automatically; its output is for reading and copying.
Message limits and window position
Chat remains available throughout console history. Each request uses the newest 32 eligible visible messages in their original order and reports the omitted count. Hidden new lines do not replace backscrolled visible chat. Responses from an earlier connection are discarded after disconnect.
The console button follows its font, scale and transparency and uses the shared safe HUD inset for OpenTDM, OpenTDM-X and OpenFFA during gameplay.
Global cl_console_translate_x, cl_console_translate_y, cl_console_translate_w and cl_console_translate_h persist window geometry and provide RU/EN console and Cvar Browser help. Mouse dragging and resizing remain the convenient controls.
Using console categories
With categories enabled, select Player chat: only this tab permits Translate and its assigned shortcut. Other tabs, including All, cannot translate; leaving Chat closes the overlay. Off preserves the original behavior. The compact console button scales with con_scale and retains UI alpha at least 0.1 with con_alpha 0. See the Console Categories Guide.