Localization QA Inspector
Check CSV localization files before release, understand the results and use the same checks in your build process.
Open Localization QA Inspector
CSV input format
Supply UTF-8 text with a key column followed by a source locale and one or more target locales. The default source column is en and can be changed before analysis.
key,en,pl,de
welcome,"Welcome {name}","Witaj {name}","Hallo {name}"
score,"Score: %d","Wynik: %d","Punkte: %d"
Rows may include commas and newlines inside properly quoted cells. The CSV parser accepts escaped double quotes and CRLF/LF line endings.
What the checks mean
| Code | Meaning |
|---|---|
EMPTY_TRANSLATION | A target language cell is blank. |
MISSING_SOURCE | The base-language string is blank. |
MISSING_KEY | A row has no localization identifier. |
DUPLICATE_KEY | The same key appears more than once (case-insensitive). |
ROW_WIDTH | Row has a different number of cells than the header. |
TOKEN_MISMATCH | Named placeholders, printf format codes or markup tag counts differ from the source text. |
ICU_REVIEW | Complex ICU plural/select syntax needs specialized inspection. |
Run your first check
- Open Localization QA Inspector.
- Select or drop a CSV file up to 2 MB. The file is parsed locally in your browser.
- Confirm the source locale, then select Analyze CSV.
- Review blocking issues first, filter by language or issue type, and export findings as CSV or JSON.
The browser tool does not submit your CSV to ForgeFrame Labs. It has no third-party runtime dependencies, login form or analytics. Inspect exported reports before sharing because they contain localization keys and excerpts.
Optional command-line CI gate
For automation, the same validation core also runs with Node.js 20+ and no package dependencies. Run it in your own repository or local build after obtaining the source files from the public demo repository.
node tools/localization-cli.mjs --file Assets/Localization/strings.csv --source en --fail-on error
The command exits with 0 for a passing gate, 2 when blocking findings occur, and 64 for invalid input or options. Use --fail-on any for strict ICU review gates, --fail-on never for reporting without failing a build, or --format json for a machine-readable report.
Example GitHub Actions configuration. This is an optional sample, not an automatically enabled action. Review the hosting platform's Actions billing terms before using it in a private repository.
Unity Editor integration
The browser inspector and Node.js command-line utility are available now. A native Unity Editor package is not yet available in the Asset Store. For integration questions, contact ForgeFrame Labs.
Limitations
Structural checks do not guarantee language quality, runtime compatibility, correct pluralization, locale completeness or accessibility. Complex ICU messages should be processed by a dedicated ICU parser. This utility does not automatically rewrite source files.
Contact
For questions, compatibility requests or issue reports, contact forgeframe.lab@gmail.com. Do not send credentials or private game source code.
Start with the real browser tool.
Check a CSV before shipping. The product page describes supported findings, pricing and the current limits of Unity integration.