Open-source localization automation
Review translations like code.
Localize Pipeline watches changed source strings, translates Java .properties and JSON files, validates the result, and opens normal pull requests that maintainers can review, amend, and merge.
Agent entry points
Start with the map, then run checks.
Agents should read the repository index first, inspect the target profile, then use the CLI preflight commands before changing translations.
Production credits
Battle-tested by Bisq maintainers.
Localize Pipeline runs the scheduled localization workflow for Bisq 2 and Bisq Mobile. It is battle-tested in production, where generated translations land as ordinary GitHub pull requests for maintainer review. Bisq 2 is configured for 54 target locales; Bisq Mobile currently carries 13 mobile target locales, or 14 languages including English.
Choose the path
Adopt it without changing how maintainers review code.
Scaffold config, validate credentials, run smoke checks, and test dry runs.
02 GitHub Action workflowTranslate changed strings from CI and open reviewable pull requests.
03 Scheduled production serviceRun Docker Compose plus cron for repositories backed by external sources.
04 Self-hosted PR GuardianRun an optional operator-owned review loop with explicit allowlists and your own model account.
Adoption flow
One onboarding PR, then normal translation PRs.
-
1
Bootstrap
Run
localize bootstrap-prto add config, glossary, workflow, and target-repo notes. -
2
Verify
Keep dry-run mode on while
localize doctor,localize smoke, and validation pass. -
3
Publish
Enable writes, review the generated PR, and let translation memory improve future runs.
Formats and providers
Modular by contract, not by convention.
Java .properties and JSON are built in. Additional formats plug into the same adapter contract, so parsing, changed-key detection, placeholder validation, quality gates, and publishing stay reusable across projects.
Operational surface
Keep state visible and portable.
localize memory stats --memory-file logs/translation_memory.json
localize memory export --memory-file logs/translation_memory.json --output shared-memory.json
localize memory import --memory-file logs/translation_memory.json --input shared-memory.json
localize memory suggest --source-text "Save change" --locale de --format-id json