AgentSkillsCN

iOS Localization & Assets

在字符串目录、国际化(L10n)以及资源管理方面的规范。

SKILL.md
--- frontmatter
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