One source string, every language, and a clean path home. Strings pulls your keys out of the repo, translates them in place, and sends them back as a pull request.
No parallel database, no export-then-reimport ritual. Strings reads and writes the JSON, YAML and ARB files already in your repository. What you see in the editor is exactly what ships — versioned, reviewed and diffed like any other code change.
Three things, done quietly well — so localization stops being the step everyone dreads.
A clean grid of every key, side by side with its English source. Autosave on blur, inline edit history, and a flag the instant a source string changes under you.
Open any key to see all locales at once, with completeness at a glance. Nothing slips through — you always know what’s missing before it ships.
Review the diff, then sync. Strings commits to your branch and opens a PR — your team approves and merges it in GitHub, like any other change.
Point Strings at your locale files through GitHub. It reads your existing keys instantly — no schema, no import.
Work safely on a localization branch. Autosave, history and source-change flags keep everyone oriented as they go.
One click commits your work and opens a PR. Review the diff, merge in GitHub, and the translations are live in your repo.
Not a spreadsheet, not a ticket queue. Three small ideas that make localization feel calm — keyboard-first, quiet, and always honest about where every string stands.
Land, type, and fly to the next key without ever reaching for the mouse.
Every key wears its status. You see what’s new, what drifted, and what’s shipped.
No save button, no modal pile-ups. It autosaves on blur and gets out of your way.
Connect a repository and translate your first key in under five minutes. It commits back as a PR — nothing leaves your codebase.