Lingo.dev + .xcstrings (Xcode)
Lingo.dev CLI translates Xcode .xcstrings files while preserving pluralization rules, device variations, and iOS-specific metadata. The CLI works directly with Xcode's localization workflow, generates code-accessible string constants, handles complex iOS pluralization rules automatically, supports platform-specific string variations, and integrates seamlessly with Xcode build processes.
Quick Setup
Configure for Xcode's modern string catalog format:
{
"locale": {
"source": "en",
"targets": ["es", "fr", "de", "ja"]
},
"buckets": {
"xcode-xcstrings": {
"include": ["Resources/Localizable.xcstrings"]
}
}
}
Translate String Catalogs
npx lingo.dev@latest i18n
Automatically handles pluralization, device variations, and Xcode-specific metadata while preserving iOS conventions.
String Catalog Features
Basic Localization
{
"sourceLanguage": "en",
"strings": {
"welcome_message": {
"localizations": {
"en": {
"stringUnit": {
"state": "translated",
"value": "Welcome to our app!"
}
}
}
}
}
}
Plural Variations
{
"item_count": {
"localizations": {
"en": {
"variations": {
"plural": {
"zero": {
"stringUnit": {
"state": "translated",
"value": "No items"
}
},
"one": {
"stringUnit": {
"state": "translated",
"value": "%d item"
}
},
"other": {
"stringUnit": {
"state": "translated",
"value": "%d items"
}
}
}
}
}
}
}
}
Device Variations
Supports device-specific strings for iPhone, iPad, Apple Watch, and other Apple platforms.
Format Preservation
- Metadata Intact: State, comments, and extraction state preserved
- Variations Safe: All plural and device variations maintained
- Structure Preserved: JSON hierarchy and Xcode-specific keys unchanged
- Placeholder Safe: iOS format specifiers like
%@
,%d
maintained
Advanced Configuration
Multiple Catalogs
"xcode-xcstrings": {
"include": [
"Resources/Localizable.xcstrings",
"Resources/InfoPlist.xcstrings"
]
}
Lock System Keys
"xcode-xcstrings": {
"include": ["Resources/Localizable.xcstrings"],
"lockedKeys": ["CFBundleName", "NSHumanReadableCopyright"]
}