Skip to content

Kinotern/CatSystem2-Simple-Translating-Tools-Extra

 
 

Repository files navigation

CatSystem2 Simple Translating Tools

中文说明

Single-click tools to extract text into an editable state and pack everything back afterward. The goal is to keep the workflow simple and practical.

In case of troubles you also can contact the original author at Discord: sherekhanromeo

Requirements:

  • Python 3.10+ and its modules:
  • pip install pandas
  • pip install xlsxwriter
  • pip install colorama
  • pip install openpyxl

Changelog v0.8.1:

  • Basic stable .cstl files translation support
  • Code fixes

Next goal: rewrite code for multithreading support and make it into UI.

HUGE thanks to Trigger and his TriggersTools.CatSystem2 wiki for gathering all info on CS2 file formats and tools in one place.

How to use:

  1. copy .bat files and the tools folder into your game folder
  2. run 1) unpack.bat to get:
    • source game files with extracted original game files for reference
    • translate here with .xlsx files and, for some games, .ini files containing translatable text
  3. translate names in translate here/nametable.xlsx and run 2) apply names translations.bat to apply those names to all .xlsx files in translate here/clean texts/
  4. run 3) pack.bat to generate an updateXX.int archive containing:
    • .ini translations from translate here/clean localization texts/ compiled back into .cstl
    • .xlsx translations from translate here/clean texts/ compiled back into .cst
    • files from subfolders inside translate here/your files AS IS
  • IF THE GAME HAS LOCALIZATION .cstl / .ini FILES, THEY TAKE PRIORITY OVER .cst / .xlsx TRANSLATION FILES.
  • IN THIS CASE TRANSLATE USING ONLY .cstl / .ini FILES.

Current tools layout:

  1. tools/bin
    • native executables and runtime dependencies used during unpack / pack
  2. tools/scripts
    • project Python entrypoints such as unpack.py, pack.py, apply_name_translations.py
  3. tools/scripts/cstl_tool
    • CSTL-related Python package and its __main__.py entrypoint

Unpacker features:

  1. extracts:
    • .int archives using exkifint_v3.exe
    • .cst into .txt using cs2_decompile.exe
    • .cstl into .ini using tools/scripts/cstl_tool/__main__.py
    • translatable text into .xlsx
  2. places files into categorized folders under source game files and translate here
  3. writes unpack logs into logs/unpack
  4. shows progress bar, percentage, and ETA
  5. shows key file detection status for main executable, config.int, and scene.int

Packer features:

  1. copies original files from source game files/texts and nametable.csv, applies translations, and packs results
  2. packs files from translate here/your files AS IS as-is
  3. compiles .ini localization files back into .cstl using tools/scripts/cstl_tool/__main__.py
  4. attempts to auto-fix missing [cstl] headers and duplicated message sections in .ini files before packing

Tested on games:

  1. Amakano+ (non-Steam, unrated) = success
  2. Grisaia no Kajitsu (non-Steam, unrated) and (Steam, all-ages) = success
  3. Grisaia no Meikyuu (non-Steam, unrated) = success
  4. Grisaia no Rakuen (non-Steam, unrated) = success
  5. NekoPara vol.3 (non-Steam, unrated) = success
  6. The girl who's called the world (non-Steam, unrated) = success
  7. Yuki Koi Melt (non-Steam, unrated) = success

Known problems:

  1. ShiftJIS (game engine encoding) doesn't support use of some specific symbols from some languages:

    • Ää, Öö, Üü, ß from German;
    • Áá, Ââ, Ãã, Àà, Çç, Éé, Êê, Íí, Óó, Ôô, Õõ, Úú from portuguese;
    • Ññ from Spanish;
    • Èè, Ëë, Îî, Ïï, Ûû, Ùù, Ÿÿ from French; etc.

    Possible solution = create and use custom font that shows required unsupported symbols instead of unused symbols (f.e. Cyrillic ones), E.g.: you need the game to show word Färbung so you type something like Fьrbung and font shows ь as ä. Added it into ToDo list, will try to solve later.

About

一个用于快速解包编辑封包Catsystem2的小工具

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

No contributors

Languages

  • Python 99.7%
  • Batchfile 0.3%