Skip to content

Drlinglong/Remis

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

678 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Project Remis Logo

Project Remis

Paradox Mod Localization Factory

Release Version CI Status Platform License

Say goodbye to copy-pasting, embrace automation. An AI-powered desktop application for localizing Paradox game mods โ€” making translation accessible to everyone.

Portfolio Summary

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.


๐Ÿ› ๏ธ Technical Highlights & Engineering Challenges

Project Remis is a production-grade showcase of modern full-stack development, solving complex localization, AI orchestrations, and desktop native integration challenges.

๐Ÿงฉ 1. Robust Paradox YML Parsing & Encoding Integrity

  • 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.py and file_builder.py) with strict dual-validation pipelines (JSON.parse and regex sanity checks) that run on automated test hooks to completely prevent translation text pollution.

๐Ÿค– 2. Context-Aware Glossary & AI Orchestration

  • Challenge: Standard AI translation often hallucinates game-specific jargon (e.g., translating convoy literally 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.

๐Ÿ’ป 3. Cross-Platform Desktop Packaging & Dev Server

  • 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.

๐Ÿงช 4. High-Standard Quality Control & Local Database

  • 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.

Core Workflows

Project Remis is built around three product workflows: project management, incremental translation reuse, and agentic smart repair for broken localization entries.

Project Management Workflow

Project management workflow diagram

Incremental Update Workflow

Incremental update workflow diagram

Agentic Smart Repair Workflow

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.

Agentic smart repair workflow diagram

Main Interface Preview


โœจ Feature Highlights

๐Ÿ—๏ธ Project-Centric Workflow

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.

Project Status Overview

๐Ÿ“š Powerful Glossary Management

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.

Glossary Manager

โœ๏ธ Professional Proofreading Workspace

After translation, enter a side-by-side comparison proofreading mode. AI drafts are automatically archived for easy review and refinement.

Proofreading Workspace

๐Ÿ› ๏ธ Utility Toolbox

Built-in tools like Cover Image Maker, with more features coming soon!

Toolbox

โš™๏ธ Flexible Translation Configuration

Supports multiple AI providers: Gemini, OpenAI, DeepSeek, Grok, Ollama, NVIDIA NIM, OpenRouter, and more. Choose from 5 beautiful themes.

Translation Configuration


๐Ÿ“ฅ Download & Install

Thanks to the new Tauri packaging technology, installation is simpler than ever:

  1. ๐Ÿ“ฆ Download the latest installer (.exe) from the Releases page
  2. ๐Ÿ–ฑ๏ธ Double-click to run and follow the installation wizard
  3. ๐Ÿš€ 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!


๐Ÿš€ Quick Start

The app includes an interactive guided tutorial that walks you through:

  1. Configure AI Service โ€” Select your translation engine and enter API key
  2. Create Translation Project โ€” Import mod folder, select game type
  3. Start Translation โ€” Configure source and target languages, click start
  4. Proofread & Refine โ€” Review and polish translations in the proofreading workspace
  5. 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!


๐ŸŽฎ Enable Mod in Game

After translation, you need to enable the localization mod in-game:

  1. Open the my_translation folder and locate the generated localization package (e.g., zh-CN-YourModName)
  2. Copy this folder to your game's mod directory:
    • 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
  3. In the game launcher's "Playsets," enable both the original mod and the localization mod
  4. Crucial step: Ensure the localization mod loads after the original mod

๐Ÿ’ก The app also provides a one-click deploy feature that automates these steps.


โ“ Troubleshooting

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?

  1. Open the original mod directory: SteamLibrary\steamapps\workshop\content\[GameID]\[ModID]\localization
  2. Delete all folders except the original language (e.g., english).
  3. Alternatively: Use this tool's "One-Click Deploy" in overwrite mode to automatically replace these files.

๐Ÿ“– Glossary System

How It Works

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 convoy as "escort," "motorcade," or "guard"
  • โœ… With glossary: AI consistently translates it as "fleet"

Glossary Locations

You can edit directly in the Glossary Manager, or manually modify:

  • Victoria 3: data/glossary/victoria3/glossary.json
  • Stellaris: data/glossary/stellaris/glossary.json

Glossary Credits

  • 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

๐Ÿ›๏ธ Project Architecture

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.


๐Ÿค Contributing

This is an open-source project that grows with community feedback. Issues, PRs, and suggestions are always welcome!


๐Ÿ“œ License

This project uses a dual-license model:

  1. Code (.py, .jsx, .rs, etc.) Licensed under AGPL-3.0

  2. Data & Documentation (glossaries, .md files, etc.) Licensed under CC BY-NC-SA 4.0

โค๏ธ Credits

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


Roma Invicta! ๐Ÿฆ…

About

AI-powered desktop app for translating Paradox game mods. Built with Tauri, React, and FastAPI, with glossary-aware LLM workflows, project tracking, proofreading, and release packaging.

Topics

Resources

License

Contributing

Security policy

Stars

24 stars

Watchers

1 watching

Forks

Packages

 
 
 

Contributors