Skip to main content

CI-friendly localization QA for Godot CSV and PO translation files.

Project description

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, and unused catalog keys.

This is intentionally safe to publish as a standalone tool: examples are generic and the functionality does not reveal private game systems.

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

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 msgid values.
  • 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") and TranslationServer.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.
  • Report metadata and plain-language rule explanations for easier CI review.

Documentation

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

godot_localization_qa_guard-0.1.3.tar.gz (15.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

godot_localization_qa_guard-0.1.3-py3-none-any.whl (15.2 kB view details)

Uploaded Python 3

File details

Details for the file godot_localization_qa_guard-0.1.3.tar.gz.

File metadata

File hashes

Hashes for godot_localization_qa_guard-0.1.3.tar.gz
Algorithm Hash digest
SHA256 dff190a51ad8c8b62406d72494c273ed26f6954a7c0a74f7a8bd8cb5419c4480
MD5 21e1317ef7b8310ced39807dd7977da2
BLAKE2b-256 912ec488b4ae5da5f5078d9904824826438a633dbc6862d7d845cb07e698d090

See more details on using hashes here.

Provenance

The following attestation bundles were made for godot_localization_qa_guard-0.1.3.tar.gz:

Publisher: publish-localization-qa-guard.yml on NonniGB/godot-production-toolkit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file godot_localization_qa_guard-0.1.3-py3-none-any.whl.

File metadata

File hashes

Hashes for godot_localization_qa_guard-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 8e15f3709af546255f36b1b73c346b6657034cd6c347e9ff4253ef146dba4250
MD5 0f268f4f1b3fa2427d487099222b31d1
BLAKE2b-256 a1ac106a331e0689f7a0b39cd6d6d7cfb73fabe4454bba0fe0298559a57b1721

See more details on using hashes here.

Provenance

The following attestation bundles were made for godot_localization_qa_guard-0.1.3-py3-none-any.whl:

Publisher: publish-localization-qa-guard.yml on NonniGB/godot-production-toolkit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page