Skip to content

Supported Formats

LocaleKit reads and writes all major localization file formats.

Xcode

FormatExtensionDescription
String Catalog.xcstringsModern Xcode 15+ format. Stores all languages in a single JSON file. Supports plurals, device variations, and state tracking. Recommended.
Strings.stringsClassic "key" = "value"; format. One file per language in .lproj directories.
Strings Dict.stringsdictPlist-based plural rules. Used alongside .strings for pluralization.
XLIFF.xliffXML Localization Interchange File Format. Used for import/export between tools.

Android

FormatExtensionDescription
Strings XML.xmlStandard res/values/strings.xml. Language variants in res/values-XX/ directories.
Properties.propertiesJava-style key=value pairs. Used in some Android projects.

Flutter

FormatExtensionDescription
ARB.arbApplication Resource Bundle. JSON-based format used by Flutter's intl package. One file per language in lib/l10n/.

React Native / Web

FormatExtensionDescription
JSON.jsonFlat or nested key-value pairs. Generic format supported by many i18n libraries.
i18next.jsonNested JSON with i18next conventions (namespaces, plurals via _one/_other suffixes).
react-intl.jsonFormatJS/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 xcstrings

Use localekit export for bulk export with language filtering:

bash
localekit export ./MyApp --format arb --languages de-DE,fr-FR

LocaleKit CLI 0.7.2 · Built by Hexagone Studio