Stupid Simple
Android Localization

Finds every missing translation in your strings.xml and fills them in with one click.

7-day free trial· then $8/month·cancel anytime

Also available for Linux and macOS Intel → View all releases

Used to localize CrookCatcher — 1M+ active users

Built for real Android projects

Detects missing strings

Scans every values-xx folder and diffs against your base locale. Only translates what's actually missing.

Writes directly to your files

No copy-paste. Updated strings.xml files are written directly to your project.

Preserves placeholders

Handles %1$s, %2$d, and other Android format specifiers correctly.

Escapes special characters

Apostrophes, quotes, and other characters are escaped correctly for Android.

Detects modified strings

Changed a string after translating? LynString detects it and offers to re-translate just that string across all languages.

Every Android locale

Powered by Gemini AI. Supports every language and locale Android supports.

Why not just ask an LLM directly?

You can — for small apps. But when you're adding a new language to a project with 200+ strings, LLMs reliably miss a few. They don't have a systematic view of what's already translated vs. missing across all your values-xx folders.

LynString diffs every locale against your base strings and only translates exactly what's missing. Nothing gets skipped.

If you've ever shipped and found a raw string key showing up in production for one specific language, you know the pain.

Frequently asked questions