← ForgeFrame Labs
Localization QA · User guide

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

CodeMeaning
EMPTY_TRANSLATIONA target language cell is blank.
MISSING_SOURCEThe base-language string is blank.
MISSING_KEYA row has no localization identifier.
DUPLICATE_KEYThe same key appears more than once (case-insensitive).
ROW_WIDTHRow has a different number of cells than the header.
TOKEN_MISMATCHNamed placeholders, printf format codes or markup tag counts differ from the source text.
ICU_REVIEWComplex ICU plural/select syntax needs specialized inspection.

Run your first check

  1. Open Localization QA Inspector.
  2. Select or drop a CSV file up to 2 MB. The file is parsed locally in your browser.
  3. Confirm the source locale, then select Analyze CSV.
  4. Review blocking issues first, filter by language or issue type, and export findings as CSV or JSON.
Privacy and safety

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.

LOCALIZATION QA / DOCUMENTATION

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.