Skillsios-localization-assets
ios-localization-assets

ios-localization-assets

Standards for String Catalogs, L10n, and Asset Management.

ios-localization-assetsHoangNguyen0403
144 stars
2.9k downloads
Updated 1w ago

Readme

ios-localization-assets follows the SKILL.md standard. Use the install command to add it to your agent stack.

---
name: iOS Localization & Assets
description: Standards for String Catalogs, L10n, and Asset Management.
metadata:
  labels: [ios, localization, l10n, assets, xcassets]
  triggers:
    files: ['**/*.stringcatalog', '**/*.xcassets', '**/*.strings']
    keywords: [LocalizedStringResource, NSLocalizedString, String(localized:)]
---

# iOS Localization & Assets Standards

## **Priority: P1**

## Implementation Guidelines

### Localization (L10n)

- **String Catalogs (.stringcatalog)**: Use for primary localization in Xcode 15+. It provides a visual editor and compile-time checks for missing translations.
- **Native Implementation**: Use `String(localized: "key")` or `LocalizedStringResource`. Avoid manual `NSLocalizedString` where possible.
- **Pluralization**: Use String Catalogs' built-in pluralization support instead of complex code logic.
- **Formatting**: Use `Formatted` API for dates, numbers, and currencies to respect the user's locale.

### Asset Management

- **Asset Catalogs (.xcassets)**: Keep assets organized. Use folders with "Provides Namespace" enabled for large projects.
- **SF Symbols**: Use for standard icons to ensure consistency and accessibility.
- **Vector Assets**: Use PDF or SVG and enable "Preserve Vector Data" for resolution independence.

### Best Practices

- **Hardcoded Strings**: Never use hardcoded strings in UI. Every user-facing string must be localized.
- **Base Bundle**: Ensure `Base` localization is complete before adding other languages.

## Anti-Patterns

- **Manual String Formatting**: `**No manual currency symbol concat**: Use NumberFormatter or .formatted(.currency).`
- **Loose Asset Files**: `**No loose png/jpg files in repo**: Always use Asset Catalogs.`
- **Untranslated Keys**: `**No placeholder strings**: Ensure 100% coverage in String Catalogs.`

## References

- [L10n & Asset Organization](references/implementation.md)

Install

Requires askill CLI v1.0+

Metadata

LicenseUnknown
Version-
Updated1w ago
PublisherHoangNguyen0403

Tags

api