Say goodbye to copy-pasting, embrace automation. An AI-powered desktop application for localizing Paradox game mods โ making translation accessible to everyone.
Project Remis is a production desktop application that turns Paradox mod localization into a structured, auditable workflow. It combines a Tauri desktop shell, a React/Mantine interface, and a Python FastAPI backend to parse game localization files, run glossary-aware LLM translation, preserve translation history, support proofreading, and deploy generated localization mods.
Project Remis is a production-grade showcase of modern full-stack development, solving complex localization, AI orchestrations, and desktop native integration challenges.
- Challenge: Paradox localization files (.yml) use specialized formatting, strict structure requirements, and are highly prone to encoding corruption (e.g., Mix of UTF-8-BOM and Mojibake issues).
- Solution: Designed a custom parser (
file_parser.pyandfile_builder.py) with strict dual-validation pipelines (JSON.parseand regex sanity checks) that run on automated test hooks to completely prevent translation text pollution.
- Challenge: Standard AI translation often hallucinates game-specific jargon (e.g., translating
convoyliterally instead of "่น้"). - Solution: Architected a modular AI service factory supporting multiple providers (Gemini, DeepSeek, OpenAI, etc.). Engineered a high-performance local glossary system utilizing phonetic search and fuzzy matching to dynamically inject context into translation prompts.
- Challenge: Providing a seamless desktop experience while leveraging a powerful Python localization engine.
- Solution: Implemented a hybrid architecture utilizing Tauri (Rust) for a lightweight desktop shell, React + Mantine UI for a sleek UX, and a localized FastAPI backend running fully offline. Optimized the build process with native executable packaging.
- Challenge: Ensuring project configurations, translation progress, and glossary changes are persisted safely without external infrastructure.
- Solution: Modeled data schemas using SQLite + SQLAlchemy, backed by repository-enforced GitHub Actions for Pytest, ESLint, Vitest, frontend builds, Rust checks, and dependency review.
Project Remis is built around three product workflows: project management, incremental translation reuse, and agentic smart repair for broken localization entries.
The smart repair flow is the project's agentic workflow: it collects broken entries, builds a context pack, asks the repair agent to diagnose and patch the issue, then loops through verification before producing a review-ready fix.
Say goodbye to the CLI era! The new desktop app adopts a project management approach โ create a project, import your mod, translate with one click, and track all progress automatically.
Built-in intelligent glossary system ensures AI translates game terminology like a veteran player. Supports phonetic search, fuzzy matching, and abbreviation recognition, with cross-game glossary management.
After translation, enter a side-by-side comparison proofreading mode. AI drafts are automatically archived for easy review and refinement.
Built-in tools like Cover Image Maker, with more features coming soon!
Supports multiple AI providers: Gemini, OpenAI, DeepSeek, Grok, Ollama, NVIDIA NIM, OpenRouter, and more. Choose from 5 beautiful themes.
Thanks to the new Tauri packaging technology, installation is simpler than ever:
- ๐ฆ Download the latest installer (
.exe) from the Releases page - ๐ฑ๏ธ Double-click to run and follow the installation wizard
- ๐ Launch the app and follow the built-in tutorial to configure your API
๐ก Quick Note
This tool is an "AI translation porter" โ you'll need your own API key. On first launch, the app will guide you to select an AI service (e.g., Gemini, OpenAI) and enter your API key.
โ ๏ธ API usage may incur costs. Keep your key safe!
The app includes an interactive guided tutorial that walks you through:
- Configure AI Service โ Select your translation engine and enter API key
- Create Translation Project โ Import mod folder, select game type
- Start Translation โ Configure source and target languages, click start
- Proofread & Refine โ Review and polish translations in the proofreading workspace
- One-Click Deploy โ Deploy translations to your game directory
The app includes 3 demo mods (Stellaris, Victoria 3, EU5) โ try the complete translation workflow immediately!
After translation, you need to enable the localization mod in-game:
- Open the
my_translationfolder and locate the generated localization package (e.g.,zh-CN-YourModName) - Copy this folder to your game's
moddirectory:- Victoria 3:
C:\Users\YourUsername\Documents\Paradox Interactive\Victoria 3\mod - Stellaris:
C:\Users\YourUsername\Documents\Paradox Interactive\Stellaris\mod - Hearts of Iron IV:
C:\Users\YourUsername\Documents\Paradox Interactive\Hearts of Iron IV\mod - Crusader Kings III:
C:\Users\YourUsername\Documents\Paradox Interactive\Crusader Kings III\mod
- Victoria 3:
- In the game launcher's "Playsets," enable both the original mod and the localization mod
- Crucial step: Ensure the localization mod loads after the original mod
๐ก The app also provides a one-click deploy feature that automates these steps.
| Issue | Solution |
|---|---|
| Translation not working | Ensure localization mod loads after the original mod |
| Original mod has fake localization | Delete all language folders except the original language in the mod's localization directory |
| API errors | Verify your API key and check account balance |
| Poor translation quality | Add specialized terms in the Glossary Manager, or provide mod theme description |
For more help, see Frequently Asked Questions (FAQ).
Important
๐ About "Fake Localization" & Translation Failure
If the translation doesn't work after loading the mod, the most common reason is "Fake Localization Files" in the original mod.
What is Fake Localization?
Many mod authors duplicate their English localization files into folders like simp_chinese or french to prevent missing key errors for players in other languages. As a result, the game prioritizes these "fake" files from the original mod over your translation mod.
How to Fix?
- Open the original mod directory:
SteamLibrary\steamapps\workshop\content\[GameID]\[ModID]\localization - Delete all folders except the original language (e.g., english).
- Alternatively: Use this tool's "One-Click Deploy" in overwrite mode to automatically replace these files.
The glossary is a "game terminology reference sheet." Before translation, we provide this reference to the AI, ensuring specific terms are translated consistently.
Example:
- โ Without glossary: AI might translate
convoyas "escort," "motorcade," or "guard" - โ With glossary: AI consistently translates it as "fleet"
You can edit directly in the Glossary Manager, or manually modify:
- Victoria 3:
data/glossary/victoria3/glossary.json - Stellaris:
data/glossary/stellaris/glossary.json
- Victoria 3: Victoria 3 Localization V1.2, Morgenrรถte Chinese, Better Politics Mod CN, Milk Localization
- Stellaris: Pigeon Group Glossary, Shrouded Regions Glossary, L-Network Stellaris Mod Collection
Built with Tauri + React + Python, combining a desktop-class user experience with a powerful AI translation engine.
remis-mod-factory/
โโโ src-tauri/ # [Desktop Shell] Tauri/Rust desktop framework
โ
โโโ scripts/
โ โโโ react-ui/ # [Frontend] React + Mantine UI
โ โ โโโ src/
โ โ โ โโโ pages/ # Page components (Projects/Glossary/Proofread/Tools...)
โ โ โ โโโ components/ # Reusable UI components
โ โ โ โโโ hooks/ # Custom React hooks
โ โ โโโ ...
โ โ
โ โโโ web_server.py # [Backend] FastAPI web server
โ โโโ routers/ # API routing layer
โ โโโ services/ # Business service layer
โ โ
โ โโโ core/ # [Core Engine] Reusable underlying modules
โ โ โโโ api_handler.py # AI API handler factory
โ โ โโโ gemini_handler.py # Google Gemini interface
โ โ โโโ openai_handler.py # OpenAI interface
โ โ โโโ glossary_manager.py # Glossary manager
โ โ โโโ file_parser.py # Paradox YML file parser
โ โ โโโ ...
โ โ
โ โโโ workflows/ # [Workflows] Translation business processes
โ โโโ initial_translate.py # Initial translation workflow
โ
โโโ data/ # [Data] Glossaries, config, cache
โโโ glossary/ # Game glossaries
โโโ remis.sqlite # Local database
Want to dive deeper? Check out the Developer Documentation.
This is an open-source project that grows with community feedback. Issues, PRs, and suggestions are always welcome!
This project uses a dual-license model:
-
Code (
.py,.jsx,.rs, etc.) Licensed under AGPL-3.0 -
Data & Documentation (glossaries,
.mdfiles, etc.) Licensed under CC BY-NC-SA 4.0
If you use this tool to create mod localizations and upload to the Workshop, we'd appreciate a mention with a link to the repository:
https://github.com/Drlinglong/Remis






