Automatic internationalization for Swift/SwiftUI apps. Use when writing ANY user-facing text - always localize with String Catalogs, LocalizedStringResource, and proper pluralization patterns.
/plugin marketplace add fusengine/claude-code-plugins/plugin install fuse:swift-apple-expert@fusengine-pluginsThis skill inherits all available tools. When active, it can use any tool Claude has access to.
Every string displayed to users MUST use localization APIs. Never hardcode strings.
// Basic usage with comment for translators
let title = String(
localized: "home.welcome.title",
defaultValue: "Welcome",
comment: "Main screen welcome title"
)
// In Swift Packages - ALWAYS specify bundle
let text = String(localized: "feature.title", bundle: .module)
extension LocalizedStringResource {
enum App {
enum Home {
static let title = LocalizedStringResource(
"app.home.title",
defaultValue: "Home",
comment: "Navigation title for home screen"
)
static func itemCount(_ count: Int) -> LocalizedStringResource {
LocalizedStringResource(
"app.home.itemCount",
defaultValue: "\(count) items",
comment: "Item count with pluralization"
)
}
}
}
}
// Usage
Text(LocalizedStringResource.App.Home.title)
// Literal strings ARE localized automatically
Text("home.title")
Button("button.save") { }
// String variables are NOT localized - wrap them!
let key = "home.title"
Text(LocalizedStringKey(key)) // Required for variables
// Number in text triggers plural rules
Text("You have \(count) items")
// xcstrings: "You have %lld items" with plural variations
Text(date, style: .date)
Text(price, format: .currency(code: "EUR"))
Text(count, format: .number)
module.screen.element.property
Examples:
app.home.titleauth.login.button.submitprofile.settings.toggle.notifications// NEVER DO THIS
Text("Welcome") // Hardcoded
let msg = "Hello \(name)" // String interpolation outside Text
Text(msg) // Variable not localized
// ALWAYS DO THIS
Text("welcome.message")
Text("greeting.hello \(name)")
Text(LocalizedStringKey(dynamicKey))
#Preview("English") {
ContentView()
.environment(\.locale, Locale(identifier: "en"))
}
#Preview("French") {
ContentView()
.environment(\.locale, Locale(identifier: "fr"))
}
This skill should be used when the user asks to "create a hookify rule", "write a hook rule", "configure hookify", "add a hookify rule", or needs guidance on hookify rule syntax and patterns.
Create distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.