iOS App Localization Across Every Apple Platform: iPadOS, macOS, tvOS, visionOS, watchOS & CarPlay

By The strings.dev team · Last updated

Frequently asked questions

Do I need to localize each Apple platform separately?

No. Xcode's Export Localizations collects localizable strings from every target in the project into per-language .xcloc bundles, so one export/translate/import cycle covers iOS, iPadOS, macOS, tvOS, visionOS, watchOS, and CarPlay together. A key referenced in shared code resolves the same on every form factor.

What is inside an .xcloc bundle?

An .xcloc is Apple's native localization catalog: a folder holding an XLIFF 1.2 file with the extractable strings, the localized String Catalog (Localizable.xcstrings) where your project uses one, a source-contents reference copy, a notes/screenshots folder, and a contents.json describing the development region and target locale. It's the same format in and out — no third-party XLIFF conversion.

How does the Xcode Export/Import Localizations round-trip work?

Product > Export Localizations (or xcodebuild -exportLocalizations) writes one .xcloc per language. The target units get translated, then Product > Import Localizations (or xcodebuild -importLocalizations) merges them back into the right String Catalog entries and .lproj folders, marking strings translated. Rebuild and every platform picks up the locale.

Should I use String Catalogs or .strings files for iOS?

For new work in 2026, start with the String Catalog (.xcstrings) — Xcode manages it with a visual editor, per-string state, and plural/device variations following Unicode CLDR categories. It rides inside the .xcloc on export and merges back on import. Legacy .strings files still export, but the catalog is the modern source of truth.

How are placeholders like %@ and %lld handled during translation?

They must pass through untouched. %@ is for objects and strings, %lld for 64-bit integers, and positional forms (%1$@, %2$lld) let a translation reorder arguments for languages with different word order. strings.dev preserves placeholder syntax, URLs, emails, handles, and proper nouns automatically, and lets you mark brand phrases as protected.

Does this cover App Store Connect metadata localization?

No. strings.dev localizes in-app native strings only — your .xcloc / .xcstrings files. App Store Connect listing metadata (description, keywords, screenshots) is a separate surface handled in the store console, not in your exported bundle. Keep the two tasks distinct.

Related

Localize your Apple app free