I've been building the same thing from the other side, so this is more comparing notes than anything.
I help maintain Bisq's localization tooling (localize-pipeline) — it translates the changed source strings and opens a PR for review. btcpayserver-translator already does the translation part, and the CLI looks solid (batch, resume, incremental update — exactly the right shape), so you've clearly run into the same problem I have.
Two things mine does a bit differently:
- The model is pluggable — hosted (we default to OpenAI, like your OpenRouter setup) or a local OpenAI-compatible one (Ollama/vLLM). So keeping the strings in-house is a config change rather than a rewrite — which seemed maybe worth having given BTCPay's self-hosted bent.
- It opens a reviewable PR with a validation pass (placeholder parity, glossary, encoding) instead of writing files for someone to PR by hand.
Not looking to replace anything that works — mostly curious how you handle the manual-PR step today, and whether the local-model or auto-PR side would be useful or is a non-problem for you.
I've been building the same thing from the other side, so this is more comparing notes than anything.
I help maintain Bisq's localization tooling (localize-pipeline) — it translates the changed source strings and opens a PR for review.
btcpayserver-translatoralready does the translation part, and the CLI looks solid (batch, resume, incrementalupdate— exactly the right shape), so you've clearly run into the same problem I have.Two things mine does a bit differently:
Not looking to replace anything that works — mostly curious how you handle the manual-PR step today, and whether the local-model or auto-PR side would be useful or is a non-problem for you.