
I built a free PO/gettext localization tool for game devs (batch-translates with GPT/Claude, keeps UI strings from overflowing) — open source on GitHub
Hey,
As solo dev for games, I kept running into the same localization headaches on my own projects, so I built a tool to fix them and figured others might be dealing with the same thing.
If you localize with .po/.pot files (Unity, Godot, or basically anything using gettext), the usual pain points are:
- You update the English source and have no idea what actually changed vs. what's still fine
- The model translates the same word differently every time it shows up
- A 2-word button like "RESTORE DEFAULTS" comes back as a 6-word sentence in Spanish and blows out your UI
- Fixing one bad translation in French shouldn't nuke your Portuguese, but half the tools out there treat "modified" as a global flag instead of a per-language one
PoTranslator is a Windows desktop app that batch-translates PO catalogs into up to 19 languages using OpenAI or Claude, and is built specifically around those problems:
- Incremental base updates — re-import a newer PO and it tells you exactly what's new/modified/removed, keeps your existing translations, and only flags what actually needs review
- Three layers of context — general project context, per-language glossary rules (e.g. "kick = patear, never chutar"), and per-line notes for ambiguous strings
- A brevity rule for UI strings — anything under N words (buttons, tabs, titles) gets translated tersely so it doesn't overflow your layout
- Per-language change tracking — correcting Spanish never flags Portuguese as needing attention
- Placeholder validation — catches it if the model drops or mangles a
{player}or%d - Duplicate dedup — identical strings with identical context are translated once and reused, not re-billed every occurrence
It's free, and the source is on GitHub under MIT — grab the .exe from the Releases page or build it yourself, no installer needed:
https://github.com/eldany1972/PoTranslator2
You'll need your own OpenAI or Claude API key (it's encrypted locally with Windows DPAPI, never touches the project file). There's a full user manual in the repo covering the whole workflow.
Would love feedback if anyone here gives it a shot — especially on what's missing for your particular localization workflow. Happy to take feature requests or bug reports as GitHub issues.