BabelChat Translator

Real-time chat translation with a companion desktop app. Built-in dictionary of 347 gaming terms in 14 languages, full sentence translation via DeepL overlay.

File Details

BabelChat 3.2.0

  • R
  • Jun 15, 2026
  • 1.37 MB
  • 133
  • 12.0.5+1
  • Retail

File Name

BabelChat-3.2.0.zip

Supported Versions

  • 12.0.5
  • 12.0.1

[3.2.0] — 2026-06-15

Added / Добавлено / Añadido

  • Endgame & Midnight dictionary category — 22 current terms across all 14 client languages (delves, Bountiful, Brann, Mythic+/keystone/affixes, gear tracks Champion/Hero/Myth, Gilded/Runed crests, Warband, catalyst, spark, renown, Raider.IO, KSM, Manaforge Omega, Undermine). The in-game dictionary now keeps up with The War Within / Midnight chat.
  • Dictionary engine: LibBabble zone/item-set lookups are pre-indexed at rebuild time instead of re-scanned on every chat line; single-word matching now resolves the correct token position when a word repeats in a message.
  • Clearer onboarding (from CurseForge feedback) — the first-run welcome now states the dictionary works instantly and free with no app required; the companion setup explains that DeepL's free tier asks for a credit card to verify (never charges) while Microsoft Translator needs no card. CurseForge description rewritten with a Quick Start.

Fixed / Исправлено / Corregido

  • Discord invite links no longer mistranslated — schemeless links like discord.gg/xyz were reaching DeepL, which read .gg as the gaming abbreviation and rendered it as "good game" / "хорошая игра". URL tokenization now also protects known link/invite domains (discord.gg, t.me, bit.ly, …) and any domain.tld/path.

Performance / Производительность / Rendimiento

Linux memory scanner rewritten in Rust — the single biggest performance improvement since Linux support was added.

  • Rust scanner library (libbabelchat_scanner.so) replaces the pure-Python /proc/<pid>/mem scanner
  • Uses process_vm_readv instead of /proc/<pid>/mem — a dedicated cross-process memory syscall that does not go through the VFS layer, requires no file descriptor, and does not pause the target process. Eliminates the WoW frame-time stutters caused by the old approach
  • Address cache — steady-state polling (every 250ms) is now a single process_vm_readv call at the cached address, costing ~microseconds and near-zero CPU
  • Full parallel heap scan (Rayon, 2 threads) only runs on cache miss, which happens approximately every 14s when Lua GC relocates the buffer
  • Scanner threads run at SCHED_IDLE — the lowest Linux scheduling class, below nice +19. WoW, the compositor, and all other processes take absolute scheduling priority over the scanner
  • Initial scan time: 10–13s → ~2.5s
  • GC relocation detection: 14–17s gaps → ~2s
  • End-to-end overlay latency: many seconds → ~1s (floor is DeepL API round-trip)
  • Game stutters: eliminated

Addon flush interval reduced from 1.5s → 0.25s — messages are written to memory within one poll cycle of arriving, cutting the addon-side contribution to latency from up to 1.5s to ~250ms.

Python scanner overhaul (retained as fallback if .so not found):

  • Persistent /proc/<pid>/mem fd — eliminates open/close syscall overhead on every read
  • Regions scanned smallest-first — active Lua strings live in smaller allocations; buffer found faster
  • Early exit on first valid marker — no longer scans all remaining regions after finding a hit
  • Ghost buffer blacklisting — stale old copies that cause seq resets are immediately blacklisted
  • All rescan paths pass min_seq — only buffers newer than already-delivered messages are accepted
  • Rescan interval no longer backs off exponentially when no newer buffer is found
  • Background scanner thread correctly validates seq before committing a new address

Added / Добавлено / Añadido

  • babelchat_scanner/ — Rust crate producing libbabelchat_scanner.so for Linux
  • build-linux.spec — bundles libbabelchat_scanner.so into the Linux binary via PyInstaller

Changed / Изменено / Cambiado

  • memory_reader_linux.py — now a thin Python wrapper around the Rust scanner; falls back to pure-Python on missing .so
  • Linux architecture diagram in README updated to reflect Rust scanner
  • Limitations section updated: 5–10s relocation delay note removed (no longer applicable)

Rust-сканер памяти для Linuxlibbabelchat_scanner.so заменяет чистый Python-сканер — Использует process_vm_readv вместо /proc/<pid>/mem — без VFS, без дескриптора файла, без паузы целевого процесса. Устраняет фризы WoW — Кэш адреса — опрос в устойчивом состоянии стоит ~микросекунд; полное сканирование только при промахе кэша (~раз в 14с) — Потоки сканера работают в режиме SCHED_IDLE — WoW никогда не вытесняется сканером — Интервал сброса аддона: 1.5с → 0.25с

Escáner de memoria en Rust para Linuxlibbabelchat_scanner.so reemplaza el escáner Python puro — Usa process_vm_readv en lugar de /proc/<pid>/mem — sin VFS, sin descriptor de archivo, sin pausar el proceso objetivo. Elimina los stutters de WoW — Caché de dirección — el sondeo en estado estable cuesta ~microsegundos; escaneo completo solo en fallo de caché (~cada 14s) — Hilos del escáner corren en modo SCHED_IDLE — WoW nunca es desalojado por el escáner — Intervalo de flush del addon: 1.5s → 0.25s

Changelog / История изменений / Registro de cambios