Godot Localization QA Guard
A CI-friendly localization QA checker for Godot CSV and PO translation files. It catches missing strings, duplicate keys, broken placeholders, UTF-8 BOM issues, fuzzy PO entries, unchanged target strings, missing project keys, unused catalog keys, and layout-sensitive text risks.
Install
python -m pip install -e .
When published:
python -m pip install godot-localization-qa-guard
Quick Start
godot-l10n-guard C:\Projects\MyGame --translations translations --require fr,es
godot-l10n-guard . --csv assets\i18n\strings.csv --scan-scripts --scan-scenes
godot-l10n-guard . --po locale --format markdown --output docs\LOCALIZATION_QA.md
godot-l10n-guard . --format json --output localization-report.json
godot-l10n-guard . --translations translations --max-expansion 1.35 --allowed-glyphs-file fonts\ui-glyphs.txt
godot-l10n-guard . --translations translations --pseudo-output reports\pseudo-localized.csv --fail-on none
godot-l10n-guard stress-pack . --translations translations --output-dir reports\localization-stress --format markdown --output reports\localization-stress.md
godot-l10n-guard capture-plan . --stress-pack reports\localization-stress\stress-pack-manifest.json --screen main_menu --screen settings --viewport portrait_phone --format markdown --output reports\localization-capture-plan.md
godot-mobile-ui-doctor layout-risk mobile-ui.json --stress-pack reports\localization-stress\stress-pack-manifest.json --format markdown --output reports\mobile-layout-risk.md
Run the sample:
godot-l10n-guard examples\tiny-godot-project --translations examples\tiny-godot-project\translations --scan-scripts --fail-on none
What It Checks
- Godot CSV header starts with
keys. - Required language columns exist.
- Required target cells are not empty.
- Duplicate CSV keys and PO
msgidvalues. - PO fuzzy and untranslated entries.
- Placeholder sets match across source and target text.
- Target strings that are unchanged from source.
- Target strings that exceed an optional expansion ratio.
- Characters outside an optional UI-font glyph allow-list.
tr("KEY")andTranslationServer.translate("KEY")usage.- Uppercase key-like scene text values.
- Missing and unused keys when scanning is enabled.
- Pseudo-localized CSV previews for UI stress testing.
- Synthetic pseudo, long, compact, and RTL-like CSV catalogs for layout review.
- Screenshot capture plans for stress locales, screens, and viewport profiles.
- Report metadata and plain-language rule explanations for easier CI review.
Documentation
- Godot CSV guide
- PO guide
- Placeholder checks
- Pseudo-localization and layout checks
- Key usage scanning
- Rule reference
- CI usage
- Troubleshooting
Development
python -m pip install -e .
python -m unittest discover -s tests -v
godot-l10n-guard examples\tiny-godot-project --translations examples\tiny-godot-project\translations --scan-scripts --fail-on none
Metadata
Release files for godot-localization-qa-guard 0.1.5
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| godot_localization_qa_guard-0.1.5.tar.gz | 20.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| godot_localization_qa_guard-0.1.5-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 40.1 kB
Release files / godot_localization_qa_guard-0.1.5.tar.gz
| Download URL | godot_localization_qa_guard-0.1.5.tar.gz |
|---|---|
| Size | 20.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
3848127b84b1439432fd10f568f7870469f46fcbcd2b6141469f57e030ea20cb
|
|
BLAKE2b-256 checksum How to use checksums |
94e0f3e482b754287e84b07c512a48b768e8a7b7762ef4e1c5d3ba7debadf5e3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jun 27, 2026.
Transparency logRelease files / godot_localization_qa_guard-0.1.5-py3-none-any.whl
| Download URL | godot_localization_qa_guard-0.1.5-py3-none-any.whl |
|---|---|
| Size | 19.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
f5c90fddef0ef380a85208f5759028c8047dedb87c548f4d2f4487b033e0d077
|
|
BLAKE2b-256 checksum How to use checksums |
cfc8fc30c12b39120a8d3a8797a26ff303ca08b6b314c07ab04c2c42116590ec
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jun 27, 2026.
Transparency log