Docs
Formats
Supported file formats, layouts and placeholder styles, with recipes for Laravel, i18next, Android and iOS.
View as markdown · for agents and copy-paste
An export profile describes how a project’s files look on disk. Upload and download use the same profile, so files round-trip with a clean git diff.
What a profile sets
| Setting | Options |
|---|---|
| Format | json, php_array (Laravel), xml (Android), strings (Apple), plist (Apple) |
| Structure | flat, nested, per_ns_flat, per_ns_nested (one file per namespace) |
| Namespace separator | ., :, / or none |
| Key separator | ., -, _, camelCase, or none (the key is the source text) |
| Placeholder style | laravel :name, icu {name}, printf %s, mustache {{name}}, apple %@ |
| Folders | per-locale folders (en/…) or flat files (en.json) |
Placeholders are checked: a translation whose placeholders do not match the source cannot be saved, and machine translation keeps them intact.
Recipes
| Stack | Typical files | Profile |
|---|---|---|
| Laravel | lang/en/auth.php, lang/en/validation.php | php_array, per_ns_nested, separator ., laravel placeholders |
| Laravel JSON | lang/en.json | json, flat, no folders, key separator none |
| i18next / React / Vue | locales/en/translation.json | json, nested, icu or mustache, file_name: "translation" |
| Android | one XML string resource file per locale | xml, flat, printf placeholders |
| iOS / macOS | one .strings or .plist file per locale | strings or plist, flat, apple placeholders |
Layouts are always locale-first (en.json or en/…). You do not need to pick these by hand: the agent playbook detects the layout and either reuses
a matching profile or creates one with rodarion profile create.