One loop. Two ways to run it.
StringLane adds keys and languages, translates with the model you already have, checks every locale against the rules its format actually requires, and writes the result into the files already in your repository. Whether that happens in a window or in a terminal is a question about your afternoon, not about the answer you get.
Choose where to start
Desktop app
The whole job in one window: add, translate, check, ship.
- Add: Into every locale file at once
- Translate: Your own provider key
- Check: Flagged on the cell as you type
- Price: One-time licence, 14-day trial
CLI & agents
The same job from your terminal, your CI, and your coding agent.
- Add: Into the base locale, the rest on the next pass
- Translate: Your agent’s model, or your own key
- Check: An exit code your CI can branch on
- Price: Free, no key, no activation
Together
Most people end up using both
One project and one stringlane.yaml, read by whichever surface is in front of you.
In your editor
Your coding agent adds a feature and a handful of new strings. Through the MCP server it creates the keys with their descriptions, plans exactly what is missing, translates it, and your agent asks you before a single file is written.
In CI
stringlane check runs on the pull request. A missing key or a broken placeholder fails the build with a report naming the key and the locale, instead of shipping as English fallback that nobody notices.
In the app
Before a release you open the project and read the languages side-by-side. This is the part a report cannot do for you: seeing that a German string is twice as long as the button it sits in, and fixing it with the context in front of you.
Formats
Five formats, both surfaces
Every format is first-class in the app, in the CLI and over MCP. Plurals work in each format’s native shape rather than being converted to a common one.
Priced separately, on purpose
The desktop app is a one-time purchase with a 14-day trial. The CLI is free, with no key and no activation. Neither includes the other, and neither is a trial of the other.