{"id":25331023,"url":"https://github.com/deseven/1000xtranslate","last_synced_at":"2026-01-06T23:21:59.980Z","repository":{"id":276496232,"uuid":"928993589","full_name":"deseven/1000xTRANSLATE","owner":"deseven","description":"A complete toolset for 1000xRESIST localization","archived":false,"fork":false,"pushed_at":"2025-04-02T17:29:18.000Z","size":202,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-06-26T05:46:12.795Z","etag":null,"topics":["1000xresist","llm","localization","translation","unity","unitypy"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/deseven.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-02-07T16:03:58.000Z","updated_at":"2025-05-29T18:34:17.000Z","dependencies_parsed_at":"2025-03-05T19:21:30.385Z","dependency_job_id":"2917fae1-6c93-4ab0-974b-51d80ed47048","html_url":"https://github.com/deseven/1000xTRANSLATE","commit_stats":null,"previous_names":["deseven/1000xtranslate"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/deseven/1000xTRANSLATE","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deseven%2F1000xTRANSLATE","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deseven%2F1000xTRANSLATE/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deseven%2F1000xTRANSLATE/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deseven%2F1000xTRANSLATE/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/deseven","download_url":"https://codeload.github.com/deseven/1000xTRANSLATE/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deseven%2F1000xTRANSLATE/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263208051,"owners_count":23430676,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["1000xresist","llm","localization","translation","unity","unitypy"],"created_at":"2025-02-14T03:57:24.312Z","updated_at":"2026-01-06T23:21:59.974Z","avatar_url":"https://github.com/deseven.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 1000xTRANSLATE\nA full toolset that will help you to translate [1000xRESIST](https://store.steampowered.com/app/1675830/1000xRESIST/) to your favourite language.\n\n**There is now a `1000xr-modding` channel on the official [sunset visitor Discord](https://discord.gg/sunsetvisitor), feel free to join and say hi if you're planning to translate the game.**\n\n\u003e [!IMPORTANT]\n\u003e The toolset currently supports only game build 17930263 (1.15626, 1 Apr 2025) or earlier, the newest build 20610998 (4 Nov 2025) is not supported.\n\n## The Idea\nThe toolset is intended to be used in the following way:\n1. Toolset exports and parses what is needed from the game files you provide.\n2. Toolset uploads all strings into a pre-defined [Google Sheets document](https://docs.google.com/spreadsheets/d/10KcHa_iS_RSgsVauCDe6EKbskN4iZfaT9PPjdGJk--4/edit?usp=sharing) or uses a local Excel file.\n3. You translate all game text in Google Sheets or local file, with optional help of LLMs.\n4. Toolset pulls all translated strings and builds a ready to use distribution package with localization.\n\n\u003e [!NOTE]\n\u003e While this toolset makes the translation 1000 times easier, unfortunately you still need to have solid computer usage skills to set it up.\n\n\n## Roadmap\n - ~~be able to export, parse, translate and import all visible text data~~\n - ~~translator/checker~~\n - fonts patching\n - ~~general polishing \u0026 documentation~~\n - ~~texture~~ and other resources overrides (?)\n\n\n## Functions\n| Function          | State | Description                                                         |\n| ----------------- | ----- | ------------------------------------------------------------------- |\n| Exporter          | ✅    | Exports required game data                                          |\n| Sheetifier        | ✅    | Parses game data and imports all strings into Google Sheets         |\n| Translator        | ✅    | (optional) Translates dialogues using LLMs                          |\n| Checker           | ✅    | (optional) Checks for abnormalities in the translated dialogues     |\n| Desheetifier      | ✅    | Pulls all strings from Google Sheets and writes them into game data | \n| Boom Boom Build   | ✅    | Imports required game data, creates distribution packages           |\n\n### Exporter\nExports required game data from `GAME_DIR` to `RES_DIR` using [UnityPy](https://github.com/K0lb3/UnityPy). Game files that we need are `resources.assets` and individual bundles listed in [the bundles list](data/bundles.list).\n\n### Sheetifier\nParses exported game data from `RES_DIR` into human-readable format, imports it into the pre-defined Google Sheets document (`SPREADSHEET_ID` and the rest) or local file. If there already were some strings, it appends only missing strings. The function tries to sort the strings into chapters (see [chapter definitions](data/chapter-definitions.json)). The name is non-negotiable.\n\n### Translator\n*(optional)* Automatically or semi-automatically translates untranslated dialogues from Google Sheets using vocabulary and context. Marks translated strings with red (GSheets only), because you probably don't want to have unedited machine translation.\n\n### Checker\n*(optional)* Checks for anomalies in the dialogues using LLMs, creating a report of what was found.\n\n### Desheetifier\nPulls translated strings from Google Sheets or local file and inserts them into the game data in `RES_DIR`.\n\n### Boom Boom Build\nImports resources from `RES_DIR` into the game files, outputs changed bundles ready to be replaced in the game directory.\n\n\n## Prerequisites\n - a copy of game files (everything under `1000xRESIST_Data`)\n - Linux/macOS/Windows\n - node.js 20 or higher\n - python 3.9 or higher\n\n\n## Installation\nSee [INSTALL.md](INSTALL.md) for installation instructions.  \nSee [UPDATE.md](UPDATE.md) for update instructions if you're already using the toolset and want to update to the latest version.\n\n## Usage\nSee [USAGE.md](USAGE.md) for usage instructions.\n\n\n## Thanks\n - **K0lb3** for his work on UnityPy, without which none of this would've been possible\n - **VaDiM** and **idkwhatimsaying** for helping with typetree extraction\n - **turinar71** (who is the author of the Italian translation, btw) for some useful info\n - **K_A_S_a_L_E_X** for original data mining\n - **F3rn4n** for making a list of textures for translation","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdeseven%2F1000xtranslate","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdeseven%2F1000xtranslate","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdeseven%2F1000xtranslate/lists"}