GitHub-native localization platform for OpenVoiceOS skills. Replaces GitLocalize with a purpose-built tool that understands OVOS locale file types.
- Scans 50+ OVOS skill repos for locale files (.intent, .voc, .dialog, .entity, .rx, .value, skill.json)
- Analyzes skill Python source via AST to extract handler context (which function uses each file, what slots mean, what dialog it triggers)
- Validates translations with 15 rules (slot preservation, regex compilation, lexical diversity, variant count)
- Serves a static SPA on GitHub Pages where translators can browse, edit, preview, auto-translate, and submit translations as PRs
- Exports coverage stats and a unified intent dataset (TSV) for ML training
Visit the live site, pick your languages, and start translating. The editor shows:
- English source on the left
- Editable translation in the center (with live bracket expansion preview)
- Skill code context on the right (the actual Python function that uses each file)
Translations are submitted as pull requests via a GitHub Action bot.
Fully GitHub-native. No server, no database, no Docker.
| Component | Purpose |
|---|---|
scripts/generate_data.py |
Daily cron clones skills, scans, outputs JSON to data/ |
index.html |
Static SPA (Tailwind + vanilla JS) served via GitHub Pages |
.github/workflows/update_data.yml |
Daily data refresh + auto-commit |
.github/workflows/submit_translation.yml |
Bot creates PRs from translator submissions |
ovos-localize-cli |
Standalone CLI for CI validation |
# Install
pip install ovos-localize
# Validate a skill's locale files
ovos-localize-cli --repo /path/to/skill --report-format text
# Generate data locally
pip install -e ".[dev]"
python scripts/generate_data.py
python -m http.server 8000| File | Contents |
|---|---|
data/repos.json |
Skill index |
data/coverage.json |
Language x skill coverage matrix with display names |
data/stats.json |
Per-language, per-filetype aggregate metrics |
data/validation.json |
Aggregated validation results |
data/skills/{id}.json |
Per-skill detail (entries, context cards, handler source, edit URLs) |
data/dataset.tsv |
Unified intent/dialog/voc dataset for ML training |
Add to any skill repo:
jobs:
validate:
uses: OpenVoiceOS/gh-automations/.github/workflows/validate-translations.yml@dev- docs/index.md — Architecture and module reference
- docs/local-development.md — Local development guide
- docs/deployment.md — GitHub Pages + Actions setup
Apache 2.0 — see LICENSE.