Documentation
StringLane Documentation
StringLane is a desktop localization editor — an IDE for your translation files. Open a folder of ARB, Apple .strings, .xcstrings, Android XML, or i18next JSON, see every locale side-by-side, validate ICU MessageFormat as you type, and AI-translate with your own API key. These guides take you from your first edit to advanced ICU plurals.
Step-by-step walkthroughs — start here if you're new.
Getting Started with StringLane
Download, install, and make your first translation edit in under 10 minutes.
Read guideTutorialSet Up AI Translation in 5 Minutes
Configure a provider, add your API key, and translate your first key — no cloud account required beyond the AI provider itself.
Read guideTutorialWorking with ICU Plurals and Select Forms
Write, validate, and fix ICU MessageFormat plural and select strings directly in StringLane — without leaving the editor.
Read guideTutorialLocalize Your Flutter App End to End
A complete workflow from Flutter ARB setup through AI translation, validation, and running flutter gen-l10n.
Read guideTask-focused guides — find what you need and get it done.
How to Open a Localization Project
Three ways to open a localization folder in StringLane, what auto-detection covers, and how multi-module Android + namespaced i18next projects load.
How to Add a New Locale
Create a new language column in StringLane — from a preset or a custom locale code.
How to Use Locale Presets
Browse and apply built-in locale presets when adding a new language — including regional cultural context for AI translation.
How to Configure Guarded Words and Product Context
Tell StringLane what not to translate and how your product sounds — so AI translations match your brand.
How to Configure Locale Context for Better AI Output
Add per-locale cultural notes so AI translations feel natural for each region — not just grammatically correct.
How to Use the List View Editor
Navigate the unified key sidebar + per-key detail pane — switch between Grid and List layouts, track validation at a glance, and edit every locale for one key in one place.
How to Use the Format Editor
Format-specific editing helpers for iOS .strings, Android XML, and i18next JSON projects in StringLane.
How to Use the Command Palette
Press ⌘P to open one searchable menu for every StringLane action — add keys, translate, jump to a key, toggle panels, open settings.
How to Customize Keybindings
Rebind any of StringLane's in-app keyboard shortcuts from Settings → Keybindings. Export / import JSON to share setups across machines.
How to Search and Filter Translations
Find keys by name or content, filter to issues only, or show only missing translations for a specific locale.
How to Translate Individual Keys
Use the per-cell AI translate button to translate a single key in any locale.
How to Translate All Missing Cells at Once
Fill every gap across every non-base locale in one pass. Palette-driven, progress-tracked, cancellable.
How to Bulk-Translate a Locale
Fill all missing translations in a locale with one click — with progress tracking and cancel support.
How to Translate with a Local LLM (Ollama, LM Studio, Jan)
Run AI translation entirely on your machine. Configure Local LLM (OpenAI-compatible) in Settings → AI and point StringLane at any local OpenAI-compatible runner.
How to Read Validation Badges
What each validation badge means — Missing, Same, Param, Length, ICU, and Guarded — and how to fix them.
How to Use the Issues Panel
Press ⌘J to open one panel listing every validation problem across the project — click to jump, fix per row, or sweep all with AI.
How to Fix Placeholder Mismatches
Understand and resolve the Param validation badge — when a placeholder like {name} or %@ is missing or wrong in a translation.
How to Fix Issues with AI
Repair ICU syntax errors, missing plural categories, and placeholder mismatches without retranslating — per row or across the project.
How to Work with ARB Metadata Annotations
What @description, x-max-length, and x-guarded mean in ARB files — and how StringLane reads and uses them.
How to Reload Files from Disk
Press ⌘R to discard pending writes and re-read every locale file from disk — useful after git checkout, branch switch, or external edits.
How to Activate Your License Key
Enter your StringLane license key to unlock the full app — one-time purchase, no subscription, your key lives in your OS keychain.
How to Use the Free Trial
Every StringLane feature is available during the 14-day free trial — no email, no credit card, no missing functionality.
Background on the file formats and standards StringLane works with.
What Is an ARB File? The Flutter Localization Format Explained
ARB (Application Resource Bundle) is the JSON-based translation format Flutter uses for app localization. Here is how the format works — keys, placeholders, and @ metadata — and how to edit it.
What Is ICU MessageFormat? Plurals, Select, and Placeholders Explained
ICU MessageFormat is the standard syntax for strings that change with a number or a choice — plurals, select, and placeholders. Here is how it works and where the syntax bites.
What Is the .xcstrings Format? Xcode String Catalogs Explained
String Catalogs (.xcstrings) are Apple's modern localization format — one JSON file holding every locale plus per-string translation state. Here is how the format works and how to edit it.