One place for every locale
No more file-by-file
Stop adding the same key to five files by hand. StringLane shows every locale side-by-side, flags missing keys and broken placeholders before your users find them, and saves straight to your source files: no cloud, no export step
IDE for localization files · Local-first · Works offline
No email · No credit card · Full app for 14 days
Sound familiar?
You already have a system. Here is why it keeps failing you.
Add one string. Now edit it five times.
A new key means opening every locale file and pasting the same key name into each one by hand, hoping you didn't skip Localizable.strings for German or fat-finger the key in ja.arb. The work grows with every language you support.
Comparing locales by hand is archaeology.
Open the German file, memorize a key, switch to French, search for it, switch to Japanese, lose your place, start over. At four locales you're not editing anymore. You're cross-referencing files in your head.
Your build passed. The translation didn't.
The key exists in every file, but the value is still in English. gen_l10n compiles clean, the tests pass, and a German user gets English UI. You find out from a 1-star review, not your toolchain.
You went wide with AI. Can you trust what shipped?
Paste 40 locales into a chatbot and it gives up mid-file on context limits. Xcode's built-in auto-translate can burn $40 in tokens for a single language. Neither gives you a surface to check what actually came back wrong.
See every locale at once. Trust what you ship.
Sync, verify, and fill every language from a single view
Know every gap before you submit
Missing keys, broken placeholders, ICU syntax errors, plural forms the target locale still needs: flagged the moment they exist, as one list across every locale. You see what's wrong before you touch the build command, not after a 1-star review.
Edit, save, commit, nothing else
StringLane writes directly to your ARB, .strings, XML, or JSON files on every keystroke. Your git workflow stays exactly as it is. There is no export step, no sync button, no intermediate format to manage.
Add a key once: every locale, one view
StringLane opens your folder, groups keys by namespace in the sidebar, and renders every locale for the active key side-by-side. Create a key and it lands in all of them at once, ready to fill: no pasting the same key name into five files, no toggling between editor tabs.
AI fill when you want it. Your key, checked before it lands
Bring your own key (OpenAI, Anthropic, Gemini, or fully local via Ollama) and sweep every missing string in one pass. Results land in the same validation view, checked before they ship. No per-character credits, no context limits, no copy-paste loops.
How it works
From open folder to ship-ready in minutes
Features
The localization IDE: built for locale files, not bolted onto a generic editor
Pricing
One price. No subscription. Yours forever.
Free Trial
Full app, all features. No email, no account, works offline.
- All five formats: ARB, .strings, .xcstrings, XML, JSON
- Side-by-side locale editor
- Real-time ICU & placeholder validation
- AI translation: BYOK, no per-character fees
- Auto-save directly to source files
- 14 days · no credit card · works offline
Full License
Full price after launch: $79
One-time purchase. No annual renewal. No seat fee.
- Everything in Free Trial
- Lifetime license: pay once, use forever
- 3 machine activations
- All future updates within major version
- Priority email support
- Secured at early-adopter price ($79 after launch)
Instant download after purchase
Lokalise lists $144 a month at entry and $999 on Advanced (checked July 2026). StringLane covers all five formats, with validation, for $49 once.
Need more than 3 activations? Contact us and we'll sort it out.
FAQ
Frequently asked questions
Do I have to add each new key to every locale file by hand?
en.arb but goes silently missing from de.arb or ja.arb. Type the source string, then sweep the rest with AI or fill them in side-by-side: every locale stays in sync.Will StringLane modify or reformat my localization files?
@key descriptions and key order, iOS .strings quoting style and comments, .xcstrings JSON shape, Android XML formatting and <plurals> ordering, i18next nested-vs-flat layout and CLDR suffix convention. It saves in the same format it found. Open the same file in VS Code before and after: the diff shows only the lines you actually changed.What happens to my files if I uninstall StringLane?
Is ARB the main format and everything else an afterthought?
.strings (iOS), .xcstrings (Xcode 15+ String Catalog), Android XML, and i18next JSON. The core parser for each was built and tested independently, not shimmed on top of a JSON converter. You can open a mixed project and see missing keys flagged the same way across all of them. Plurals work per-format in their native shape: ICU for ARB and i18next, Apple variations for xcstrings, .stringsdict for iOS, and <plurals> for Android. If you're new to either: what the .xcstrings format is and what an ARB file is.Does StringLane conflict with FlutterIntl or gen_l10n?
.arb files that FlutterIntl and gen_l10n already consume. Your l10n.yaml, your flutter gen-l10n command, your VS Code FlutterIntl extension. All of that keeps running exactly as before. StringLane sits one layer below all of it, at the file level.Where do my strings go when I use AI translation?
Can I run AI translation fully offline, with no cloud?
http://localhost:11434/v1 for Ollama; type any model name your runner has pulled. No API key needed, no network required after the model is loaded. Full local-LLM walkthrough.I already translate with ChatGPT or Claude. Why would I need this?
Is this another monthly subscription?
I'm solo and this app might never make real money. Is this worth it?
Are there any limits on projects or keys?
How do I find every missing translation across the project?
⌘J) lists every validation problem across the project as one row per (locale, key), missing translations, placeholder mismatches, ICU syntax errors, length warnings, guarded-word drift. Click a row to jump to that key, hit ✨ Auto-translate per row, or sweep the whole project with Fix all with AI. The Command Palette (⌘P) also exposes "Translate all missing with AI" for one-shot fills across every locale. How to use the Issues Panel.How does it handle plurals in languages like Ukrainian or Polish?
one, few, many, other), StringLane reads CLDR rules and auto-fills every quantity the target language needs in one click. You don't manually add + few / + many first. The visual ICU editor and per-locale plural panel handle the editing; validation badges call out quantities the target locale requires but you haven't filled. Working with ICU plurals covers the rules per format.Does StringLane run on Windows and Linux, or just macOS?
.deb if you prefer your package manager). One honest caveat: the Windows build isn't code-signed yet, so SmartScreen shows an “unknown publisher” warning on first run: click “More info” → “Run anyway”. Checksums for every build are published alongside the downloads.Still have questions? Email us at support@stringlane.app
Stop juggling locale files by hand
StringLane adds a key to every locale at once, shows them side-by-side, and flags what's missing or broken before you ship. Edits saved straight to your source files, no cloud, no export step. One purchase, no subscription, yours to keep.
Start free 14-day trialEarly-adopter price: $49 one-time. Full price is $79.