Skip to content
evilenzoPublic

About

No description, website, or topics provided.

Resources

Stars

2 stars

Watchers

0 watching

Forks

Repository files navigation

Русификатор TCG Card Shop Simulator

Русский язык для TCG Card Shop Simulator: интерфейс, товары, карты, отзывы покупателей. Без мод-лоадеров — в настройках игры просто появляется язык «Русский».

Установка

  1. Скачайте tcg-ru-installer.exe из последнего релиза.
  2. Закройте игру и запустите установщик. Он сам найдёт игру в Steam (если не найдёт — укажите папку игры кнопкой «Обзор…») — нажмите «Установить». Займёт около минуты.
  3. Запустите игру: Settings → Language → «Русский».

Готово.

Windows может показать «Windows защитила ваш компьютер» — у установщика нет платной цифровой подписи. Нажмите «Подробнее» → «Выполнить в любом случае».

Удалить перевод — запустите установщик ещё раз и нажмите «Удалить».

Игра обновилась, и перевод пропал — это нормально: Steam перезаписывает файлы игры. Запустите установщик снова. Если вышла новая версия игры, сначала проверьте, нет ли свежего релиза перевода.

Что-то сломалось — нажмите «Удалить» в установщике или проверьте целостность файлов в Steam (Свойства → Установленные файлы → Проверить целостность).

Нашли ошибку в переводе — напишите в issues на GitHub или в комментариях к руководству в Steam. Укажите, где встретилась строка (экран, меню, товар), как она выглядит сейчас и как, по-вашему, правильно. Скриншот очень поможет.

Нужно ~1.6 ГБ свободного места (бэкап оригинальных файлов лежит рядом с ними). Часть реплик покупателей останется на английском — они зашиты в код игры.


Разработка

Как это устроено

Русский добавляется 11-й колонкой в таблицу локализации игры (I2 Localization) внутри resources.assets. Меню языков в игре — фиксированный набор кнопок, поэтому дополнительно патчатся сцены level1 и level2 для настроек. Итого подменяются три файла, у каждого рядом лежит бэкап *.orig-backup.

В игре 1.04 удалён RussianOutline. Сборка добавляет в resources.assets две копии шрифта Fredoka с исправленной цепочкой подстановки: кириллица берётся из встроенного динамического Liberation Sans до частичных кириллических наборов азиатских шрифтов. Латинские глифы и материалы сохраняются. Сцены ссылаются на эти копии; sharedassets* и DLL не изменяются.

Установка из исходников

Для Linux/Steam Deck или если хочется собрать самому. Нужен Python 3.9+ (python.org/downloads, при установке отметьте «Add Python to PATH») и ~1.6 ГБ свободного места.

Положите папку tcg-ru внутрь папки с игрой — рядом с Card Shop Simulator.exe:

TCG Card Shop Simulator/
├── Card Shop Simulator.exe
├── Card Shop Simulator_Data/
└── tcg-ru/                <- сюда

Откройте терминал в папке tcg-ru:

pip install -r requirements.txt
python tools/build_translation.py
python tools/install.py

install.py спросит подтверждение, сделает бэкапы оригиналов и подменит resources.assets, level1, level2. Если игра лежит в другом месте:

python tools/build_translation.py --game "D:/Games/Steam/steamapps/common/TCG Card Shop Simulator"

Прочие команды:

python tools/install.py --status    # что установлено, есть ли бэкапы и сборка
python tools/install.py --restore   # вернуть оригинальные файлы из бэкапов

После обновления игры Steam перезапишет файлы — пересоберите и поставьте заново: python tools/build_translation.py && python tools/install.py. Сборка берёт за основу бэкап оригинала, если он есть, поэтому переводы не наслаиваются. Учтите: после апдейта бэкап устаревает — удалите *.orig-backup перед сборкой (релизный установщик обновляет бэкапы сам).

Как помочь с переводом

Переводится один файл — translation/ru.json:

[
  { "key": "Buy buy buy!!", "en": "Buy buy buy!!", "ru": "" }
]

Заполняйте поле ru. Термины с пустым ru показываются на английском, поэтому перевод можно ставить в игру на любой стадии готовности. После правок — пересобрать и установить.

Сводка по строкам лежит в strings/:

Файл Что внутри
00_stats.json сводка по количествам
01_i2_localization_full.json вся таблица I2: 2573 термина со всеми официальными переводами
01_i2_translate_ru.csv то же в CSV, если удобнее таблицей
02_game_data_strings.json текст из ScriptableObject'ов: карты, полки, товары, эффекты
03_ui_text_static.json надписи, которых нет в таблице I2
04_i2_term_usage.json где в игре используется каждый термин — помогает с контекстом
05_all_asset_strings.csv полный дамп: 68 887 строковых полей
06_code_strings.json строки, зашитые в код (реплики покупателей и т.п.)

Перед отправкой проверьте, что плейсхолдеры (XXX, YYY, ZZZ), теги <nobr> и хвостовые пробелы на месте:

python tools/check_translation.py

Проверки совместимости с установленной игрой (файлы игры не изменяются):

python tools/build_translation.py --selftest
python tools/build_translation.py
python -m unittest discover -s tests -v

На Unity 6 сборка сохраняет исходное выравнивание объектов по 16 байтам, чтобы selftest подтверждал побайтовое совпадение объекта и всего контейнера. Интеграционные тесты проверяют установку, повторную установку и удаление на копии. Дампы в strings/ относятся к прежней версии игры и служат справочным материалом.

Перевытащить строки из игры

Нужно только если игра обновилась:

pip install UnityPy TypeTreeGeneratorAPI
python tools/extract_code.py "../Card Shop Simulator_Data/Managed" strings/raw
python tools/extract_all.py && python tools/build_outputs.py

TypeTreeGeneratorAPI требует установленного .NET 6+ runtime.

Что не переводится

Реплики покупателей, зашитые прямо в Assembly-CSharp.dll (~554 строки, см. strings/06_code_strings.json) — они идут мимо таблицы локализации и требуют правки кода. Не входят в этот русификатор.

About

No description, website, or topics provided.

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages