Skip to main content

localize-strings

Keep the string catalogs (Localizable.xcstrings, InfoPlist.xcstrings) in lockstep with the code. Use whenever code adds, edits, or removes any user-facing string or Info.plist usage description, or when LocalizationCatalogTests fails.

Quellinformationen

Repository
rokartur/BetterCmdTab
Letzte Quellaktivität
23. September 2026 um 06:15
Erkannte Sprache von SKILL.md
Englisch
Sterne
793
Forks
37

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
name
localize-strings
description
Keep the string catalogs (Localizable.xcstrings, InfoPlist.xcstrings) in lockstep with the code. Use whenever code adds, edits, or removes any user-facing string or Info.plist usage description, or when LocalizationCatalogTests fails.
# Localize strings Every user-facing string ships translated in six locales. The catalog is version-controlled JSON and `LocalizationCatalogTests` pins full coverage — an English-only key fails the suite, it does not silently ship. ## 1. Use the localized form in code User-facing text is `String(localized: "…")`; enum display names localize too. A bare literal in UI code ships untranslated — wrap it. ## 2. Add the catalog entries Edit `BetterCmdTab/Localizable.xcstrings` directly (it is JSON). For each new key add translations for **all** of: `de`, `es`, `fr`, `pl`, `ru`, `zh-Hans`. Copy the exact JSON shape of a neighboring entry, keep keys sorted where the surrounding file is sorted, and keep format specifiers (`%@`, `%d`, …) identical across every locale — specifier drift is a test failure. Remove catalog entries whose code key was deleted. Info.plist strings live in `BetterCmdTab/InfoPlist.xcstrings` and the same suite covers them, with two extra rules. Key a usage description by its **plist key name** (`NSAppleEventsUsageDescription`), not by its English value — the value form compiles fine and never resolves at runtime. Document-type names (`CFBundleTypeName`, `UTTypeDescription`) are the exception: those are keyed by value. Every key in this catalog also needs an explicit `en` entry. A key-named one has no other source of English: without it Xcode emits the key as its own value and the prompt reads `NSAppleEventsUsageDescription`. For a value-keyed one it is redundant, but the test requires it uniformly. Keep that `en` value byte-identical to its source — the `INFOPLIST_KEY_*` build setting in `project.pbxproj` (both configurations) for key-named entries, `BetterCmdTab/Info.plist` for document-type names. `en.lproj/InfoPlist.strings` overrides Info.plist, so editing only the build setting changes nothing. ## 3. Verify ```bash xcodebuild -scheme "BetterCmdTab Debug" -destination 'platform=macOS' test \ -only-testing:BetterCmdTabTests/LocalizationCatalogTests ``` **Complete when:** the suite passes with the new keys present in all six locales.
Auf GitHub ansehen