Flat & Nested JSON
Upload your existing localization files. StringsOS automatically parses both flat key-value pairs and nested JSON structures.
Reliably upload existing translations and download production-ready JSON files. Preview changes before committing.
Import JSON with a change preview
Image placeholder · doc-import-export
Navigation
Manually upload or download translation files when automated syncing isn't preferred. Support is included for standard localization formats like JSON, YAML, and XLIFF, ensuring compatibility with legacy systems.
Navigation screenshot
Image placeholder · nav-import-export
File Workflows
Upload your existing localization files. StringsOS automatically parses both flat key-value pairs and nested JSON structures.
The system detects the target locale directly from the filename (e.g., fr-FR.json, es.json) to map languages automatically.
Before applying changes, StringsOS validates your JSON for syntax errors and broken placeholders, letting you preview exactly what will change.
Manual JSON export is always available, even if you rely on the GitHub integration. You are never locked in.
During import, StringsOS scans values for common interpolation patterns (like {{name}} or {0}). It ensures that translations don't inadvertently break variables required by your application code, reducing runtime errors in production.
Ingestion
You can bring your existing translations into StringsOS by uploading standard JSON localization files. StringsOS supports nested JSON structures commonly used by frameworks like i18next and react-intl. During import, you will see a preview of all new keys being created and any existing values that will be updated.
Delivery
Once your translations are approved, you can export them back into JSON files for use in your application. The export process ensures that only fully approved translations are included, safeguarding your production environment from draft or unreviewed strings.
Support
If StringsOS detects a mismatch between the placeholders in your source string and a target translation, it will flag a QA error. To resolve this, review the translation and ensure all variables (e.g. {count}, %s) are present and correctly formatted according to your framework's requirements.
If manual file passing is too slow, connect your repository for automatic PR-native synchronization.
Drop a JSON file into StringsOS and start managing it visually.
Free during beta · No credit card required