Upload your .stringsdict plural rules and device variants, edit each language's quantity variants, and export a property list Xcode reads without a warning.
<dict>
<key>users-found-plural</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>%#@value@</string>
<key>value</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>one</key>
<string>One user found</string>
<key>other</key>
<string>%d users found</string>
</dict>
</dict>
</dict>Unlike Localizable.strings, a .stringsdict file doesn't carry your everyday copy. It holds two things: plural rules, built through the NSStringLocalizedFormatKey structure Apple's runtime expects, and device-specific variants, for text that should read differently on iPhone, Mac or Apple TV. Every key that needs either one lives here, paired with an ordinary string key of the same name in your main .strings file.
Each language defines its own set of plural categories: English needs one and other, while other languages require several more. Missing a required category is a common way plurals silently fall back to the wrong form on a device.
<key>UserInstructions</key>
<dict>
<key>NSStringDeviceSpecificRuleType</key>
<dict>
<key>iphone</key>
<string>Tap here</string>
<key>mac</key>
<string>Click here</string>
<key>appletv</key>
<string>Press here</string>
</dict>
</dict>Two structures in one file
SimpleLocalize reads both structures a .stringsdict file can hold, and keeps translations working across platforms.
zero, one, two, few, many, other. Only the categories a language actually uses are shown.
iPhone, Mac, iPad, Apple Watch and Apple TV can each carry a different translation for the same key.
Native specifiers like %@ and %lld convert to a shared format that also works for Android exports.
Plural and device keys stay linked to their ordinary string counterpart, not managed as a separate vocabulary.
How to translate a .stringsdict file
Import your .stringsdict file, edit every plural category and device variant, and export a property list Xcode reads without warnings.
simplelocalize upload \
--apiKey PROJECT_API_KEY \
--uploadFormat localizable-strings-dict \
--uploadPath ./en.lproj/Localizable.stringsdict.stringsdict file with the CLI. Plural and device-variant keys land next to their ordinary string counterparts, ready to edit as one set.Native: %lld users found
Universal: {%i} users foundUNIVERSAL_PLACEHOLDERS so native specifiers like %@ and %lld convert to a shared format, kept consistent if you also localize an Android build from the same source strings.one: Znaleziono %d użytkownika.
few: Znaleziono %d użytkowników.
many: Znaleziono %d użytkowników.
other: Znaleziono %d użytkownika.simplelocalize download \
--apiKey PROJECT_API_KEY \
--downloadFormat localizable-strings-dict \
--downloadPath ./{lang}.lproj/Localizable.stringsdict \
--downloadOptions UNIVERSAL_PLACEHOLDERSNSStringFormatSpecTypeKey structure Xcode expects, warning-free.For developers
SimpleLocalize handles the parts of .stringsdict that are easy to get wrong by hand, and keeps it working with the rest of your platforms.
Convert native iOS placeholders into a platform-independent format, so the same string exports correctly to Android too.
Provide a different translation for iPhone, Mac or Apple TV under the same key, matching how Apple's runtime expects it.
Translate plural variants and device-specific text with DeepL, Google Translate, OpenAI, Claude or Gemini.
Upload and download from the CLI, or call the same import and export logic from the REST API in a CI/CD pipeline.

More conversions
Free online converter, no account required. Upload a .stringsdict file and download it in the format you need.
More on iOS translation files.

Master iOS localization in 2026. Compare .strings, .xcstrings, and .xliff formats, learn how to migrate to Xcode String Catalogs, and automate your translation workflow with SimpleLocalize.
Localizable.strings holds ordinary key-value text. Localizable.stringsdict holds only the plural-rule and device-variant entries for keys that need them. The two files work together, not as alternatives.
Apple's newer .xcstrings String Catalog format can hold pluralization and device variants inline, but .stringsdict remains fully supported for projects that haven't migrated. See our translate/xcstrings/ page if you're moving to String Catalogs.
Yes. A .stringsdict key can define a different value per device (iPhone, Mac, Apple TV and so on) using the same structure Apple's runtime reads.
All CLDR categories (zero, one, two, few, many and other), applied per language based on which ones that language's grammar actually uses.