Matreshka: русификатор World of Warcraft, который переводит игру на лету
Клиентский аддон для WoW: The Burning Crusade. Переводит квесты, предметы, диалоги NPC и реплики в чате прямо во время игры, не трогая сервер. Проект открытый: исходники лежат на GitHub, релизы выходят на CurseForge.
Английский клиент, который нельзя переключить на русский
Официальные европейские серверы залочены на английский язык: включить русскую локализацию через Battle.net нельзя, потому что с ней на реалм просто не пускает. Значит, русский текст можно добавить только на стороне клиента, аддоном.
Готовые решения не подошли: одни собраны под старые версии игры и давно заброшены, другие переводят пословно и выдают "кашу". Нужен был аддон, который переводит связным текстом и, главное, не ломает игру. В WoW у аддонов строгая песочница, а неаккуратная подмена строк роняет защищённые элементы интерфейса.
− Как было
Английские квесты и диалоги, готовые русификаторы устарели или переводят по слову. Прямая подмена системных строк роняла панель действий и меню выхода.
+ Что нужно
Связный перевод квестов, предметов, диалогов и чата в реальном времени, причём без единого краша защищённого интерфейса игры.
Что переводит Matreshka
Перевод через хуки, а не подмену системных строк
Аддон не переписывает глобальные строки игры вслепую, потому что именно это и роняло защищённый интерфейс. Вместо этого он перехватывает отрисовку окон (hooksecurefunc, фильтры чата, хуки подсказок) и подставляет русский текст поверх уже готового кадра. Панель действий, меню и боевые элементы остаются нетронутыми.
Квесты целиком
Переводятся заголовок, цели, описание, прогресс и завершение, а вместе с ними подписи самого окна задания ("Цели задания", "Награда"). Текст берётся по идентификатору квеста, поэтому подставляется точно, а не по совпадению названия.
Подсказки предметов и заклинаний
Название и описание переводятся построчно прямо в нативной подсказке, с сохранением родных цветов. Числа, которые игра считает от характеристик персонажа (урон, лечение), подставляются живыми, потому что совпадение ищется и по точному тексту, и по "размытому" шаблону.
Диалоги NPC и реплики в чате
Реплики персонажей и боссов в чате берутся из официального русского перевода Blizzard, восстановленного из открытого дампа игрового сервера. Диалоги у NPC, писем и служебных событий, которых в официале нет, переведены машинно с обязательной ручной вычиткой.
Как это выглядит в игре
Откуда берётся перевод
Ядро аддона состоит не из кода, а из данных. Официальный русский текст Blizzard извлекается из открытого дампа игрового сервера (десятки тысяч пар "оригинал → перевод"), собирается скриптами на Python в компактные Lua-таблицы и проверяется валидатором перед сборкой. То, чего в официальном переводе нет, добавляется машинным переводом с ручной вычиткой.