For modern iOS apps, the best-practice path is: - Use String Catalogs (`.stringcatalog`) in Xcode 15+ as the source of truth for UI text. They give you visual editing, pluralization support, and better missing-translation checks. - Prefer modern localization APIs like `String(localized:)` or `LocalizedStringResource` instead of older `NSLocalizedString` for new code. - Keep `Base` localization complete first, then add additional languages on top of that. - Use built-in pluralization in String...
Scanned 9/5/2026
Install to Claude Code
npx -y skills add HoangNguyen0403/agent-skills-standard --skill ios-localization --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Ios Localization?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/hoangnguyen0403-ios-localization-agent-skills-standard)More formats (shields.io, HTML) on the badges page.
For modern iOS apps, the best-practice path is:
- Use String Catalogs (`.stringcatalog`) in Xcode 15+ as the source of truth for UI text. They give you visual editing, pluralization support, and better missing-translation checks.
- Prefer modern localization APIs like `String(localized:)` or `LocalizedStringResource` instead of older `NSLocalizedString` for new code.
- Keep `Base` localization complete first, then add additional languages on top of that.
- Use built-in pluralization in String Catalogs rather than custom singular/plural branching in code.
- Format user-facing values with locale-aware APIs:
- dates with `Date.FormatStyle`
- numbers/currency with `.formatted(...)` or `NumberFormatter`
- Store images and icons in `.xcassets`, not as loose files. Enable namespacing when helpful, and prefer SF Symbols for common system icons.
- Avoid placeholder or partial translations before shipping; aim for full coverage.
Example:
```swift
struct CheckoutView: View {
let total: Decimal
var body: some View {
VStack(alignment: .leading) {
Text(String(localized: "checkout.title"))
Text(total.formatted(.currency(code: Locale.current.currency?.identifier ?? "USD")))
}
}
}
```
If you need broader compatibility with older iOS versions, you can still use `.strings` files, but for current projects String Catalogs are the preferred approach.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!