IniTranslator is a Windows WPF desktop application for comparing, editing, and maintaining INI-based translations. It helps translators keep English and localized INI files synchronized with side-by-side editing, search and replace, placeholder validation, automatic backups, version comparison, and direct extraction from Star Citizen P4K archives.
- Overview
- Features
- Requirements
- Installation
- Build from Source
- Usage
- Keyboard Shortcuts
- Settings
- Project Structure
- Third-Party Components
- Contributing
- License
- Repository
IniTranslator is designed for translation maintenance rather than generic text editing.
Typical workflow:
- Open the current English INI file and the translated INI file.
- Review entries in a side-by-side editor.
- Search, filter, replace, or copy source text into translation fields.
- Translate selected rows with Google Translate or DeepL.
- Validate placeholders before saving.
- Save changes with an automatic
.bakbackup of the translated file. - Optionally compare against an older English INI or extract a fresh
global.inifrom Star Citizen.
- Side-by-side INI editing for source and translated values.
- Fast filtering by key, English text, or translated text.
- Optional regular-expression search and case-insensitive search.
- Batch replace on selected translations.
- Copy/paste support for structured
key=valueclipboard data. - Copy English source text directly into translation fields.
- Translation of selected rows through Google Translate or DeepL.
- Placeholder mismatch detection for patterns such as
%xxand Star Citizen action tokens. - Automatic backup creation when saving translated files.
- Reload backup support from the main UI.
- Comparison against an older INI file to identify changed entries.
- Extraction of
Data/Localization/english/global.inifrom Star CitizenData.p4karchives. - Built-in P4K archive explorer with search, file export, and directory extraction.
- Light, Dark, and System theme support.
- Persisted window position, size, language, search settings, provider choice, and game path.
- Localized UI with built-in language options: English, Spanish, French, Italian, Lithuanian, Portuguese (Brazil), and German.
- Windows 10 or later.
- Star Citizen installed locally if you want to use archive extraction or the P4K explorer.
- For source builds: .NET 10 SDK.
Notes:
- The GitHub release package is published as a self-contained
win-x64build. - API keys are only required if you want to use machine translation features.
Download the latest packaged build from GitHub Releases:
Then:
- Extract the archive.
- Run
IniTranslator.exe.
No separate .NET desktop runtime installation is required for the published release package.
The CI pipeline restores and publishes the WPF application as a self-contained win-x64 build with .NET 10.
To build locally:
dotnet restore .\IniTranslator\IniTranslator.csproj -r win-x64
dotnet build .\IniTranslator\IniTranslator.csproj -c Release -r win-x64To publish a release-style build locally:
dotnet publish .\IniTranslator\IniTranslator.csproj -c Release -r win-x64 --no-restore -o publish -p:DebugType=None -p:PublishSingleFile=true --self-contained trueUse File > Open to select:
- The English source INI file.
- The translated INI file.
The main list shows:
- Line number
- Key
- English value
- Editable translation value
The toolbar search box filters the current list in real time.
- Search covers key, English text, and translated text.
RegExenables regular expression matching.Ignore Caseswitches between ordinal and case-insensitive matching.Replaceopens a dialog to update selected translations in bulk.
Editing commands are available from the menu and keyboard shortcuts:
- Copy selected entries to the clipboard.
- Paste structured
key=valuecontent back into matching selected rows. - Copy English text into the translation column.
- Translate selected rows with the configured provider.
Currently implemented machine translation providers:
- Google Translate
- DeepL
IniTranslator checks placeholders used in the English value against the translated value and helps you jump between mismatches.
Examples of supported placeholder patterns include:
%s,%d,%r[~action(...)]~action(...)
When mismatches are found, the app warns before saving so you can review them.
When you save a translated file, IniTranslator creates a backup next to it:
yourfile.ini.bak
You can restore that backup with File > Load Backup.
Use File > Open Old INI File to load an earlier English INI version.
This workflow is intended to help when the source file changes between game versions:
- missing keys are added back into the current translation set
- entry ordering is synchronized with the current English file
- changed source entries can be reviewed with the
Jump to Next Changeaction
Use File > Extract from Game to extract the current English global.ini from a selected Star Citizen installation version.
The app attempts to find the game automatically by:
- checking the default installation directory
- falling back to the RSI Launcher log
After selecting a version, IniTranslator reads Data.p4k, extracts Data/Localization/english/global.ini, and reloads the current translation view against the extracted file.
Use File > Explore P4K Archive to open the built-in archive browser.
The explorer supports:
- loading a Star Citizen
Data.p4karchive - browsing directories in a tree view
- searching files by name/path
- viewing basic metadata for the selected item
- exporting individual files
- extracting entire directories
CryXmlB files are exported as .xml when applicable.
Ctrl+O: Open English and translated INI filesCtrl+S: Save translated INI fileCtrl+C: Copy selected entriesCtrl+V: Paste clipboard content into selected entriesCtrl+M: Copy English values into the translation columnCtrl+T: Translate selected entriesCtrl+J: Jump to a specific line
Toolbar actions also expose these navigation features:
- Jump to next changed entry
- Jump to next placeholder mismatch
The settings window includes:
- UI language
- application theme
- translation provider
- DeepL API key
- Google Translate API key
- Star Citizen installation path
Settings are stored in:
%AppData%\ROBdk97\IniTranslator\settings.json
API keys are stored in the settings file in encrypted form by the application.
IniTranslator/: main WPF applicationIniTranslator/ViewModels/: main editing, settings, help, and P4K explorer logicIniTranslator/Windows/: dialogs and secondary windowsIniTranslator/Helpers/: settings, translation, file equalization, clipboard, and path helpersIniTranslator/Models/: settings and translation data modelsROBdk97.Unp4k/: modified P4K archive handling library used by the appIniTranslaterSetup/: legacy setup project artifacts
- Modified version of dolkensp/unp4k
- Modified version of icsharpcode/SharpZipLib
- DeepL.net
libzstd.dll/ Zstandard support used by the archive tooling
Contributions are welcome.
- Fork the repository.
- Create a branch for your change.
- Make and test the change.
- Open a pull request with a clear description.
If you plan a larger change, open an issue first so the scope can be discussed.
This project is licensed under the MIT License.
- GitHub: ROBdk97/IniTranslator
- Issues: Open an issue
