Supported Formats
LocaleKit reads and writes all major localization file formats.
Xcode
| Format | Extension | Description |
|---|---|---|
| String Catalog | .xcstrings | Modern Xcode 15+ format. Stores all languages in a single JSON file. Supports plurals, device variations, and state tracking. Recommended. |
| Strings | .strings | Classic "key" = "value"; format. One file per language in .lproj directories. |
| Strings Dict | .stringsdict | Plist-based plural rules. Used alongside .strings for pluralization. |
| XLIFF | .xliff | XML Localization Interchange File Format. Used for import/export between tools. |
Android
| Format | Extension | Description |
|---|---|---|
| Strings XML | .xml | Standard res/values/strings.xml. Language variants in res/values-XX/ directories. |
| Properties | .properties | Java-style key=value pairs. Used in some Android projects. |
Flutter
| Format | Extension | Description |
|---|---|---|
| ARB | .arb | Application Resource Bundle. JSON-based format used by Flutter's intl package. One file per language in lib/l10n/. |
React Native / Web
| Format | Extension | Description |
|---|---|---|
| JSON | .json | Flat or nested key-value pairs. Generic format supported by many i18n libraries. |
| i18next | .json | Nested JSON with i18next conventions (namespaces, plurals via _one/_other suffixes). |
| react-intl | .json | FormatJS/react-intl format with id, defaultMessage, and description fields. |
Converting Between Formats
Use localekit convert to convert between any formats:
bash
localekit convert input.xcstrings --to arb
localekit convert strings.xml --to json
localekit convert app_en.arb --to xcstringsUse localekit export for bulk export with language filtering:
bash
localekit export ./MyApp --format arb --languages de-DE,fr-FR